1. 程式人生 > >Vim快速查詢和替換

Vim快速查詢和替換

VIM是被譽為非常高效的文字編輯軟體。但是掌握並高效的使用是件有難度的事情。在VIM中進行快速的查詢和替換是提高VIM使用效率的重要方法。下面是我在閱讀VIM使用者手冊時整理的一些資料:

行內搜尋

  • f命令可以進行行內搜尋。輸入fx可以找到下一個x字元。
  • F命令可以在反方向進行行內搜尋,輸入Fx可以找到上一個x字元。
  • t命令同樣是進行行內搜尋,但是游標停留在符合條件的字元的前面。輸入tx使游標停留在下一個x字元的前面。
    -T命令可以在反方向進行行內搜尋,但是游標停留在符合條件的字元的下一個字元上。輸入tx使游標停留在上一個x的後面的字元上。
  • %可以搜尋與之匹配的對應的()[]{}。這個功能對於書寫程式特別有用。
  • 全文的搜尋。鍵入/後,游標進入VIM底部的命令列,這時就可以輸入以/為開始的/搜尋命令了。
  • 最簡單的查詢。輸入/string就可以查詢string字串。
    繼續查詢。在第一次搜尋後輸入n將會繼續進行上一次搜尋,如果輸入3n那麼會找到後面第三個符合的字串。大寫的N會在反方向,也就是向上進行搜尋。
    向上搜尋。輸入?可以向上搜尋。隨後的n命令將會繼續向上搜尋,N向下搜尋,其他和/一樣。
  • 對大小寫的匹配。
    在命令列輸入:set ignorecase可以設定搜尋以忽略大小寫的方式進行。輸入:set noignorecase可以設定搜尋以匹配大小寫的方式進行。預設的,將匹配大小寫。這個預設設定可以在.vimrc中修改。
  • 大小寫智慧匹配模式。輸入命令:set ignorecase smartcase可以設定為智慧大小寫匹配模式。在這種模式下,如果你輸入的字串中至少包含一個大寫字母,那麼就會以大小寫敏感模式進行搜尋,否則以忽略大小- 寫模式進行搜尋。
    在搜尋命令中指定大小寫。在幾種大小寫搜尋模式中進行轉換總要輸入長長的一串指令,如果需要不斷地轉換模式,確實有些麻煩。所以你可以直接在搜尋命令中指定大小寫匹配模式。\c表示忽略大小寫,而\C表示對大小寫敏感。
  • 查詢當前詞。一個簡單的方法可以讓你查詢下一個和當前詞一樣的詞,你不比輸入/currentword,你可以直接按下*就可以查詢下一個currentword。#可以讓你向上查詢同一個單詞。
  • 調整查詢後的游標位置。
    使用/string/3會使在游標轉到找到string字串的行下面的第3行。第1行從包含string的行算起。同樣可以使用/string/-2來使游標停留在包含string的行的前面2行。
    使 用/string/e可以使游標停留在string字串的末尾而不是預設的第一個字元位置。/string/b則表示停留在string第一個字元的位 置,不過預設就是如此,我們不比多此一舉。但是/string/b+2卻可以使游標停留在string字串的第二個字元的位置,這裡是r。在e或者b的 後面+或者-數字,可以進一步調整游標的位置。
    特殊字元。在搜尋命令中, .*[]^%/?~$這10個字元有著特殊意義,所以在使用這些字元的時候要在前面加上一個反斜槓/。而\e表示;\t表示;\r表示;\b表示。
    匹 配換行或空格。使用\n可以表示一個換行;而\s表示匹配空白,注意是空白不是空格。_s表示匹配換行或者空格;_a表示匹配換行或者一個字母。比 如:/the\nword查詢以the結束並且下一行以word開始的行的位置。/the_sword查詢the和word之間以空白或者換行分割的位 置。/the_s+word表示the和word之間可以有多個空白。+的含義可以在後面找到。
    限定詞首或者詞尾。\<可以限定找到是以指定字串開始的單詞。比如/\

搜尋並替換

  • 輸入: [range]s/from/to/[flags]命令可以搜尋匹配的字串並且替換為指定的字串。這是一個稍微複雜的命令。其中[range]是一個 可選項,用來指定搜尋替換的範圍。[flags]也是一個可選項,用來指定搜尋替換的處理方式。所以這個命令的簡單形式是:s/from/to/。
  • 搜尋替換的範圍。如果沒有指定範圍,則只在當前行進行搜尋替換。
    在所有行進行搜尋替換。範圍符號%表示在所有行進行搜尋替換。:%s/from/to/就是在全文查詢from並替換為to。
    在指定的行上進行搜尋替換。:1,50s/from/to/表示在第1行和第50行之間(包括1和50行)進行搜尋和替換。:45s/from/to/表示僅僅在第45行進行搜尋和替換。而”1,$”行號範圍和“%“是等價的。
    處理方式。我現在使用的VIM預設的方式是無須確認。不過好像不同版本的預設的處理方式是不同的。
    無須確認。方式符號g表示直接替換無須進行確認。:%s/from/to/g表示在全文中查詢from並且直接全部替換為to。
    列印。處理方式符號p表示在替換時列出每個被改變的行。手冊中這麼說,但是實際效果卻讓我很迷惑。

相關推薦

Vim快速查詢替換

VIM是被譽為非常高效的文字編輯軟體。但是掌握並高效的使用是件有難度的事情。在VIM中進行快速的查詢和替換是提高VIM使用效率的重要方法。下面是我在閱讀VIM使用者手冊時整理的一些資料: 行內搜尋 f命令可以進行行內搜尋。輸入fx可以找到下一個x字元。

vi vim 查詢替換字串 命令

一、vi查詢:           當你用vi開啟一個檔案後,因為檔案太長,如何才能找到你所要查詢的關鍵字呢?在vi裡可沒有選單-〉查詢,不過沒關係,你在命令模式下敲斜杆(/)這時在狀態列(也就是螢幕左

Vim 查詢替換

這篇文章來詳細介紹 Vim 中查詢相關的設定和使用方法。 包括查詢與替換、查詢游標所在詞、高亮前景/背景色、切換高亮狀態、大小寫敏感查詢等。 查詢 在normal模式下按下/即可進入查詢模式,輸入要查詢的字串並按下回車。 Vim會跳轉到第一個匹配。按下n查詢下

關於在vim中的查詢替換

1,查詢 在normal模式下按下/即可進入查詢模式,輸入要查詢的字串並按下回車。 Vim會跳轉到第一個匹配。按下n查詢下一個,按下N查詢上一個。 Vim查詢支援正則表示式,例如/vim$匹配行尾的"vim"。 需要查詢特殊字元需要轉義,例如/vim\$匹配"vim$"。 2,大小寫敏感查詢 在查詢

關於在vim中的查詢替換(轉載)

轉載出處:https://www.cnblogs.com/huxinga/p/7942194.html   1,查詢 在normal模式下按下/即可進入查詢模式,輸入要查詢的字串並按下回車。 Vim會跳轉到第一個匹配。按下n查詢下一個,按下N查詢上一個。 Vim查詢支援正則

快速入門-Excel2013零基礎入門視訊課程-圖文解析-11查詢替換功能

【說明】原視訊基本不配說明文件,此文件為 手敲+截圖 而來 , 缺少校對時間 , 有問題請留言或發信息 , 我會及時更正的,謝謝 ! 查詢和替換功能在選單欄可以找到 , 或者使用快捷鍵 : CTRL+F – 尋找 CTRL+H – 替換 選項裡面 : 選擇工作簿 : 可以跨越工作表查詢。

vim基礎命令,查詢替換

vim 基本命令查詢和替換 vim簡單的命令用著還好。比如插入,刪除,查詢。但替換就用的比較少。所以,還是需要用的時候拿出來對照者看。 使用vim編輯檔案: vim xxx 進入之後的介面叫做命令模式介面。可以修改檔案編輯的時候叫做插入模式。 (命令模式)冒號+指令 在vim命令模式介面想要退出,需要輸入冒號

SQL查詢替換含有回車,空格,TAB

轉:https://blog.csdn.net/u010195563/article/details/82927984 ---如下是查詢語句 --查詢名稱有退格鍵 select * from t_bd_item_info  where charindex(char(8),item_na

vim 快速查詢功能

轉載自:https://blog.csdn.net/ballack_linux/article/details/53187283       vim有強大的字串查詢功能。       我們通常在vim

Notepad++查詢替換 空白行

原來有很多空白行 查詢替換  正則表示式   將  \r\n\r   換為  \r    轉義字元瞭解一下  \r  回車(CR) ,將當前位置移到本行開頭&nb

leetcode 890. 查詢替換模式

你有一個單詞列表 words 和一個模式  pattern,你想知道 words 中的哪些單詞與模式匹配。 如果存在字母的排列 p ,使得將模式中的每個字母 x 替換為 p(x)&n

php字串的查詢替換

字串查詢並替換的二大函式 * 1.str_replace() * 2.substr_replace()   $str = 'Peter Zhu is PHP lecture'; //二、str_replace() //1.str_replace() echo str_replac

Codeforce 890 查詢替換模式

原題目連結:CodeForce890 分類 Codeforce 字串 題意 模式匹配 你有一個單詞列表 words 和一個模式 pattern,你想知道 words 中的哪些單詞與模式匹配。 如果存在字母的排列 p ,使得將模式中的每個字母 x 替換為 p

Word中使用正則表示式進行查詢替換(高效進行文書處理)

術語 開始前,我們先定義一對術語: 萬用字元指的是您可以用來代表一個或多個字元的鍵盤字元。例如,星號 (*) 通常代表一個或多個字元,問號 (?) 通常代表單個字元。 對我們來說,正則表示式指的是您可以用來查詢和替換文字模式的文字字元和萬用字元組合。文字字元指的是必須存在於目標文

【資料庫SQL】SQL查詢替換含有回車,空格,TAB,等

---如下是查詢語句 --查詢名稱有退格鍵 select * from t_bd_item_info  where charindex(char(8),item_name) > 0  go --查詢名稱有製表符tab  select * from t_bd_item_i

Python字串string的查詢替換

hello_str = "hello world" # 1. 判斷空白字元 space_str = " \t\n\r" print(space_str.isspace()) # 2. 判斷是否以指定字串開始 print(hello_str.start

LeetCode Find and Replace Pattern 查詢替換模式

You have a list of words and a pattern, and you want to know which words in words matches the pattern. A word matches the pattern if ther

LeetCode 890. 查詢替換模式(C++、python)

你有一個單詞列表 words 和一個模式  pattern,你想知道 words 中的哪些單詞與模式匹配。 如果存在字母的排列 p ,使得將模式中的每個字母 x 替換為 p(x) 之後,我們就得到了所需的單詞,那麼單詞與模式是匹配的。 (回想一下,字母的排列是從字母到字母

正則化與萬用字元便於查詢替換批量處理,使用在word,notepad++等文字編輯器中

我們常常使用查詢替換的方式來處理相關資料,可是當你要批量替換隻用一些相同字元分文字時,就會顯得很笨拙。 比如:     Line 5974: DI 10.13182/NT96-A15844     Line 6078: DI 10.1109/ISIC.1996.55623

leetcode 890. 查詢替換模式 Python

用模式的每個字母去當做key對應單詞列表的每個字母value, 如果放進dict之前檢測到key已經存在,就檢測Word[i][j]是否是和已經存在的value一致,不一致就代表不匹配,break檢查下一個Word 還有可能不一樣的key對應了一樣的value,這種情況也要去掉,把dict的value去重