如何使用 Vim 编辑器删除文件

如何使用 Vim 编辑器删除文件

我有一个文件 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

有很多方法:

  1. 在 vim 中使用交互 shell

    当在编辑器中时 -

    :sh
    rm textfile.xml
    
  2. 使用 Bang(!)

    正如 DopeGhoti 建议的那样 -

    :!rm textfile.xml
    
  3. 这个链接

    将其添加到您的~/.vimrc

    command! -complete=file -nargs=1 Remove :echo 'Remove: '.'<f-args>'.' '.(delete(<f-args>) == 0 ? 'SUCCEEDED' : 'FAILED')
    

    然后,在vim中,

    :Remove testfile.xml
    
  4. 再次来自 #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

相关内容