来自Vim的外部命令无法识别,包括'ls'和'pwd'

时间:2015-01-08 16:59:37

标签: windows shell vim

我还在学习vim,在我的vimtutor会话期间,我写了:!ls但是找不到它。我也试过:sh这很好但我无法弄清楚为什么使用爆炸符号不会

编辑:我错了。 ':sh'调出shell但是ls和pwd仍然无法使用shell的那个实例

edit2:我一直在使用Powershell,现在意识到lspwd不是cmd可用的命令。我添加了

set shell=powershell.exe
set shellcmdflag=-c
set shellpipe=>
set shellredir=>

进入_vimrc从这个问题中发现:Vim with Powershell

2 个答案:

答案 0 :(得分:2)

你混淆了" bang"添加到:w!之类的命令和单独的:!命令,它将余数传递给 shell 。 (此外,许多内置命令,如:ls:pwd都是由Unix / Linux上的常见shell命令命名的。)

如果您使用的是Windows,那么您根本就没有lspwd这些常见的Linux命令。(等效项将是{ {1}}和dir,resp。)

如果安装了像 Cygwin GNU Win32 项目提供的Unix仿真层,那么您将获得相应的二进制文件(echo %CD%然后可以调用(甚至重新配置Vim的ls.exe选项来使用这样的shell)。

答案 1 :(得分:1)

vim中的

:!通过'shell'运行给定的命令。

在Windows上,这是cmd.exels在Windows上不是有效命令。因此:!ls无法在Windows上运行。

另一方面,

:!dir会。