td;dr
Windows环境下的VIM在启动时加载了一个针对其特殊配置的Scriptmswin.vim
,对Ctrl+v等Windows熟知的命令映射到VIM上,实现其在系统上本身的功能。这就导致了VIM本身的Ctrl+v的列选择功能被屏蔽了。
解决方法有两个:
- 删除这个Script
mswin.vim
中对Ctrl+v的映射配置。 - 使用替代命令:Ctrl+q。
:help ctrl-v-alternative
命令说明了该快捷键。<推荐>
正文
使用:scriptnames
命令查看启动加载的所有script,会发现一个$VIMRUNTIME\mswin.vim文件,该文件就是用于在Windows环境下做一些对应的调整。
其中如下部分对Ctrl系列的快捷键做了映射调整:
CTRL-X and SHIFT-Del are Cut
vnoremap <C-X> "+x
vnoremap <S-Del> "+x
" CTRL-C and CTRL-Insert are Copy
vnoremap <C-C> "+y
vnoremap <C-Insert> "+y
" CTRL-V and SHIFT-Insert are Paste
map <C-V> "+gP
map <S-Insert> "+gP
cmap <C-V> <C-R>+
cmap <S-Insert> <C-R>+
"+
指的是系统的剪贴板
gP
命令即是粘贴命令
参考URL:
1. gvim 使用Ctrl+V
2. VIM Ctrl-V Conflict with Windows Paste