我希望能够在Windows上使用GVim时仅使用键盘选择柱状块,但在Windows XP上使用gvim(7.2)时似乎无法这样做。 编辑:为方便起见,最好使用箭头键进行选择,这在其他版本的vi / vim中是很常见的。
在终端中,当使用vim来定义块时,可以通过按 Ctrl-V 并使用箭头键方便地移动光标来选择柱状块
在mswin上使用GVim时, Ctrl-V 将映射到粘贴操作。在此主题上找到的每个引用都提到在mswin上, Ctrl-Q 的设置方式与 Ctrl-V 在其他平台上的工作方式相同,但这不适用于我
经过研究表明 Ctrl-Q 行为是通过包含mswin.vim实现的,似乎gwin可能没有加载mswin.vim。 mswin.vim显然是通过_vimrc加载的。似乎mswin.vim可能没有加载,所以也许_vimrc设置不正确,但是......
C:\Program Files\Vim\_vimrc
存在包含:
source $VIMRUNTIME/mswin.vim
behave mswin
C:\Program Files\Vim\vim72\mswin.vim
存在且包含:
" Use CTRL-Q to do what CTRL-V used to do
noremap <C-Q> <C-V>
C:\Program Files\Vim\_vimrc
应该从Edit |开始加载GVim图形菜单中的设置窗口加载此文件进行编辑,很明显C:\Program Files\Vim\vim72\mswin.vim
正在加载,因为可以在该文件中插入语法错误,GVim会在启动时抱怨它(它支持它进行测试和恢复,以防止意外腐败)。
当按下 Ctrl-Q 时,光标的变化方式与使用鼠标阻止选择文本时相同,但此时任何光标移动都会导致光标变回一个普通的光标。是否继续按住 Ctrl , Ctrl-Q 并不重要。
编辑: Ctrl-Q 进入块选择模式,如光标更改所示,因为其他光标移动命令扩展了块,但是,这个问题的原始意图是学习如何使用箭头键(与编辑器的其他实现中使用的方式相同)虽然在问题的原始未答复修订中没有明确说明。
在按住鼠标左键的同时按 Alt 可以直观地选择柱状块,但在按下 Ctrl-后,在箭头键动作期间按 Alt Q 也不起作用。
研究似乎也表明在命令模式下按 v 将进入可视模式,这或许这是相关的,但使用它似乎并没有帮助这种情况。
C:\Program Files\Vim\vimfiles
除了空目录结构外不包含任何内容。 C:\Documents and Settings\username
不包含vim配置文件,C:\Documents and Settings\username\My Documents
也不包含。通常存储应用程序特定或本地设置的其他C:\Documents and Settings\username
位置也似乎没有vim设置。 %HOMEDRIVE%和环境变量也是如此。
答案 0 :(得分:17)
仅使用键盘在Win32上以GVim直观选择列块的一种方法是按 Ctrl-Q ,释放它,然后按住 Shift 键使用箭头键选择列块。
为什么 Ctrl-Q 柱状选择的行为方式尚不清楚,但它并不重要,因为目标是仅使用键盘选择列块。在Vim中,使用 Ctrl-V 选择块时不使用 Shift 。
:help mswin
未提及 CTRL-V 备选方案的细微差别。
答案 1 :(得分:3)
最好的办法是从你的vimrc中删除这些行。它们是完全不必要的,并且改变了太多基本的Vim功能。
答案 2 :(得分:0)
mswin.vim中的noremap <C-Q> <C-V>
将原始命令重新映射为 Ctrl + Q 。
如果包含mswin.vim,按 Ctrl + Q 后,指示的模式应切换到 Visual Block ,以及任何移动(例如 j , l , w )扩展了视觉选择。如果这对你不起作用,你可能会有一些干扰。
这些移动命令是否已重新映射,或者autocmd
上是否有CursorMoved
?尝试停用您的插件(vim --noplugin
)和.vimrc
的大部分内容。
请注意,光标键通常不会构成正确的移动(并且它们在Vim中的使用不受欢迎)。
您认为正确(且唯一)扩展选择的方式(使用移动的光标键)只是:set selectmode=key
的结果,由:behave mswin
完成。