在行的末尾粘贴文本,在vim之间有一个空格

时间:2013-11-15 17:59:27

标签: vim

我正在尝试找到一种在行尾粘贴文本的最快方法,但在前一个EOL和新文本之间有一个空格。目前的方法是a <ESC>po<ESC>pkJ。有没有其他更快的方法来实现这个目标?我在考虑像“粘贴胶水”这样的东西?

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

4 个答案:

答案 0 :(得分:7)

如果您不想使用映射,可以键入 A space ctrl + r < KBD>“

有关详细信息,请参阅: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.

答案 1 :(得分:3)

这是一张基于马克答案的地图,但似乎更符合您的要求:

:nnoremap 1 A <esc>p

您可以选择任意键或组合,而不是1

答案 2 :(得分:0)

试试这个:

:map 1 A your text to append.
然后点击“1”键。

这会将“1”键映射为命令“A”的快捷方式(附加到当前行的末尾)。

答案 3 :(得分: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