Vim用户熟悉使用进入和查看当前目录列表
:o .
在这个目录视图中,我们可以提供其他命令,如d和vim将响应“请给出目录名:”.这当然允许我们在为vim提供目录名后在当前目录中创建一个新目录.
类似地,我们可以删除一个空目录,首先将光标向下移动到列表,该列表强调我们要删除的特定目录并键入D.
问题是,vim不允许我们删除非空目录.
您所指的目录视图称为netrw.您可以通过以下方式阅读其整个文档:help netrw,但在这种情况下您可以通过以下方式访问:help netrw-delete:
The g:netrw_rmdir_cmd variable is used to support the removal of directories.
Its default value is:g:netrw_rmdir_cmd: ssh HOSTNAME rmdir
If removing a directory fails with g:netrw_rmdir_cmd,netrw then will attempt
to remove it again using the g:netrw_rmf_cmd variable. Its default value is:g:netrw_rmf_cmd: ssh HOSTNAME rm -f
因此,您可以覆盖包含命令的变量来删除目录,如下所示:
let g:netrw_rmf_cmd = 'ssh HOSTNAME rm -rf'
编辑:像sehe指出的那样,这是相当冒险的.如果您需要额外的确认以防目录不为空,您可以编写一个执行提示的shell脚本.一个快速的谷歌出现了这个问题:bash user input if.
所以,你可以写一个像这样的脚本:
#! /bin/bash hostname = $1 dirname = $2 # ... # prompt the user,save the result # ... if $yes then ssh $hostname rm -rf $dirname fi
然后,设置命令以执行脚本
let g:netrw_rmf_cmd = 'safe-delete HOSTNAME'
当然,建议进行大量的仔细测试:).