2013-07-07 6 views
0

Я пытаюсь обнаружить, когда обратное пространство попадает при вводе конкретного сценария в Vim. Я использую getchar() для захвата общих символов из пользовательского ввода. В идеале я хотел бы обнаружить обратное нажатие клавиши таким образом. Я как-то думал о том, чтобы использовать stty, но пока не уверен. Какие-либо предложения?Обнаружение Backspace в VimL

+2

Что вы пытаетесь сделать? (как в какой последовательности). Может быть, лучший способ сделать то, что вы пытаетесь сделать. Также может быть хорошей идеей опубликовать код, который у вас есть. – FDinoff

ответ

1

Если вы используете GetChar вы можете проверить напечатал ли пользователь забой с помощью

let char=getchar() 
if char is# "\<BS>" 
    … 
endif 

. Это предполагает, что vim настроен правильно (только терминал vim, gvim не имеет этой проблемы). В большинстве случаев, но иногда вместо фиксации terminfo или, более вероятно, с использованием set <BS>={<C-v><BS>}, пользователи просто отображают символы, созданные при нажатии <BS>. Это не поможет.

+0

Отлично, этот фрагмент и ваше объяснение помогли исправить проблему. –