2014-10-05 61 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相同)之前的範圍相反。