技巧64-与系统剪贴板进行交换

了解你所用系统的剪贴命令

  • 在OS X中,Cmd-v映射会触发系统粘贴命令。
  • 在Windows,Linux中比较复杂。
  • Ctrl-v是系统粘贴命令的标准映射项。
  • 普通模式下Ctrl-v会激活Visual-Block模式。
  • 在插入模式下,它允许插入字符本身或字符编码。

在插入模式下使用系统粘贴命令。

  • 'autoindent'选项被启用,当创建新行时,Vim都会保持同级缩进。这样剪贴板复制过来会导致一行比一行往右偏。
  • paste选项允许手动通知Vim要使用系统粘贴命令了。
  • paste选项启用后,Vim将禁用所有插入模式下的映射项和缩写,并重置很多选项,其中就包括autoindent。
  • 关闭paste:
:set paste!
  • paste选项启用后,在Vim插入模式下创建自定义映射项的方法都失效了。作为替代方案,可以把pastetoggle选项映射成一个功能键。
:set pastetoggle=<f5>
  • 请试着在命令行窗口执行以上命令,用f5来切换paste,在插入模式和普通模式下都能用。
  • 可以把上面的配置命令拷贝到自己的vimrc文件。

为避免切换"paste"选项,请使用加号寄存器进行粘贴。

  • 如果Vim是已集成系统剪贴板的版本,就可以完全避免与paste选项打交道了。
  • Vim集成了系统剪贴板的情况下,普通模式下的"+p命令用来粘贴加号寄存器中的内容,即系统剪贴板的镜像。
  • 更多细节,请参见系统剪贴板("+)与选择专用寄存器("*).
  • Vim集成了系统剪贴板的情况下,无论paste与autoindent选项激活与否,该命令都能保证位于剪贴板中的文本缩进不会乱套。