无法识别来自 Vim 的外部命令,包括 'ls' 和 'pwd'
External commands from Vim are not recognized, including 'ls' and 'pwd'
我还在学习 vim,在我的 vim 辅导课期间,我写了 :!ls
但找不到了。我也试过 :sh
效果很好,但我不明白为什么使用爆炸符号不会
编辑:我错了。 ':sh' 调出 shell 但 ls 和 pwd 仍然不适用于 shell
的那个实例
edit2:我一直在使用 Powershell,现在意识到 ls
和 pwd
不是 cmd 可用的命令。我加了
set shell=powershell.exe
set shellcmdflag=-c
set shellpipe=>
set shellredir=>
into _vimrc 从这个问题中闪现:Vim with Powershell
:!
in vim 通过 'shell'
.
运行给定的命令
在 Windows 这是 cmd.exe
。 ls
不是 Windows 上的有效命令。因此 :!ls
不适用于 Windows。
:!dir
,另一方面,会。
您混淆了添加到 :w!
等命令的 "bang" 和单独的 :!
命令,后者将余数传递给 shell 。 (此外,许多内置命令,如 :ls
和 :pwd
由 Unix 上常见的 shell 命令命名 / Linux。)
如果你在 Windows,你根本就没有像 ls
和 pwd
这样的常见 Linux 命令。(等价物分别为 dir
和 echo %CD%
)
如果你安装一个 Unix 仿真层,如 Cygwin 或 GNU Win32 项目提供的那样,你将获得相应的二进制文件(ls.exe
) 然后可以调用 then(或者甚至重新配置 Vim 的 'shell'
选项以使用这样的 shell)。
我还在学习 vim,在我的 vim 辅导课期间,我写了 :!ls
但找不到了。我也试过 :sh
效果很好,但我不明白为什么使用爆炸符号不会
编辑:我错了。 ':sh' 调出 shell 但 ls 和 pwd 仍然不适用于 shell
的那个实例edit2:我一直在使用 Powershell,现在意识到 ls
和 pwd
不是 cmd 可用的命令。我加了
set shell=powershell.exe
set shellcmdflag=-c
set shellpipe=>
set shellredir=>
into _vimrc 从这个问题中闪现:Vim with Powershell
:!
in vim 通过 'shell'
.
在 Windows 这是 cmd.exe
。 ls
不是 Windows 上的有效命令。因此 :!ls
不适用于 Windows。
:!dir
,另一方面,会。
您混淆了添加到 :w!
等命令的 "bang" 和单独的 :!
命令,后者将余数传递给 shell 。 (此外,许多内置命令,如 :ls
和 :pwd
由 Unix 上常见的 shell 命令命名 / Linux。)
如果你在 Windows,你根本就没有像 ls
和 pwd
这样的常见 Linux 命令。(等价物分别为 dir
和 echo %CD%
)
如果你安装一个 Unix 仿真层,如 Cygwin 或 GNU Win32 项目提供的那样,你将获得相应的二进制文件(ls.exe
) 然后可以调用 then(或者甚至重新配置 Vim 的 'shell'
选项以使用这样的 shell)。