繁体   English   中英

GVim Win32中仅限键盘的列块选择,或者为什么在包含mswin.vim时Ctrl-Q不能模拟Ctrl-V?

[英]Keyboard-only column block selection in GVim Win32, or why does Ctrl-Q not emulate Ctrl-V when mswin.vim is included?

我希望能够在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来实现的,似乎很可能没有被GVim加载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时 ,光标的变化方式与使用鼠标阻止选择文本时的变化方式相同,但此时任何光标移动都会导致光标变回正常光标。 是否继续按住CtrlCtrl-Q无关紧要。

编辑: Ctrl-Q进入块选择模式,如光标更改所示,因为其他光标移动命令扩展了块,但是,此问题的原始目的是学习如何使用箭头键(以他们能够使用的相同方式)在编辑器的其他实现中使用)虽然在问题的原始的,未回答的修订中没有明确说明。

按住鼠标左键的同时按Alt可以直观地选择柱状块,但按Ctrl-Q后的箭头键动作中的Alt也不起作用。

研究似乎也表明在命令模式下按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%和环境变量也是如此。

仅使用键盘在Win32上以可视方式选择GVim中的列块的一种方法是按Ctrl-Q ,释放它,然后按住Shift键同时使用箭头键选择列块。

为什么Ctrl-Q柱状选择的行为方式尚不清楚,但由于目标是仅使用键盘选择列块,因此无关紧要。 在Vim中,使用Ctrl-V选择块时不使用Shift

:help mswin没有提到CTRL-V替代品的这种细微差别。

最好的办法是从你的vimrc中删除这些行。 它们是完全不必要的,并且改变了太多基本的Vim功能。

mswin.vim中的noremap <CQ> <CV>将原始命令重新映射到Ctrl + Q.

如果包含mswin.vim,则在按下Ctrl + Q后 ,指示的模式应切换到Visual Block ,并且任何移动(例如jlw )都会扩展视觉选择。 如果这对你不起作用,你可能会有一些干扰。

这些移动命令本身是重新映射的,还是CursorMoved上有autocmd 尝试禁用插件( vim --noplugin )和.vimrc大部分内容。

请注意,光标键通常不会构成正确的移动(并且它们在Vim中的使用不受欢迎)。

您认为正确(且唯一)扩展选择的方式(使用移动的光标键)只是以下结果:set selectmode=key ,如下所示:behave mswin

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM