2013-11-15 2 views
2

Я пытаюсь найти самый быстрый способ вставить текст в конце строки, но пробел между предыдущим EOL и новым текстом. Текущий метод: a <ESC>p или o<ESC>pkJ. Есть ли другой, более быстрый способ добиться этого? Я думаю о чем-то вроде «paste with offset»?Вставить текст в конце строки с пробелом между vim

Original: The quick brown fox 
after $p: The quick brown foxjumps over the lazy dog 
desired : The quick brown fox jumps over the lazy dog 

ответ

1

Вот карта, которая основана на ответ Марка, но, кажется, устраивает то, что вы хотите более подробно:

:nnoremap 1 A <esc>p 

Вы можете выбрать любую клавишу или комбинацию вместо 1.

+0

Это решение, безусловно, более универсальное, возможно, то, что я хочу, недоступно без сопоставления ключей. –

+0

@Sebastian Я не понимаю, почему вы хотите избежать сопоставления клавиш. Они, вероятно, являются главной частью удивительности Вима. –

+0

Я считал, что то, что я хочу, возможно без другого ключевого сопоставления, их так много, что я уже помню, и я хотел избежать избыточности. –

0

Попробуйте это:

:map 1 A your text to append. 

затем нажмите клавишу "1".

Это отобразит клавишу «1» в виде ярлыка к команде «А» (которая добавляется к концу текущей строки).

+0

Я думаю, что такой подход, к сожалению, требует много нажатий клавиш больше, чем 'метод p' я упоминал в этом вопросе. –

+0

Только в первый раз. Тогда это по одному на линию. –

+0

ОК, это может быть полезно, но только если вы хотите вставить один и тот же текст много раз. –

6

Если вы не хотите использовать отображение, вы можете ввести AпространствоCtrl + г"

См :h i_ctrl-r для получения дополнительной информации Это то, что происходит..:

A  Append text to end of line (enters insert mode). 
space - Actual space key to insert a space. 
ctrl+r - Insert contents of a register. 
"  - Default register of yank and paste. 
+0

Спасибо за ответ. Это использует точно такое же количество нажатий клавиш, как 'a p', но оставляет нас в режиме вставки. +1 для приведения ctrl + r вверх - эта комбинация чрезвычайно полезна. Я думаю, что буду придерживаться ключевого картографирования. Благодаря! –

0

Если включить mswin поведение, Ctrl-v вставляет текст. Таким образом, последовательность клавиш будет из командного режима, A, чтобы войти в режим вставки в конце строки, <space>, чтобы вставить пробел, затем Ctrl-v для вставки.

В качестве альтернативы, в режиме вставки используйте мышь, чтобы поместить курсор в конец строки, <space>, затем Ctrl-v.

Однако Ctrl-v обращается к системному буферу, поэтому вам необходимо сделать операции yank в системном буфере обмена, в Windows это :set clipboard=unnamed.

палки это в .vimrc:

" enable Windows-style key bindings 
source $VIMRUNTIME/mswin.vim 
behave mswin 

" yank to system clipboard 
set clipboard=unnamed 
Смежные вопросы