我正在尝试找到一种在行尾粘贴文本的最快方法,但在以前的 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
如果不想使用映射,可以键入空格ctrl+r"。
有关详细信息,请参阅: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.
这是一张基于马克的答案的地图,但似乎更适合你想要的:
:nnoremap 1 A <esc>p
您可以选择任何键或组合,而不是1
。
试试这个:
:map 1 A your text to append.
然后点击"1"键。
这会将"1"键映射为命令"A"(附加到当前行的末尾)的快捷方式。
如果启用mswin
行为,Ctrl-v
粘贴文本。 因此,键序列将从命令模式进入行尾A
插入模式,<space>
插入空格,然后Ctrl-v
粘贴。
或者,在插入模式下,使用鼠标将光标放在行尾,<space>
然后Ctrl-v
。
但是,Ctrl-v
访问系统剪贴板,因此您必须将拉动操作复制到系统剪贴板,在Windows上这是:set clipboard=unnamed
。
把它贴在你的.vimrc
:
" enable Windows-style key bindings
source $VIMRUNTIME/mswin.vim
behave mswin
" yank to system clipboard
set clipboard=unnamed