Vi
Ex 和 Vi:緩衝區和正則表達式
我想將正則表達式匹配到緩衝區,但無法獲得更簡單的範例
y :.put myNewBuffer
返回 msg[line] [put] [buffer]
工作,即如何將某些內容放入緩衝區?所以對於正則表達式和 ex
- 是什麼
(.,.)~ replaces the previous regular expression with the previous replacement pattern from a substitution
意思?一些有用的例子,報價來源。- 請舉例說明如何將正則表達式與 ex 一起使用。例如,如何在
h
以第一個字元為首字元的單詞到以s
字元結尾的單詞之間緩衝區域?- 如果僅在一行上的最後一件事(即結束詞)是詞尾到
s
或行尾$
呢?
vim 手冊可能比舊的 Ex 手冊更好,更新。最有可能的是,您將在大多數現代 Linux 發行版上使用 vim 附帶的 ex。要在 Vim 中獲得幫助,請使用 :help,要獲得特定命令(如 Ex 命令 ~)的幫助,請使用
:help :~
. 在 Vim 中,所有 Ex 命令都以 : 開頭。我認為 (.,.) 只是用來表示一個範圍可以指定為 2,8 來表示第 2 到第 8 行或第 1 行, $ ( $ 表示文件中每一行的最後一行)。在 Vim 中,輸入:1,$~
意味著在文件的每一行上執行 Ex 命令 ~。
- Vim 說
:~
的是“使用相同的替換字元串但使用上次使用的搜尋模式重複上次替換。” 替換通常寫成:s/pattern/string/
這在一行上尋找一個模式並用字元串替換它。:~
重複最後一個替換命令,但使用最近的模式搜尋。- 試試這個模式:
/\<h.*s\>
/ 用於在 Ex/Vim 中開始搜尋,< 表示匹配單詞的開頭,h 匹配 h,.* where 。匹配任何單個字元並且 * 重複零次或多次,因此 .* 表示匹配零個或多個字元。s 匹配 s,> 匹配詞尾。
- 試試這個模式
/words\?$
$ 在模式匹配中使用時表示行尾,而 ? 表示前一個字元是可選的。這將匹配一行末尾的一個或多個單詞。