我还在学习vim,在我的vimtutor会话期间,我写了:!ls
但是找不到它。我也试过:sh
这很好但我无法弄清楚为什么使用爆炸符号不会
edit2:我一直在使用Powershell,现在意识到ls
和pwd
不是cmd可用的命令。我添加了
set shell=powershell.exe
set shellcmdflag=-c
set shellpipe=>
set shellredir=>
进入_vimrc从这个问题中发现:Vim with Powershell
答案 0 :(得分:2)
你混淆了" bang"添加到:w!
之类的命令和单独的:!
命令,它将余数传递给 shell 。 (此外,许多内置命令,如:ls
和:pwd
都是由Unix / Linux上的常见shell命令命名的。)
如果您使用的是Windows,那么您根本就没有ls
和pwd
这些常见的Linux命令。(等效项将是{ {1}}和dir
,resp。)
如果安装了像 Cygwin 或 GNU Win32 项目提供的Unix仿真层,那么您将获得相应的二进制文件(echo %CD%
然后可以调用(甚至重新配置Vim的ls.exe
选项来使用这样的shell)。
答案 1 :(得分:1)
:!
通过'shell'
运行给定的命令。
在Windows上,这是cmd.exe
。 ls
在Windows上不是有效命令。因此:!ls
无法在Windows上运行。
:!dir
会。