Как мне перейти к концу строки в Vim?
-
01-07-2019 - |
Вопрос
Я знаю, как обычно перемещаться в командном режиме, в частности, переходить к строкам и т.д.Но что это за команда для перехода к концу строки, на которой я сейчас нахожусь?
Решение
Просто тот $ (знак доллара) Клавиша.Вы можете использовать A перейти к концу строки и переключиться в режим редактирования (Добавить).Чтобы перейти к последнему непустому символу, вы можете нажать g тогда _ ключи.
Противоположность A является Я (Режим вставки в начале строки), в качестве отступа.Нажатие только на ^ поместит ваш курсор в начало строки.
Другие советы
Как говорили многие люди:
- $ приведет тебя к концу очереди.
но также:
- ^ или _ возвращает вас к первому символу без пробелов в строке, и
- 0 (ноль) приводит вас к началу строки, включаяпробел
- $ переходит к последнему символу в строке.
g _ переходит к последнему символу, не содержащему пробелов.
g $ переходит в конец строки экрана (когда строка буфера переносится через несколько строк экрана)
Главный вопрос - конец строки
$ переходит в конец строки, остается в командном режиме
A переходит в конец строки, переключается в режим вставки
И наоборот - начало строки (технически первая не содержит пробелов характер)
^ переходит к началу строки, остается в командном режиме
Я (заглавная буква i) переходит к началу строки, переключается в режим вставки
Далее - начало строки (технически первый столбец независимо от пробел)
0 (ноль) переходит в начало строки, остается в командном режиме
0i (ноль, за которым следует строчная буква i) переходит в начало строки, переключается в режим вставки
Для тех, кто начинает изучать vi, вот хорошее введение в vi, в котором параллельно перечислены команды vi для типичного перемещения курсора в графическом редакторе Windows и сочетания клавиш.
Если ваша текущая строка обтекает видимый экран и переходит на следующую строку, вы можете использовать g$ чтобы добраться до конца экран линия.
Знак доллара:$
Преимущество клавиши "End" в том, что она работает как в обычном режиме, так и в режиме вставки.
'$' работает только в обычном / командном режиме, но он также работает в классическом редакторе vi (полезно знать, когда vim недоступен).
Во многих случаях, когда мы находимся внутри строки, мы заключены в двойные кавычки, или при написании инструкции мы не хотим нажимать escape, а переходим к концу этой строки с помощью клавиши со стрелкой и нажимаем точку с запятой (;
) просто для того, чтобы закончить фразу.Напишите следующую строку внутри вашего vimrc файл:
imap <C-l> <Esc>$a
Что говорится в этой строке?Он сопоставляет Ctrl + l с серией команд.Это равносильно тому, что вы нажимаете Esc (командный режим), $ (конец строки), a (добавить) немедленно.
Также обратите внимание на различие между линия (или, возможно, физическая линия) и линия экрана.Строка завершается символом конца строки (" ").Строка экрана - это все, что отображается в виде одной строки символов в вашем терминале или на вашем экране.Эти два варианта расходятся, если у вас физические строки длиннее ширины экрана, что очень часто встречается при написании электронных писем и тому подобном.
Это различие также проявляется в командах в конце строки.
- $ и 0 переместить в конец или начало физической строки или абзаца соответственно:
- g$ и g0 переместитесь в конец или начало строки экрана или абзаца соответственно.
Если вы всегда предпочитаете последнее поведение, вы можете переназначить ключи следующим образом:
:noremap 0 g0
:noremap $ g$
Пресса A для перехода в режим редактирования, начинающийся с конца строки.
Или есть очевидный ответ:используйте Конец клавиша для перехода в конец строки.
Возможно, это не связано, но если вы хотите начать новую строку после текущей, вы можете использовать o в любом месте строки.
Самым простым вариантом было бы ввести $.Если вы работаете с блоками текста, вам может понравиться команда { и } для того, чтобы переместить абзац назад и вперед соответственно.
Я привык к тому, что 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-, но это не так хорошо вставляется в такие места, как это.
Я не вижу горячей клавиши для macbook для использования vim в стандартном терминале.Надеюсь, это кому-нибудь поможет.Для пользователей macOS (протестировано на macbook pro 2018):
fn + ← - перейти к начальной строке
fn + → - перейти к конечной строке
fn + ↑ - переместить страницу вверх
fn + ↓ - переместить страницу вниз
fn + g - переместите курсор в начало документа
fn + сдвиг + g - переместите курсор в конец документа
Для выполнения последних двух команд когда-нибудь нужно нажать дважды.