我正在尝试找到一种在行尾粘贴文本的最快方法,但在前一个EOL和新文本之间有一个空格。目前的方法是a <ESC>p
或o<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
答案 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