删除vim中的非空目录

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'

当然,建议进行大量的仔细测试:).

相关文章

解决方案:解决linux下vim乱码的情况:(修改vimrc的内容)全...
Linuxvi/vim所有的UnixLike系统都会内建vi文书编辑器,其他的...
      vim正则匹配:空行:/^$/  /^[\t]*$/注释...
$select-editorSelectaneditor.Tochangelater,run'sele...
上次手贱忘了保存,这次就简单做个备忘吧,把踩过的坑记一下...
Linux之文本编译器小结vim的优势所有的UNIX-LIKE习通都会内置...