13

В терминале я могу сделать это, нажав shift+home и shift+end, но в vim это не работает. Домашняя и конечная клавиши прокручивают только окно терминала. Я хотел бы перейти в режиме редактирования.

6 ответов6

12

Этот ответ предполагает, что вы используете vim в окне терминала .

Привязки по умолчанию для Home и End немного отличаются от ожидаемых программой на основе обычной настройки TERM (т. Е. Варианта xterm). Если вы хотите придерживаться привязок по умолчанию (и использовать измененные варианты в Терминале), вы можете попробовать добавить что-то подобное в ваш .vimrc:

:" map Mac OS X Terminal.app default Home and End
:map <ESC>[H <Home>
:map <ESC>[F <End>
:imap <ESC>[H <C-O><Home>
:imap <ESC>[F <C-O><End>
:cmap <ESC>[H <Home>
:cmap <ESC>[F <End>

В противном случае, вы можете попытаться настроить коды, которые Терминал отправляет, когда вы используете Home и End (даже без смещения, если хотите). Поиск, вероятно, обнаружит некоторые места, которые описывают, как это сделать (вот один). Основная идея заключается в том, что вы хотите, чтобы терминал отправлял ESC [1 ~ вместо ESC [H для дома и ESC [4 ~ вместо ESC [F для конца (или Shift-Home/Shift-End, если вы хотите сохранить Home/ Конец для доступа к прокрутке). Я бы описал процесс более подробно, но у меня есть только 10.4, и я знаю, что Терминал сильно изменился в 10.5 и позже.

7

используйте 0 и $, чтобы перейти к началу и концу строки. Посетите этот сайт: http://alvinalexander.com/linux/vi-vim-editor-end-of-line.

7

С iTerm и Vim вы можете использовать fn+ стрелки вправо и влево в режиме вставки, чтобы перейти к началу или концу строки. С Terminal.app вы используете Shift + стрелки.

1

В дополнение к ответу Криса, вы также можете достичь навигации по словам (с помощью Option+arrow клавиши со стрелками ), просто добавив эти четыре строки:

:map <ESC>f el
:imap <ESC>b <C-o>b
:imap <ESC>f <C-o>el
:cmap <ESC>f el

Обратите внимание, что o в нижнем регистре, чтобы он не insert режима вставки для операции. Вы также можете изменить прописную букву O в исходном ответе для того же эффекта.

0

Перейдите в Терминал -> Настройки -> Профили -> Клавиатура и добавьте:

Ключ: ↖ Действие: \033OH

Ключ: ↗ Действие: \033OF

0

В MacVim вы можете использовать команду «Стрелка влево» и «Стрелка вправо» для перехода к началу и концу строки, находясь в режиме редактирования.

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