微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

删除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'

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐