Vi

Ex 和 Vi:緩衝區和正則表達式

  • April 3, 2011

我想將正則表達式匹配到緩衝區,但無法獲得更簡單的範例y :.put myNewBuffer返回 msg[line] [put] [buffer]工作,即如何將某些內容放入緩衝區?

所以對於正則表達式和 ex

  1. 是什麼(.,.)~ replaces the previous regular expression with the previous replacement pattern from a substitution意思?一些有用的例子,報價來源。
  2. 請舉例說明如何將正則表達式與 ex 一起使用。例如,如何在h以第一個字元為首字元的單詞到以s字元結尾的單詞之間緩衝區域?
  3. 如果僅在一行上的最後一件事(即結束詞)是詞尾到s或行尾$呢?

vim 手冊可能比舊的 Ex 手冊更好,更新。最有可能的是,您將在大多數現代 Linux 發行版上使用 vim 附帶的 ex。要在 Vim 中獲得幫助,請使用 :help,要獲得特定命令(如 Ex 命令 ~)的幫助,請使用:help :~. 在 Vim 中,所有 Ex 命令都以 : 開頭。我認為 (.,.) 只是用來表示一個範圍可以指定為 2,8 來表示第 2 到第 8 行或第 1 行, $ ( $ 表示文件中每一行的最後一行)。在 Vim 中,輸入:1,$~意味著在文件的每一行上執行 Ex 命令 ~。

  1. Vim 說:~的是“使用相同的替換字元串但使用上次使用的搜尋模式重複上次替換。” 替換通常寫成:s/pattern/string/ 這在一行上尋找一個模式並用字元串替換它。 :~重複最後一個替換命令,但使用最近的模式搜尋。
  2. 試試這個模式:/\<h.*s\>

/ 用於在 Ex/Vim 中開始搜尋,< 表示匹配單詞的開頭,h 匹配 h,.* where 。匹配任何單個字元並且 * 重複零次或多次,因此 .* 表示匹配零個或多個字元。s 匹配 s,> 匹配詞尾。

  1. 試試這個模式/words\?$

$ 在模式匹配中使用時表示行尾,而 ? 表示前一個字元是可選的。這將匹配一行末尾的一個或多個單詞。

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