解决 VIM 下 set past & set nopaste 困扰

发布时间: 2016-09-10 12:49:34 作者: 大象笔记

做为 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 上是否有影响,回去测试一下。

Mac 上的切换快捷键

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

fn 键,即 function 键

所以,对应的快捷键为

fn + F9
fn + F10

Ubuntu 18.04 对应的修改

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

我是一名山东烟台的开发者,联系作者