在行尾粘贴文本,并在 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

如果不想使用映射,可以键入空格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

相关内容

最新更新