vim - 删除 Vim 中的行并将其重定向到另一个文件

标签 vim scripting vi

我想删除最后 10 行并将其移动到另一个文件。

我目前做的是:

  • 在可视模式下选择最后 10 行,
  • 通过 :'<,'>w 写这些行到其他文件,
  • 然后删除选定的行。

  • 有没有更有效的方法可以做到这一点?

    最佳答案

    您可以使用 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>)
    

    在正常模式下,您提到的步骤( GV9k:w file.name gvd )在我看来是最有效的。

    关于vim - 删除 Vim 中的行并将其重定向到另一个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7720520/

    相关文章:

    powershell - 使用 Powershell Out-Host 时保留颜色

    vim - 用空行替换字符串

    linux - 在 vim 中执行打开默认编辑器命令

    vim - 在用户定义命令中使用行号

    vim - 检测从普通 :map 调用的函数内的模式

    linux - 我们可以将选项传递给 tcl 8.5 中的 tcl source 命令吗

    bash - 如何检查目录是否有子目录?

    Linux vi文件内容修改

    vim - 如何使用vim缩进文本文件的偶数/奇数行

    unix - 在 FreeBSD 中安装 VIM