Vi

vi 中的可視模式以刪除多行末尾的字元

  • December 5, 2014
builder.append("sss");
builder.append("aaaaaaaaa");

我想刪除 ; 在末尾。我可以在 sed 中使用各種腳本或在 vim 中全部替換。

但是,我想知道如何使用可視模式。

我知道如何在前面或後面添加進入可視模式,j,Shift + i,在開頭添加和 esc 類似 Shift + $ 結束。

但是,當我嘗試使用 j、Shift + $、Shift + a、退格和 esc 刪除時,它不起作用,我得到以下資訊:

  builder.append("sss")
  builder.append("aaaaaaaaa");)

我究竟做錯了什麼?

聽起來對多行執行此操作的最簡單方法是在可視模式下標記塊,然後:

:'<,'>s/;$//

請注意,'<,'>意思是“從視覺塊的開始到結束”,當您:在視覺模式下按下時會自動添加。

將游標放在分號上並使用x刪除它。

(我假設您指的是 vi 的可視模式(與其 ex 模式不同),而不是 Vim 的VISUAL模式。)

如果您真的想一次使用多行執行此操作,那麼您將不得不求助於冒號命令。如果您使用的是 Vim,那麼 @Greg Hewgill 的答案就是適合您的答案。如果您使用 vi,則必須用 標記第一行,ma最後用標記mb,然後用 處理所有這些:'a,'bs/;$//

引用自:https://unix.stackexchange.com/questions/171537