当我需要从网页复制并粘贴大块代码时,我需要一步一步地执行以下操作:
- :设置粘贴
- 进入 Vim 插入模式
- 粘贴剪贴板
- 设置不粘贴
- 进入正常模式
我希望通过 P 的 Leader 键映射一次性完成所有操作。
谢谢您的帮助!
答案1
如果您的 Vim 可以访问 X 选择/系统剪贴板,您可以在插入模式下通过<C-r>*
/粘贴,或者直接在正常模式下通过/粘贴。<C-r>+
"*p
"+p
只有当这不起作用时,您才需要:set paste
,否则 Vim 无法判断您是键入了此内容(非常快),还是粘贴了此内容。由于任何键盘操作都可能来自输入,因此很难实现自动化,但幸运的是,Vim 提供了'pastetoggle'
使切换更快的选项:
'pastetoggle' 'pt' string (default "") global {not in Vi} When non-empty, specifies the key sequence that toggles the 'paste' option. This is like specifying a mapping: :map {keys} :set invpaste<CR> Where {keys} is the value of 'pastetoggle'. The difference is that it will work even when 'paste' is set. 'pastetoggle' works in Insert mode and Normal mode, but not in Command-line mode.
例如,对于:set pastetoggle=<F11>
,您只需要i<F11> (paste) <F11><Esc>
。