我在Windows中使用VIM.问题是我想CtrlV用作视觉模式.但是,此密钥与Windows粘贴有冲突.如何将此键重置为VIM可视模式而不是粘贴.我更喜欢在我的_vimrc配置文件中设置它.
Ale*_*lex 141
从VIM文档:
由于CTRLV用于粘贴,因此无法使用它来启动块状视觉选择.你可以CTRLQ改用.您还可以CTRLQ在插入模式和命令行模式下使用以获得旧的含义CTRLV.但是CTRLQ 当它用于控制流程时,对终端不起作用.
jop*_*jop 39
检查你的_vimrc文件,看它是否来源mswin.vim.该脚本将^ v映射到粘贴.您可以删除_vimrc文件中的该行,也可以直接在mswin.vim上禁用映射命令.
做一个:帮助在vim上行动以获取更多信息.
dan*_*uer 24
像在Unix中一样工作的可视模式(和其他东西)需要JOP和Windows程序员的建议.
在Windows上的GVim中,转到编辑菜单,单击启动设置,并注释掉特定于窗口的垃圾(使用vimrc注释字符,这是一个双引号).mswin.vim文件是指定ctrl-v override的地方,并且使用了行为mswin选项使得箭头键不仅仅像您期望的那样应用运动(它还会改变鼠标选择行为).
"source $VIMRUNTIME/mswin.vim
"behave mswin
Run Code Online (Sandbox Code Playgroud)
我喜欢在那里添加黑色背景色系,所以它看起来更像我在终端中看到的(因为浅色背景在纸上很棒,但在背光屏幕上很糟糕):
colorscheme koehler
rsh*_*dev 14
我更喜欢到处都是相同的击键,所以我在.vimrc中使用它来覆盖mswin.vim:
if has('win32')
" Avoid mswin.vim making Ctrl-v act as paste
noremap <C-V> <C-V>
endif
Run Code Online (Sandbox Code Playgroud)
小智 8
对于 Windows 终端 (PowerShell),单击 Shell 选项卡旁边的下拉箭头并选择设置。在"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 评论。首先没有看到他的解决方案。
这是这个问题的现代解决方案。它适用于 Vim/Neovim 的终端版本,不适用于 GUI 版本。如果您使用 Microsoft 的新Windows 终端(我强烈推荐它。),您可以根据自己的优势重新定义其键绑定。设置文件的以下部分最初没有被注释掉。如果你把它注释掉,正如我所展示的,它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"
//}
Run Code Online (Sandbox Code Playgroud)
现在是奇怪的部分。我希望这会改变Ctrl+V终端中 Vim 外部的行为,所以我检查了。它仍然可以粘贴,但与 Ctrl+Shift+V 粘贴不同。然而,在 Vim 内部,一切都很好:Ctrl+V对于矩形选择;和"*P、Ctrl+Shift+V、 或Right Mouse Button用于从剪贴板粘贴。