Как сделать Backspace Send ^ H In Vim? - PullRequest
0 голосов
/ 16 января 2019

У меня проблема в том, что мой backspace работает в терминале, но не в Vim. Он послал '^?' вместо '^H', и я пытался это выяснить. Я проверил .bashrc, и есть stty erase '^?', чтобы удалить '^?', но почему-то это не работает.

У меня есть это в моем .vimrc:

 set backspace=indent,eol,start
 set backspace=2
 fixdel

Вот как я обычно это исправляю, насколько мне известно, но в этом случае это не работает. Я использую xterm на сервере Arch Linux, если это помогает, я знаю, что есть ошибка для xterm, но я не думаю, что это так. Он работает в команде Unix, но не в Vim, поэтому только тот Vim, который не работает.

Любая помощь очень ценится.

Edit: Гм, чтобы уточнить, я просто хочу, чтобы мой забой удалял вещи. Мое backspace не удаляет вещи прямо сейчас, и это дает мне ^? вместо удаления. Удаление такое же, как и в любой другой системе, которая является ^ H, но я хочу сделать возврат для отправки ^ H, то есть удалить не ^ ?. Поэтому вместо того, чтобы вводить ^ H для удаления, я хочу сделать это с помощью backspace, в MobaXterm есть функция, которая заставляет backspace отправлять ^ H. Но как мне это сделать по SSH?

Спасибо

1 Ответ

0 голосов
/ 16 января 2019

Есть два пути. Слева вы видите управляющий символ H, которого вы жаждете. Этот путь кажется ясным, просто немного

echo xterm.vt100.backarrowKey: true >> ~/.Xresources; xrdb ~/.Xresources

с последующим либо перезапуском всех ваших xterms, либо нажатием клавиши control и вашей основной кнопки мыши в каждом окне, чтобы вызвать меню, которое позволяет вам изменять его для каждого окна; сам пункт меню является вторым в третьем разделе, он находится прямо под опцией 8-битных элементов управления. Этот путь кажется жизнеспособным. За исключением, будьте осторожны, под самой кнопкой-H есть люк, так как тогда backspace перестает работать везде, кроме самого bash. Конечно, у вас уже есть выход из этого лабиринта с вашим сту фу. Но я помню, что сталкивался с множеством других проблем на этом пути. Одним из них является то, что консоль Linux также использует ^? вместо ^ H, и это не так легко изменить.

Или, другой способ - заставить vim делать то, что вы пытаетесь, используя ^ ?. Что я думаю, это просто

:map ^V^? x

Обратите внимание, что я имею в виду контр-V возврат, а не каретный V-каретный вопрос. Вы также хотели бы добавить это к вашему ~ / .vimrc, если это делает то, что вам нужно. При этом вы не сказали точно, где vim работает не совсем правильно, поэтому, возможно, вам нужен другой твик.

...