Как перейти к началу или концу строки в vim + OS X
17
В терминале я могу сделать это, нажав shift + home и shift + end, но в vim это не работает. Домашняя и конечная клавиши прокручивают только окно терминала. Я хотел бы перейти в режиме редактирования.
В командном режиме вы можете найти в Vim Cheat Sheet (0 и $): fprintf.net/vimCheatSheet.html . Я не знаю о режиме редактирования, хотя.
Gnoupi
Ответы:
13
Этот ответ предполагает, что вы используете 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 и позже.
С iTerm и Vim вы можете использовать fn + стрелки вправо и влево в режиме вставки, чтобы перейти к началу или концу строки. С Terminal.app вы используете Shift + стрелки .
ОП хочет перейти в режиме редактирования, а не в командном режиме, поэтому эти клавиши будут буквально вводить 0и $.
Slhck
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в исходном ответе для того же эффекта.
Ответы:
Этот ответ предполагает, что вы используете vim в окне терминала .
Привязки по умолчанию для Home и End немного отличаются от ожидаемых программой на основе обычной настройки TERM (т. Е. Варианта xterm). Если вы хотите придерживаться привязок по умолчанию (и использовать измененные варианты в терминале ), вы можете попробовать добавить что-то подобное в ваш
.vimrc
:В противном случае вы можете попытаться настроить коды, которые Терминал отправляет при использовании Home и End (даже без смещения, если хотите). Поиск, вероятно, обнаружит некоторые места, которые описывают, как это сделать ( вот один ). Основная идея заключается в том, что вы хотите, чтобы терминал отправлял ESC [1 ~ вместо ESC [H для дома и ESC [4 ~ вместо ESC [F для конца (или Shift-Home / Shift-End, если вы хотите сохранить Home / Конец для доступа к прокрутке). Я бы описал этот процесс более подробно, но у меня есть только 10.4, и я знаю, что Терминал сильно изменился в 10.5 и позже.
источник
С iTerm и Vim вы можете использовать fn + стрелки вправо и влево в режиме вставки, чтобы перейти к началу или концу строки. С Terminal.app вы используете Shift + стрелки .
источник
используйте 0 и $ для перемещения в начало и конец строки. Посетите этот сайт: http://alvinalexander.com/linux/vi-vim-editor-end-of-line .
источник
0
и$
.В дополнение к ответу Криса , вы также можете выполнить навигацию по словам (с помощью
Option+arrow
клавиш), просто добавив эти четыре строки:Обратите внимание на
o
нижний регистр, чтобы он не выходил изinsert
режима работы. Вы также можете изменить заглавные буквыO
в исходном ответе для того же эффекта.источник
В MacVim вы можете использовать команду «Стрелка влево» и «Стрелка вправо», чтобы перейти в начало и конец строки, находясь в режиме редактирования.
источник
Перейдите в Терминал -> Настройки -> Профили -> Клавиатура и добавьте:
Ключ: ↖ Действие: \ 033OH
Ключ: ↗ Действие: \ 033OF
источник