2

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

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

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

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

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

3 ответа3

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, чтобы вставить курсор над курсором.

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .