gVIM «положил», сводя меня с ума, как я «положил» в начале строки


2

Я изучаю gVIM в Windows, и, как только я постепенно изучаю больше нажатий клавиш, я все меньше и меньше использую мышь, и это здорово.

У меня есть пара вопросов, которые мне еще предстоит выяснить:

  1. Я много копирую и вставляю. Поэтому я использую v для входа в режим VISUAL, использую k / j для перемещения вверх и вниз и выбираю линии, а затем нажимаю y для возврата.

Затем я перехожу к строке, куда я хочу вставить, и нажимаю «p», чтобы поставить, НО чертову вещь вставляет после 1-го символа. Я не могу двигаться дальше влево, поэтому я определенно нахожусь в начале строки, поэтому я считаю, что «p'ut» поведение вставки 1 символа после моей позиции курсора крайне раздражает.

  1. Я переключаюсь между режимом редактирования и командным режимом очень много, и мой бедный мизинец на левой руке начинает болеть от растяжения, чтобы нажимать клавишу «Esc» (чтобы войти в командный режим) каждые несколько секунд. Есть ли более удобный способ входа в командный режим?

1
Вы должны действительно задать свой второй, не связанный с этим вопрос как отдельный вопрос.
bignose

1
То, что вы называете «командным режимом», на самом деле называется «нормальным режимом». Командный режим - это то, что вы получаете при нажатии :в обычном режиме.
безумно

@frabjous На самом деле, «командный режим» является (ужасным) синонимом обычного режима. :переводит вас в режим командной строки . См :help command-mode.
бит

Ответы:


8

Команда «put» помещает текст регистра после курсора, как вы обнаружили. Но если вы :help put, вы увидите в Pкоманду , которая ставит текст перед тем курсором:

                                                        *p* *put* *E353*
["x]p                   Put the text [from register x] after the cursor
                        [count] times.  {Vi: no count}

                                                        *P*
["x]P                   Put the text [from register x] before the cursor
                        [count] times.  {Vi: no count}

Это также работает аналогично с полными строками из регистра; pпоместит текст в новые строки, следующие за курсором, Pпоместит текст в новые строки, предшествующие курсору.


4

По теме Вопроса 2 ... или фактически вашего второго Вопроса 1;):

У вас есть как минимум два варианта здесь.

  • используйте CTRL-C вместо ESC. Это удобно и не требует настройки. Недостатком является то, что он не работает точно так же, как ESC: например, если вы только что создали аббревиатуру, а затем нажали CTRL-C, аббревиатура не будет расширена; тогда как, если бы у вас был ESC вместо этого, это было бы. Я думаю, что большинство вещей, где это имеет значение, более продвинуто, так что на данный момент это может не иметь большого значения, но вы можете запутаться позже, пытаясь узнать что-то новое и задаваясь вопросом, почему они не работают для вас.

  • используйте CTRL- [вместо ESC. Я не совсем уверен, что это работает под Windows, но, по крайней мере, на Linux с использованием консольного режима vim, он является точной заменой ESC. Хотя это неудобно, потому что для этого нужно использовать обе руки. Я обнаружил, что на большинстве клавиатур на самом деле легче попасть в ESC, чем комбинировать это. Но тогда я никогда не пытался научить свои пальцы быстро его бить.

  • добавьте отображение в ваш vimrc или gvimrc, чтобы сопоставить что-то еще с ESC. некоторые люди используют быструю последовательность jk. Я никогда не делал этого, отчасти потому, что я предпочел бы избегать беспомощных колебаний при попытке использовать систему, которая не имеет такой настройки. Но если вы хотите узнать, как это сделать, это должно быть легко googlable.

  • переназначить неиспользуемый ключ в ESC через вашу операционную систему. Архетипическим примером здесь является переназначение CAPS LOCK на ESC. Он в домашнем ряду, он большой, в большинстве случаев он бесполезен: это легкая цель. Я не уверен, как это сделать под Windows, или если это вообще возможно. Также, если вам действительно нравится Caps Lock для Caps Locking, то это, очевидно, не очень хорошая идея, так как он перестанет функционировать в этом качестве. Достоинством этой стратегии является то, что она устраняет возможность удивления, почему vim идет на судороги, когда вы случайно нажмете кнопку «Caps Lock». Недостатком, как и в случае с отображениями vimrc, является то, что вы можете запутаться, когда попытаетесь использовать (g) vim в другой системе.


-1

Лично я включаю номера строк, выполнив команду: set nu

Затем я смотрю на числа и вычисляю количество строк, которые я хочу вставить ... (скажем, 5 строк, например) ... затем я перемещаю курсор на верхнюю строку, которую я хочу скопировать, и набираю 5Y .... это скопирует следующие 5 строк .... затем переместите курсор в положение, в которое вы хотите вставить текст, и введите p, чтобы вставить его под курсором, или P, чтобы вставить курсор над курсором.

Надеюсь это поможет.


плохая форма, расчет ... шиш. человеческий мозг регулярно обрабатывает только от 7 до 10 концепций одновременно, при рассмотрении нажатий клавиш принимается один, а затем вам нужен расчет ... с участием еще 3 чисел ?! ни за что.
Джошуа К

ну, я бы не согласился с вами по этому поводу .... мой опыт показывает, что однажды я использовал vim некоторое время, я мог угадать количество строк, просто посмотрев на экран. Но если вы не хотите этого делать, вы можете использовать визуальные команды.
Кивибургер
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.