我似乎有两个不同的 Vim 环境。是什么原因造成的?
I seem to have two different Vim environments. What is causing this?
我正在尝试在Windows 10上设置开发环境。到目前为止,我已经安装了Vim和Cmder(完整版Git Windows)。
四处游玩,我注意到了一些我不理解的奇怪行为,但我觉得理解这一点很重要。
案例A
- 我打开 PowerShell
- 找到包含
vim.exe
的文件夹
- 运行
.\vim.exe
- Vim 弹出并显示默认屏幕(VIM - Vi IMproved,版本 8.1.1 等)
- 在正常模式下,我输入
:version
来检查版本号并查看我的 _vimrc
文件所在的位置
- Vim 给了我预期的输出
案例 B
我打开 Cmder 并打开一个新的 PowerShell 选项卡(我假设这让我可以访问 PowerShell 而不是默认的 cmd.exe,但如果我错了请纠正我。 )
现在有趣的地方来了
如果我完全按照案例 A 重复步骤 2-6,我会得到完全相同的结果。
但是:
如果不是定位存储 vim.exe
的文件夹,我只是输入 vim
并点击 Enter
,它会再次打开 Vim,但这次它在底部有一个选项卡说 "unix"。见附图。
出于好奇,在正常模式下我输入 :version
,就像在情况 A 中一样,但是这次我在版本部分得到了不同的日期、不同的选项选择和不同的 Unix -类似于 vimrc 文件的路径,现在 .vimrc
而不是 _vimrc
。
什么给了?我的猜测是 Cmder 自带的 Git for Windows 是在模拟 Unix 环境并访问为 Unix 编译的不同 Vim 版本?
如果这是真的,那么你能帮我理解这个 Windows/Unix 环境二元性吗?我现在是否有两个 HOME 文件夹、两个 vimrc 文件副本,以及两个谁知道还有什么的副本?模拟这个Unix环境的是什么-Cmder?
谢谢!
您安装了两个不同版本的 Vim,并且根据您启动它的环境,选择其中一个。 Git(作为最初在 Linux 上开发并为 Linux 开发的工具)通常会带来一组 Windows 端口。
您可以通过
从Vim中检查(分别)使用了哪些Vim二进制文件
:echo v:progpath
您是忍受这种重复还是尝试始终如一地使用一个 Vim 实例取决于您。看起来 Git 附带的 Vim 具有更多以 Unix 为中心的设置;最好保留它以避免互操作性问题。
您绝对不需要克隆整个 Vim 配置 - 只要您坚持使用 Unix 风格 (LF) 行尾,任何 Vim 都可以理解它。通过设置 HOME
环境变量(但这可能会影响其他程序!),您可以使 Vim 使用相同的位置。否则,您可以给一个 Vim 配置位置一个小的 .vimrc
,它只是更正 'runtimepath'
,然后 :source
s 来自另一个位置的 "real" vimrc。
我没有使用 Cmder 的经验,但我经常将 Git 用于 Windows。
Git for Windows 带有一些 Unix 实用程序,并使用 Cygwin,它是 运行 的 Unix 模拟器。 Vim 是其中之一,作为提交消息等的默认文本编辑器。所以它可能就是它。
我试图在我的机器上重现这个。但我无法重现您所看到的。尽管如此,我还是找到了你可能在第二种情况下使用的 Vim 的 vimrc 文件。
它在 <Cmder-dir>\vendor\git-for-windows\etc\vimrc
.
我正在尝试在Windows 10上设置开发环境。到目前为止,我已经安装了Vim和Cmder(完整版Git Windows)。
四处游玩,我注意到了一些我不理解的奇怪行为,但我觉得理解这一点很重要。
案例A
- 我打开 PowerShell
- 找到包含
vim.exe
的文件夹
- 运行
.\vim.exe
- Vim 弹出并显示默认屏幕(VIM - Vi IMproved,版本 8.1.1 等)
- 在正常模式下,我输入
:version
来检查版本号并查看我的_vimrc
文件所在的位置 - Vim 给了我预期的输出
案例 B
我打开 Cmder 并打开一个新的 PowerShell 选项卡(我假设这让我可以访问 PowerShell 而不是默认的 cmd.exe,但如果我错了请纠正我。 )
现在有趣的地方来了 如果我完全按照案例 A 重复步骤 2-6,我会得到完全相同的结果。
但是:
如果不是定位存储 vim.exe
的文件夹,我只是输入 vim
并点击 Enter
,它会再次打开 Vim,但这次它在底部有一个选项卡说 "unix"。见附图。
出于好奇,在正常模式下我输入 :version
,就像在情况 A 中一样,但是这次我在版本部分得到了不同的日期、不同的选项选择和不同的 Unix -类似于 vimrc 文件的路径,现在 .vimrc
而不是 _vimrc
。
什么给了?我的猜测是 Cmder 自带的 Git for Windows 是在模拟 Unix 环境并访问为 Unix 编译的不同 Vim 版本?
如果这是真的,那么你能帮我理解这个 Windows/Unix 环境二元性吗?我现在是否有两个 HOME 文件夹、两个 vimrc 文件副本,以及两个谁知道还有什么的副本?模拟这个Unix环境的是什么-Cmder?
谢谢!
您安装了两个不同版本的 Vim,并且根据您启动它的环境,选择其中一个。 Git(作为最初在 Linux 上开发并为 Linux 开发的工具)通常会带来一组 Windows 端口。
您可以通过
从Vim中检查(分别)使用了哪些Vim二进制文件:echo v:progpath
您是忍受这种重复还是尝试始终如一地使用一个 Vim 实例取决于您。看起来 Git 附带的 Vim 具有更多以 Unix 为中心的设置;最好保留它以避免互操作性问题。
您绝对不需要克隆整个 Vim 配置 - 只要您坚持使用 Unix 风格 (LF) 行尾,任何 Vim 都可以理解它。通过设置 HOME
环境变量(但这可能会影响其他程序!),您可以使 Vim 使用相同的位置。否则,您可以给一个 Vim 配置位置一个小的 .vimrc
,它只是更正 'runtimepath'
,然后 :source
s 来自另一个位置的 "real" vimrc。
我没有使用 Cmder 的经验,但我经常将 Git 用于 Windows。 Git for Windows 带有一些 Unix 实用程序,并使用 Cygwin,它是 运行 的 Unix 模拟器。 Vim 是其中之一,作为提交消息等的默认文本编辑器。所以它可能就是它。
我试图在我的机器上重现这个。但我无法重现您所看到的。尽管如此,我还是找到了你可能在第二种情况下使用的 Vim 的 vimrc 文件。
它在 <Cmder-dir>\vendor\git-for-windows\etc\vimrc
.