Я знаю, как обычно перемещаться в командном режиме, в частности, переходить на строки и т. Д. Но что это за команда, чтобы перейти к концу строки, на которой я сейчас нахожусь?
vimtutor
это здорово. Возможно, они не знали об этом?
Я знаю, как обычно перемещаться в командном режиме, в частности, переходить на строки и т. Д. Но что это за команда, чтобы перейти к концу строки, на которой я сейчас нахожусь?
vimtutor
это здорово. Возможно, они не знали об этом?
Ответы:
Просто $ (знак доллара) ключ. Вы можете использовать, Aчтобы перейти к концу строки и переключиться в режим редактирования (Добавить). Чтобы перейти к последнему непустому символу, вы можете нажать gзатем _клавиши.
Противоположностью Aявляется I(режим вставки в начале строки), в сторону. Нажатие только на ^курсор поместит курсор на первый символ строки, не являющийся пробелом.
g_
g_
вариант, так как он не содержит пустых символов
Как много людей сказали:
но и:
|
может принимать значения, например, 3 | перейти к третьему столбцу.
g _ переходит к последнему непробельному символу.
g $ переходит в конец строки экрана (когда строка буфера переносится на несколько строк экрана)
b
к началу предыдущего слова, которое совсем не одно и то же. Это примерно эквивалентно $ge
.
_
и g_
для visual / yanking, так как $
также будет копировать / удалять символ новой строки (LN).
g_
это единственный путь, который я нашел, чтобы добраться до фактического конца линии.
$
идет до конца строки, даже когда завернутый для меня. Я не знаю никаких настроек, чтобы настроить его поведение. Возможно, он был переназначен вашим .vimrc g$
?
Главный вопрос - конец строки
$ идет до конца строки, остается в командном режиме
A идет до конца строки, переключается в режим вставки
И наоборот - начало строки (технически первый непробельный символ)
^ идет в начало строки, остается в командном режиме
I (верхний регистр i) переходит в начало строки, переключается в режим вставки
Далее - начало строки (технически первый столбец независимо от пробела )
0 (ноль) переходит в начало строки, остается в командном режиме
0i (ноль, за которым следует строчная буква i) идет в начало строки, переключается в режим вставки
Для тех, кто начинает изучать vi, вот хорошее введение в vi путем перечисления бок о бок команд vi с типичным движением курсора в Windows GUI Editor и сочетаниями клавиш.
I
является not, 0
но ^
, поскольку оба I
и ^
переходят к первому непробельному символу строки, но 0
переходят к нулевому столбцу (как следует из его названия).
0
будет? (перейти к первому символу (= столбец 0) строки и перейти в режим вставки)
0i
. :-)
Если ваша текущая строка обернута вокруг видимого экрана на следующую строку, вы можете использовать g $, чтобы добраться до конца строки экрана .
gw
и gq
это команды, которые переформатируют текст. (см. :h gw
и :h gq
) Вероятно, произошло то, что вы сделали gw{motion}
и изменили текст так, чтобы строки экрана соответствовали фактическим строкам.
Знак доллара: $
Во многих случаях, когда мы находимся внутри строки, мы заключены в двойные кавычки, или при написании оператора мы не хотим нажимать клавишу escape и идти до конца этой строки клавишей со стрелкой и нажимать точку с запятой ( ;
) только для завершения линия. Напишите следующую строку в вашем файле vimrc :
imap <C-l> <Esc>$a
Что говорит линия? Он отображает Ctrl + l в серию команд. Это эквивалентно одновременному нажатию Esc(командный режим), $(конец строки), a(добавление).
vim
конечно, позволяет делать гораздо больше за гораздо меньшее время с такими вещами. @razorxpress, незначительная корректировка будет imap <C-l> <Esc>A
, что делает Ctrl + l равным нажатию Esc
(выход из режима вставки), затем A
(добавление к концу строки).
inoremap <C-l> <C-o>A
Преимущество клавиши «Конец» в том, что она работает как в обычном, так и в режиме вставки.
'$' работает только в обычном / командном режиме, но также работает в классическом редакторе vi (полезно знать, когда vim недоступен).
Также обратите внимание на различие между линией (или, возможно, физической линией) и линией экрана . Строка заканчивается символом конца строки ("\ n"). Строка экрана - это то, что происходит в виде одной строки символов в вашем терминале или на экране. Эти два варианта расходятся, если у вас физические строки длиннее ширины экрана, что очень часто встречается при написании электронных писем и т.
Различие проявляется и в командах конца строки.
Если вы всегда предпочитаете последнее поведение, вы можете переназначить ключи следующим образом:
:noremap 0 g0
:noremap $ g$
g_
это последний непробельный символ физической строки. Как насчет строки экрана?
Или есть очевидный ответ: используйте Endключ, чтобы перейти к концу строки.
Я не вижу горячей клавиши для MacBook для использования VIM в стандартном терминале. Надеюсь, это кому-нибудь поможет. Для пользователей macOS (протестировано на macbook pro 2018):
fn+ ← - перейти к началу строки
fn+ → - перейти к концу строки
fn+ ↑ - переместить страницу вверх
fn+ ↓ - переместить страницу вниз
fn+ g - переместить курсор в начало документа
fn+ shift + g - переместить курсор в конец документа
Для последних двух команд иногда нужно нажать дважды.
Я привык к 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-, но это не так хорошо вставляется в такие места.