解决 VIM 下 set past & set nopaste 困扰

文章目录

    做为 ctrl-c ctrl-v 工程师,恰好又是 VIM 党,最痛苦的莫过于,在 paste 与 nopaste 之间来回切换。

    特别是在写页面的时候,需要经常 copy HTML 代码,set 操作极大地影响到了编写代码的效率。还是得绑定个快捷键为好。

    :help paste
    

    会看到 vim 帮助文档里就有一个不错的解决方案,在 vimrc 里加入如下配置

    map <F9> :set paste<CR>
    map <F10> :set nopaste<CR>
    imap <F9> <C-O>:set paste<CR>
    imap <F10> <nop>
    set pastetoggle=<F10>
    

    文档里使用的 F10, F11 被我替换成了 F9, F10, 原因是在 Ubuntu 下 F10 是终端的全屏快捷键 (Ubuntu 18.04 需要特殊处理,参考下方说明)。不知道在 Mac 上是否有影响,回去测试一下。

    paste nopaste

    Mac 上的切换快捷键

    Mac 上如果要沿用之前在 Ubuntu 上配置的 F9, F10 快捷键,就需要结合 fn 键使用。

    fn 键,即 function 键

    所以,对应的快捷键为

    fn + F9
    fn + F10
    

    Ubuntu 18.04 对应的修改

    因为 Ubuntu 18.04 下,默认 F10 是 terminal 的快捷键,所以需要先禁用掉 F10 的快捷功能。

    解决 VIM 下 set past & set nopaste 困扰

    关于作者 🌱

    我是来自山东烟台的一名开发者,有感兴趣的话题,或者软件开发需求,欢迎加微信 zhongwei 聊聊,或者关注我的个人公众号“大象工具”, 查看更多联系方式