我在Windows中使用VIM。问题是我想使用 Ctrl V 作为可视模式。但是,此密钥与Windows粘贴有冲突。如何将此键重置为VIM可视模式而不是粘贴。我更喜欢在我的_vimrc配置文件中设置它。
答案 0 :(得分:139)
由于 CTRL V 用于粘贴,因此无法使用它来启动块状视觉 选择。您可以改用 CTRL Q 。你也可以在Insert中使用 CTRL Q 模式和命令行模式,以获得 CTRL V 的旧含义。但 CTRL Q 当用于控制流程时,它不适用于终端。
答案 1 :(得分:39)
检查你的_vimrc文件,看它是否来源mswin.vim。该脚本将^ v映射到粘贴。您可以删除_vimrc文件中的那一行,也可以直接在mswin.vim上禁用映射命令。
执行:帮助在vim上运行以获取更多信息。
答案 2 :(得分:24)
在Unix中运行的可视模式(和其他东西)需要JOP和Windows程序员的建议。
在Windows上的GVim中,转到编辑菜单,单击启动设置,并注释掉特定于窗口的垃圾(使用vimrc注释字符,这是一个双引号)。 mswin.vim文件是指定ctrl-v override的地方,而行为mswin选项使得箭头键不会像你期望的那样应用动作(它也会改变鼠标选择行为)。
"source $VIMRUNTIME/mswin.vim
"behave mswin
我喜欢在那里添加黑色背景色系,所以它看起来更像我在终端中看到的(因为浅色背景在纸上很棒,但在背光屏幕上很糟糕):
colorscheme koehler
答案 3 :(得分:20)
如果_vimrc中的这一行让您烦恼:
behave mswin
然后删除该行。
答案 4 :(得分:14)
我更喜欢到处都是相同的击键,所以我在.vimrc中使用它来覆盖mswin.vim:
if has('win32')
" Avoid mswin.vim making Ctrl-v act as paste
noremap <C-V> <C-V>
endif
答案 5 :(得分:7)
我不确定你能做些什么。你可以改用 Ctrl Q 。
答案 6 :(得分:3)
jop的建议(在默认的_vimrc文件中查找mswin.vim)和“Windows程序员”的建议(摆脱“行为mswin”行)的组合对我来说就像一个魅力。
(我的代表太低了,无法投票或合并他们 - 有人为我清理这个,或者我的代表更高时我会回来)
答案 7 :(得分:1)
这是解决此问题的现代方法。它适用于Vim / Neovim的终端版本,而不适用于GUI版本。如果您使用Microsoft的全新Windows Terminal(我强烈推荐这样做),则可以重新定义其键绑定以发挥自己的优势。设置文件的以下部分最初被不注释掉。如您所见,如果您将其注释掉,Ctrl+V
将成为Vim中我们都知道并喜欢的矩形可视选择键。
// Copy and paste are bound to Ctrl+Shift+C and Ctrl+Shift+V in your defaults.json.
// These two lines additionally bind them to Ctrl+C and Ctrl+V.
// To learn more about selection, visit https://aka.ms/terminal-selection
//{
// "command": {
// "action": "copy",
// "singleLine": false
// },
// "keys": "ctrl+c"
//},
//{
// "command": "paste",
// "keys": "ctrl+v"
//}
现在这是奇怪的部分。我希望这能改变终端机中Vim之外Ctrl+V
的行为,所以我检查了一下。它仍然会粘贴,但是与Ctrl + Shift + V粘贴不同。在Vim内部,一切都很好:Ctrl+V
用于矩形选择;和"*P
,Ctrl+Shift+V
或Right Mouse Button
用于从剪贴板粘贴。
答案 8 :(得分:1)
对于 Windows 终端 (PowerShell),单击 Shell-Tab 旁边的下拉箭头并选择设置。在 "actions"
的 settings.json
部分,您可以注释掉以下几行,以便他们说:
// { "command": {"action": "copy", "singleLine": false }, "keys": "ctrl+c" },
和
// { "command": "paste", "keys": "ctrl+v" },
这从粘贴和复制中解除了 Ctrl+V
和 Ctrl+C
。但是,由于 defaults.json
,您仍然可以在此解决方案中使用 Shift+Ctrl+C
和 Shift+Ctrl+V
进行复制和粘贴。
请参阅 Phil R 评论。一开始没看到他的解决方案。