如何在vi編輯器中取代多行中的單字?

如何在vi編輯器中取代多行中的單字?

例如,在 vi 編輯器中建立了一個包含 8 行單字「today」的文件,我想知道如何使用一次命令將 4 行更改為單字「昨天」。

答案1

大多數作用於檔案內容的 ex 命令(即透過按:(冒號)然後按命令名稱來呼叫的命令)允許在命令之前指定範圍。此範圍指定哪些行受該指令影響。範圍的一般形式是用逗號分隔的兩個數字,該命令作用於從第一個數字到第二個數字(含)的所有行。例如

1,4s/today/yesterday/g

替換文件前四行中出現的所有todayby 。yesterday

您可以在數字前面加上一個符號,使其相對於目前行。例如

-1,+1s/today/yesterday/g

對上一行、目前行和下一行執行替換。如果包含逗號但省略其中一個數字,則表示目前行,例如

,+1s/today/yesterday/g

對目前行和下一行執行替換。您也可以使用$數字代替數字來表示文件的最後一行。如果省略逗號並僅指定一個數字,則該指令僅作用於此行,例如

+1s/today/yesterday/g

僅在以下行上執行替換。

答案2

您可以使用命令:

:n,m s/today/yesterday/

即從第 n 行到第 m 行將「今天」一詞替換為「昨天」。

答案3

試試這個 :

進入 vi 編輯器的命令模式並嘗試以下命令:

:%s/today/yesterday/g

g - 在全域範圍內將今天替換為昨天。

相關內容