Vim用户熟悉使用
进入和查看当前目录列表:o .
在此目录视图中,我们可以提供其他命令,例如 d ,vim将以“请给出目录名称:”回复。这当然允许我们在为vim提供目录名后在当前目录中创建一个新目录。
同样,我们可以删除一个空目录,首先将光标向下移动到列表中,该列表强调我们要删除的特定目录并输入 D 。
问题是,vim不允许我们删除非空目录。
这是坚持我们删除非空目录吗?
答案 0 :(得分:7)
您所指的目录视图名为netrw
。您可以使用:help netrw
阅读整个文档,但:help netrw-delete
可以访问您在此案例中寻找的内容:
g:netrw_rmdir_cmd变量用于支持删除目录。 其默认值为:
g:netrw_rmdir_cmd:ssh HOSTNAME rmdir
如果使用g:netrw_rmdir_cmd删除目录失败,则netrw将尝试 使用g:netrw_rmf_cmd变量再次删除它。其默认值为:
g:netrw_rmf_cmd:ssh HOSTNAME rm -f
因此,您可以覆盖包含删除目录的命令的变量,如下所示:
let g:netrw_rmf_cmd = 'ssh HOSTNAME rm -rf'
编辑:如同指出的那样,这是相当冒险的。如果您需要额外的确认以防目录不为空,您可以编写一个执行提示的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'
当然,建议进行大量仔细测试:)。
答案 1 :(得分:4)
:help netrw_localrmdir
。
我的.vimrc文件中的设置:
let g:netrw_localrmdir="rm -r"