我想删除最后 10 行并将其移动到另一个文件。
我目前所做的是:
:'<,'>w其他文件,有没有更有效的方法可以做到这一点?
您可以通过执行以下操作删除一个步骤:
:!> newfile.txt这将使用外部命令将行写入给定的文件名,并同时删除它们,因为该命令没有输出任何内容。
如果您想追加到文件而不是覆盖它,请使用而>>不是>.
您可以使用ex命令来代替。例如
:1,10w file.name 写出前十行
:$-9,$w file.name 写入最后十行(美元符号表示最后一行)
.vimrc您可以使用命令:MoveTo file.name
function! MoveLastLines(f)
exe '$-9,$w ' . a:f "write last ten lines to the passed filename
$-9,$d "delete last ten lines
endfunction
command! -nargs=1 -range MoveTo :call MoveLastLines(<f-args>)
Run Code Online (Sandbox Code Playgroud)
GV9k:w file.name gvd) 是最有效的。