2014-10-21 3 views
0

Основываясь на идее quick command in insert mode Я хочу вставить буфер обмена в ОС, когда я нахожусь в режиме вставки. Чтобы сделать это так, как я хочу, мне нужно добавить пробел в вызове inoremap, но я не знаю как?Вставьте пробел в обычном режиме (используется в режиме вставки)

Это делается с

inoremap VV <Esc>"+gP 

Используя это:

  • "ВИМ" в буфер обмена OS
  • Typing в режиме вставки "работа смарт с VV"

приводит к результату

work smart withvim 

То, что я хочу, это пробел между с и ВИМ

work smart with vim 

Любые предложения?

ответ

5

Ваш вопрос вызван P в "+gPи тем, что выходя из режима вставки перемещает курсор на один символ влево, на <space>.

Pпасты перед тем курсор так, ваши картографирования пасты до<space>. Изменение P на p должно «исправить» вашу проблему поверхностным образом.

Вот более твердый вариант, который вставляет содержимое регистра буфера обмена сразу после курсора , не выходя из режима вставки:

inoremap VV <C-r>+ 

Ну ... что просто используя <C-r>+?


Работа вокруг побочных эффектов (здесь, вставка после курсора) не то же самое, как избежать этого побочного эффекта (здесь, не выходя из режима вставки, чтобы начать с). Угадайте, какой из них правильный? ;-)

+0

'inoremap VV +' это решение для меня, так как у моего решения был недостаток, который я закончил в обычном режиме после вставки. Ярлык ' +' - это акробатик пальца, VV более удобен в моем случае. – jerik

1

Использование

inoremap VV <Esc>"+gp 

P помещает в буфер обмена перед курсором, p после курсора.

0

Вариант 1.

inoremap VV <C-R><C-o>+ 

Ctrl-R говорит Vim, чтобы вставить содержимое регистра и + является регистром OS буфер обмена. Он вставляет содержимое буфера обмена, как если бы вы их ввели. Дополнительный <c-o> делает содержимое регистра вставленным буквально, так что такие вещи, как <esc> или ^H (backspace), не интерпретируются так, как вы их ввели, но вставляете в виде текста.

Вариант 2.

inoremap VV <C-o>"+gp 

C-o говорит Vim для перехода в нормальный режим только для одной команды, так что вам не нужно, чтобы добавить <Esc> при запуске, или i в конце.

Смежные вопросы