在vi中删除缓冲区的最后2行

时间:2014-10-05 21:56:52

标签: regex unix vi

我目前在名为Nick的文件上使用vi。我想删除缓冲区中的最后两行。我该怎么做?我尝试使用y和/ d但是我不确定正确的语法。

3 个答案:

答案 0 :(得分:2)

如果您是以交互方式进行此操作:

  1. :$ - 1(转到倒数第二行)
  2. dG(删除光标所在的所有内容)

答案 1 :(得分:2)

Gdk会执行此操作,然后Ctrl-O,如果您想在返回之前返回原位。

(要G移动到文档末尾,dk删除当前位置与动作k结果之间的行,即向上移动行,Ctrl-O只会将您返回上一个位置。)

如果我实际上是这样做而没有时间考虑它,我可能会使用G转到文件的末尾,Shift-V进入视线模式,k除了当前行之外还要选择上一行,然后d删除它们。

答案 2 :(得分:2)

我所知道的最短路是

:$;-d

表示'删除范围$;-'中的行。范围以相反的方式给出,从最后一行$到最后一行-之前的一行(与-1相同)。