Я запускаю vim на виртуальной машине Linux, в которую запускаю ssh через приложение терминала Mac OS X, и я хочу настроить его так, чтобы он делал полезные вещи с помощью клавиш со стрелками (среди прочих).

Например, я хочу вариант - влево, чтобы переместить курсор назад на одно слово, аналогично тому, как он работает в других приложениях Mac.

В обычном режиме это достаточно просто; Я могу просто сопоставить последовательность b . Но когда я нахожусь в режиме вставки, я хочу остаться в режиме вставки (т. Е. Сопоставить последовательность с <c-o>b .

В моем файле .vimrc` есть следующие строки:

nmap ^[[xol~ b
imap ^[[xol~ <c-o>b

Где ^[[xol~ - это последовательность символов, которую я настроил для отправки Терминалом, когда я нажимаю опцию - слева.

Это работает, но становится довольно утомительным, особенно когда у меня есть почти две дюжины команд, которые я хочу отобразить.

Есть лучший способ сделать это?

2 ответа2

0

Создание отдельных отображений для каждого режима, кажется, делает свое дело. Возможно, это лучший способ сделать это.

0

Да, есть лучший способ. Скачайте и установите MacVim, он поставляется с множеством сочетаний клавиш Mac OS X по умолчанию и еще с некоторыми, если вы добавляете простой вариант (которого у меня нет под рукой) в ваш .vimrc. Кроме того, он поддерживает больше цветов, чем Terminal.app, и лучше интегрируется в ОС, чем CLI Vim.

Имейте в виду, что ваша привязанность к наличию сочетаний клавиш Mac OS X в vim в терминале (из всех мест) и пребывание в режиме INSERT являются довольно большими препятствиями на и без того крутой кривой обучения. Вы должны выйти из режима INSERT, как только закончите вставку текста, и просто используйте удивительную мощь Vim более продуктивно.

Если вам нужен немодальный редактор CLI, вы можете попробовать emacs, joe или nano от Über Power до действительно простого. Если вам нужен немодальный редактор графического интерфейса, вы можете попробовать TextMate или Sublime Editor, но ни один из них не будет настолько мощным, как Vim.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .