Одна вещь, которая всегда беспокоила меня в vi / vim :
Если я «дергаю» (то есть «копирую») некоторый текст, затем перехожу в другое место в файле и делаю «вставку», мой курсор остается в начале текста, который я только что вставил. Это отличается от того, что делают большинство современных редакторов, когда курсор помещается в конец вставленного мной текста.
Например, предположим, что «буфер копирования» содержит слово «удивительный», которое я хочу вставить после слова «an» во фразе:
This is an editor
Например, в gedit после вставки:
This is an awesome editor
^ Cursor is here
В vi :
This is an awesome editor
^ Cursor is here
Могу ли я изменить vi, чтобы он действовал как (например) gedit в этом отношении?
Ответы:
В vim используйте
gp
иgP
вместоp
иP
чтобы оставить курсор после вставленного текста. Если вы хотите поменять местами привязки, добавьте следующие строки.vimrc
:Странно, в vim
p
иP
оставить курсор на последний вставленный символ для символьного буфера даже в совместимом режиме.Я не знаю, как это изменить в других версиях vi.
источник
Я почти уверен, что это так. Если вы вставляете, используя «p» ( строчный P), он должен вставляться после текущей позиции или строки. Однако, если вы вставляете, используя «P» (заглавная P), то он вставляется перед текущей позицией или строкой. Если вы хотите, чтобы курсор находился в конце вновь вставленного текста, попробуйте использовать «P» вместо «p».
Бьюсь об заклад, если вы вырыли достаточно глубоко, вы могли бы найти рецепт vim, чтобы вставить ваш .vimrc, который всегда будет перемещать курсор в конец вашей вставки, даже если вы используете «p».
источник
P
оставляет курсор в начале вставленного текста в vi (по крайней мере, в nvi и в POSIX).