VIM Ctrl-V与Windows粘贴冲突


110

我在Windows中使用VIM。问题是我想CtrlV用作可视模式。但是,此密钥与Windows粘贴冲突。如何将该密钥重置回VIM可视模式而不是粘贴。我更喜欢在_vimrc配置文件中进行设置。

Answers:


145

VIM文档中

由于CTRLV用于粘贴,因此无法使用它来启动逐块可视选择。您可以CTRLQ改用。您还可以CTRLQ在插入模式和命令行模式下使用来获取的旧含义CTRLV。但是CTRLQ ,当用于控制流时,不适用于终端。


2
我喜欢这样而不是摆弄_vimrc。它可以立即工作,并且由于将来我不太可能在串行终端上使用,因此Ctrl-S / Ctrl-Q流控制是不可行的。
Michael Dillon

在Linux(Gnome终端)上,我发现使用CTRL-K CR更好,但是我首先找到了这个答案。
jalanb 2014年

3
由于某种原因,我需要Shift在Windows上使用该键进行视觉选择,而在Linux上则不需要。
stevesliva,2016年

1
谢谢user132014!我发现您必须使用h,j,k和l使用Ctrl-Q在可视块模式下导航。Windows的gVim编辑器就是这种情况。当使用Ctrl-Q在可视块模式下导航时,在Windows的gVim中,这些箭头似乎不适用于我。
Ratnesh Chandna '16

3
@RatneshChandna- Shift与箭头一起使用吗?我看到了相同的行为,但是以某种方式发现了它的作用Shift。我不知道h / j / k / l是否有效。
stevesliva

40

检查您的_vimrc文件,看看它是否来自mswin.vim。该脚本将^ v映射到粘贴。您可以删除_vimrc文件上的该行,也可以直接在mswin.vim上禁用映射命令。

做:help在vim上表现更多信息。


24

像在Unix中一样工作的可视模式(和其他内容)需要JOP和Windows Programmer的建议。

在Windows上的GVim中,转到编辑菜单,单击启动设置,然后注释掉Windows特定的垃圾(使用vimrc注释字符,它是双引号)。在mswin.vim文件中指定了ctrl- v覆盖,并通过行为mswin选项进行了设置,以便箭头键不仅可以像您期望的那样应用动作(它还会更改鼠标选择行为)。

"source $VIMRUNTIME/mswin.vim
"behave mswin

我也喜欢在其中添加黑色背景的配色方案,因此它看起来更像我在终端机中看到的外观(并且因为浅色背景在纸上非常好,但是在背光屏幕上却很糟糕): colorscheme koehler



14

我更喜欢在各处使用相同的击键,因此我在.vimrc中使用此键来覆盖mswin.vim:

if has('win32')
  " Avoid mswin.vim making Ctrl-v act as paste
  noremap <C-V> <C-V>
endif

7

我不确定您可以为此做很多事情。您可以改用CtrlQ


4

jop的建议(在默认的_vimrc文件中查找mswin.vim)和“ Windows程序员的”建议(摆脱“ behave mswin”这一行)的结合对我来说很有吸引力。

(我的代表太低而无法投票赞成或合并他们-有人为我清理了这个,否则我的代表更高时我会回来的)


3
换句话说,您是否要发表评论?
Christopher Bottoms'2

1
嘿,我是很少使用stackoverflow的用户(因此我的声誉不高)
Rick Reynolds 2010年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.