2014-10-05 59 views
0

我目前在一个名为Nick的文件上使用vi。我想删除缓冲区中的最后2行。我将如何做到这一点?我尝试使用y和/ d,但我不确定正确的语法。在vi中删除最后2行缓冲区

回答

2

如果你正在做这个交互:

  1. :$ - 1(去倒数第二行)
  2. dG的(删除一切从光标现在)
+0

我想使用正则表达式和ex命令专门做这个。我试过命令:$ - 1d,但只删除1行。 – Nick 2014-10-05 23:11:11

2

Gdk会执行此操作,然后是Ctrl-O如果您想返回之前的状态,请执行此操作。

(这是G移动到文件末尾,dk到当前位置和运动k即达一行,和Ctrl-O刚刚返回到以前的位置。结果之间删除线)

如果我真的这样做并没有时间考虑这个问题,我可能会使用G转到文件末尾,Shift-V以进入可视化线模式,k除了选择上一行当前一个,然后d删除它们两个。我知道

+0

这就是我所需要的,但是我试图用ex命令来完成它,因为我正在习惯使用它们和Regex。 – Nick 2014-10-05 23:12:59

+1

你应该在问题中提到。 – 2014-10-06 08:24:09

2

最短的路是

:$;-d 

它说“范围$;-删除线”。从最后一行$到最后一行-(与-1相同)之前的范围相反。