为什么 VI 总是以插入模式启动?

Why VI always starts in insert mode?

在某些时候,每当我从命令行 (windows 10/WSL) 使用 vi 时,它都会以插入模式启动,这意味着我通常为导航所做的一切最终都会向文件中添加内容,浪费时间清理它。

我没有 vimrc 文件,而且我的 bash rc 文件中似乎也没有任何可以修改 vi 行为的内容。任何想法我可能做了什么或任何想法如何阻止这种行为?我正在使用 Ubuntu-20.04

FWIW,添加带有选项卡相关设置的 .vimrc 文件并没有改变它的行为。我查看了 /etc/vimrc 文件,里面似乎没有任何相关内容。

请运行以下内容:

alias | grep vim
sudo find / -name .vimrc 2>/dev/null

这些命令应该会向您显示要检查的所有位置、更改别名或修复找到的 .vimrc 文件。

你是否发现它总是进入编辑模式,例如,当你直接 vim 一个文件,当你使用 vim 作为 git 提交编辑器时?

编辑:

您也可以尝试 which -a vimwhereis vim 看看您是否有多个版本。或者失败 sudo find / -name vim 2>/dev/null

经过 google 搜索并尝试了我所了解的有关配置 'vim' 的所有内容并进行了比较测试后,我认为:

  1. 打开 WSL 终端时,此行为特定于 Windows 终端。使用 WSL 的“本机”终端(即单击“开始”菜单中的“Ubuntu 20.04 LTS”菜单)没有此问题。
  2. 我切换到 Windows 终端的最初动机是因为它的 multi-tab 功能。但这种新行为太疯狂了——它违背了我多年来使用“vi”的肌肉记忆,我几乎可以肯定有一天我会在用“vi”读取配置文件时不小心更新它。而且,我不能 re-train 新的肌肉记忆,因为 UNIX 世界的所有其他部分(例如,当我通过 SSH 连接到远程服务器时)都没有改变。这就像在 Mac 键盘和 PC 键盘之间不断切换,其中 Ctrl 键等位于不同的位置。

我的解决方案:我切换到 MobaXterm。它有 multi-tab 支持,实际上比 Windows 终端功能更丰富。