Vim自动可视模式可能很烦人。只要您单击鼠标左键并在其中选择文本,它就会切换到可视模式。幸运的是,可以通过在终端中选择文本时按住Shift键来绕过此行为。这种旁路非常有用,可以快速使用,而无需先配置vim。
但是我最近注意到,当终端将某项检测为链接时(例如apache vhost配置中的/var/www/example.com/目录),我尝试使用mouse + shift-key组合来选择它,它不允许我复制选定的文本,而是跳到文本的下一个相似行,同时再次启用自动视觉模式。
为什么会发生这种情况,我该如何绕过呢?
PS:我知道vimrc中的:set mouse- = a,但是当我在不同的服务器上工作时,我不想每次在新服务器上都必须编辑vimrc。
答案 0 :(得分:1)
vim唯一的文本选择是可视模式。因此,您用mouse=a
告诉vim它应该使用鼠标来选择文本。您期望什么?
您始终可以完全不用鼠标来复制文本("+yy
,如果有剪贴板支持)。
我无法通过链接重现您的行为。没有插件也会发生这种情况吗?
但是无论如何,如果您不想在鼠标上使用视觉模式,则必须修改mouse
设置,并停止告诉vim在鼠标上使用视觉模式。
答案 1 :(得分:0)
如果要在主机上设置特定设置,而在其他服务器等上没有设置,则可以在if
中使用.vimrc
语句来指定设置为哪个系统活跃。例如:
"My Linux machine
if readf('/etc/machine-id') == ['your-machine-id']
set mouse=a
endif
"Only on Macs
if system('uname') == "Darwin\n"
set mouse=a
endif
答案 2 :(得分:0)
有人在设置mouse=a
。您可以通过执行:verbose set mouse
来找到有罪的人。
然后,您必须更改它,或者必须为用户创建.vimrc。据我了解,您的情况可能并不容易。
您也可以使用set mouse-=a
代替set mouse=
来禁用所有鼠标内容。这就是我的首选,它节省了两次击键:-)。
这就是我处理此问题的方式。它可能对您而言可行或不可行。
我有一个名为.rks
的文件,我将它压缩到必须登录的每台服务器上。
登录后的第一个命令始终为
. ./.rks
这将设置我的shell环境(提示,别名,vi编辑模式等)并创建一个文件
称为~/.vimrc.rks
(如果不存在),其中包含我的基本Vim设置
(例如set mouse=
)。最后,它导出变量VIMINIT
:
export VIMINIT="source $HOME/.vimrc.rks"
现在Vim在启动时提供了~/.vimrc.rks
的资源,我得到了设置。
我这样
.vimrc.rks
。我刚刚了解到,我可以使用ssh LocalCommand
配置来自动传输安装文件。参见此answer on serverfault。