我有一个文件 testfile.xml 我想用 Vim 打开并在命令模式下删除
答案1
交互式删除文件的另一种方法是使用
:E
或者
:Ex
用于 ex(探索)文件目录。那里有一个交互式窗口可以指导您。选择要删除的条目后,使用
Shift-D
确认与
y
return
这是在资源管理器模式下窗口顶部的样子:
" ============================================================================
" Netrw Directory Listing (netrw v140)
" C:\Users\cbkrd\Desktop
" Sorted by name
" Sort sequence: [\/]$,\.h$,\.c$,\.cpp$,*,\.o$,\.obj$,\.info$,\.swp$,\.bak$,\~$
" Quick Help: <F1>:help -:go up dir D:delete R:rename s:sort-by x:exec
" ============================================================================
答案2
有很多方法:
在 vim 中使用交互 shell
当在编辑器中时 -
:sh rm textfile.xml
使用 Bang(!)
正如 DopeGhoti 建议的那样 -
:!rm textfile.xml
从这个链接。
将其添加到您的
~/.vimrc
command! -complete=file -nargs=1 Remove :echo 'Remove: '.'<f-args>'.' '.(delete(<f-args>) == 0 ? 'SUCCEEDED' : 'FAILED')
然后,在vim中,
:Remove testfile.xml
再次来自 #3 中的相同链接
使用这个命令:
:call delete(expand('%')) | bdelete!
答案3
要删除该文件,请执行:!rm %
.%
扩展为文件名。 Vim 不会自动删除缓冲区,但您可以使用 手动删除缓冲区:bd
。
要验证文件是否已被删除,请执行!ls
.
答案4
mv 比 rm 更安全:
com! -nargs=? -complete=file T call Trash_by_viM(<f-args>)
" 0 or 1 arguments are allowed
fun! Trash_by_viM(...) abort
if a:0 > 0 " 有传参
" if a:1 之前用这行, 不行, 因为if 'abc' 等于if FALSE, if '1abc' 才等于if TRUE
exe '! mv' a:1 '~/.t/'..a:1..'__moved_by_vim'
echo "moved" a:1
el
write
exe '! mv' expand("%:p") '~/.t/'..expand("%:p:t")..'__moved_by_vim'
echo "moved" expand("%:p")
bwipeout!
en
endf