Я знаю, как обычно перемещаться в командном режиме, в частности, переходить на линии и т. Д. Но какова команда, чтобы перейти к концу линии, на которой я сейчас нахожусь?
Только $ < / kbd > (знак доллара) ключ. Вы можете использовать A < / kbd > перейти к концу строки и переключиться в режим редактирования (применить). Чтобы перейти последний непустой символ, вы можете нажать g < / kbd > затем _ < / kbd > ключи.
Противоположность A < / kbd > I < / kbd > (Вставьте режим в начале строки), как в стороне. Нажатие только ^ < / kbd > разместит курсор в начале строки.
Как говорили многие люди:
но также:
$ < / kbd > переходит к последнему символу в строке.
g < / kbd > _ < / kbd > переходит к последнему не-белому пространственному персонажу.
g < / kbd > $ < / kbd > переходит к концу строки экрана (когда буферная строка оборачивается несколькими линиями экрана)
Главный вопрос - конец строки
$ < / kbd > переходит в конец строки, остается в командном режиме
A < / kbd > переходит в конец строки, переключается в режим вставки
И наоборот - начало строки (технически первый символ non-whitepace )
^ < / kbd > переходит к началу строки, остается в командном режиме
I < / kbd > (вверхушка i) переходит к началу строки, переключается в режим вставки
Далее - начало строки (технически первый столбец независимо от пробела )
0 < / kbd > (ноль) переходит к началу строки, остается в командном режиме
0i < / kbd > (ноль, за которым следует строчная буква i) переходит начало строки, переключается в режим вставки
Для тех, кто начинает изучать vi, вот хорошее введение в vi, перечисляя бок о бок команды vi к типичному движению курсора редактора графического интерфейса Windows и сочетанию клавиш.
Если ваша текущая строка оборачивается вокруг видимого экрана в следующую строку, вы можете использовать < b > g $ < / b > чтобы добраться до конца < i > screen < / i > линия.
Знак доллара: $
Преимущество клавиши «Конец» заключается в том, что она работает как в обычном, так и в режиме вставки.
'$' работает только в обычном / командном режиме, но также работает в классическом редакторе vi (полезно знать, когда vim недоступен).
Во многих случаях, когда мы находимся внутри строки, мы заключены в двойную цитату или при написании заявления мы не хотим нажимать escape и идти в конец этой строки с помощью клавиши со стрелкой и нажимать точку с запятой (;
) просто чтобы закончить линию. Напишите следующую строку в вашем файле vimrc :
imap <C-l> <Esc>$a
Что говорит линия?? Он отображает Ctrl + l на серию команд. Это эквивалентно нажатию Esc < / kbd > (режим команды), $ < / kbd > (конец строки), a < / kbd > (применить) сразу.
Также обратите внимание на различие между line (или, возможно, физической линией) и screen line . Строка заканчивается символом конца строки ("\ n"). Экранная строка - это то, что отображается в виде одной строки символов в вашем терминале или на вашем экране. Они распадаются, если у вас физические линии длиннее ширины экрана, что очень часто встречается при написании электронных писем и тому подобного.
Различие проявляется и в командах конца строки.
Если вы всегда предпочитаете последнее поведение, вы можете изменить клавиши следующим образом:
:noremap 0 g0
:noremap $ g$
Или есть очевидный ответ: используйте End < / kbd > ключ, чтобы перейти к концу строки.
Я не вижу горячей клавиши для MacBook для использования VIM в стандартном терминале. Надеюсь, это кому-нибудь поможет. Для пользователей macOS (проверен на macbook pro 2018):
fn < / kbd > + ← < / kbd > - перейти к начальной линии
fn < / kbd > + → < / kbd > - перейти к конечной линии
fn < / kbd > + ↑ < / kbd > - переместить страницу вверх
fn < / kbd > + ↓ < / kbd > - переместить страницу вниз
fn < / kbd > + g < / kbd > - переместите курсор в начало документа
fn < / kbd > + shift < / kbd > + g < / kbd > - переместить курсор в конец документа
Для последних двух команд иногда нужно нажать дважды.
Самым простым вариантом будет ввести $ < / kbd >. Если вы работаете с блоками текста, вы можете оценить команду {< / kbd > и } < / kbd > для перемещения абзаца назад и вперед соответственно.
Я привык к тому, что Home / End приводит меня к началу и концу строк в режиме вставки (из использования в Windows и, я думаю, Linux), который Mac не поддерживает. Это особенно раздражает, потому что когда я использую vim в удаленной системе, я также не могу легко это сделать. После некоторых болезненных испытаний и ошибок я придумал эти строки .vimrc
, которые делают то же самое, но связаны с Ctrl-A для начала строки и Ctrl-D для конца строки. (По какой-то причине Ctrl-E, я думаю, зарезервирован или, по крайней мере, я не мог найти способ связать его.) Наслаждаться.
:imap <Char-1> <Char-15>:normal 0<Char-13>
:imap <Char-4> <Char-15>:normal $<Char-13>
Здесь есть хорошая диаграмма для кодов управляющих символов ASCII и для других
http://www.physics.udel.edu/~watson/scen103/ascii.html
Вы также можете сделать Ctrl-V + Ctrl- < Письмо, которое вы хотите связать или выполнить > также, но это не вставляет также в такие места.