Vim 前导键映射,用于多步复制和粘贴

Vim 前导键映射,用于多步复制和粘贴

当我需要从网页复制并粘贴大块代码时,我需要一步一步地执行以下操作:

  1. :设置粘贴
  2. 进入 Vim 插入模式
  3. 粘贴剪贴板
  4. 设置不粘贴
  5. 进入正常模式

我希望通过 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>

相关内容