vim的高亮查找操作

来源:http://www.cnblogs.com/yingjie13/archive/2016/02/15/5190598.html
-Advertisement-
Play Games

使用了VIM這麼久,卻一直無法牢記一些基本的操作指令。今天查找一個關鍵字時,想不起來怎麼查找“下一個”,於是google之並解決,順便把有用的都貼過來罷。查找指令:/xxx 往下查找?xxx 往上 n 下一個:set hls 打開高亮:set nohls 關閉高亮下麵是查找替換,雖然我至今沒使用過這


使用了VIM這麼久,卻一直無法牢記一些基本的操作指令。今天查找一個關鍵字時,想不起來怎麼查找“下一個”,於是google之並解決,順便把有用的都貼過來罷。

查找指令:
/xxx 往下查找
?xxx 往上 
n    下一個
:set hls 打開高亮
:set nohls 關閉高亮

下麵是查找替換,雖然我至今沒使用過這一功能 - - 
因為網上太多了,所以轉來也不知道原創是誰

1,簡單替換表達式

替換命令可以在全文中用一個單詞替換另一個單詞:

:%s/four/4/g

 

“%” 範圍首碼表示在所有行中執行替換。最後的 “g” 標記表示替換行中的所有匹配點。如果僅僅對當前行進行操作,那麼只要去掉%即可

   如果你有一個象 “thirtyfour” 這樣的單詞,上面的命令會出錯。這種情況下,這個單詞會被替換成”thirty4″。要解決這個問題,用 “\<” 來指定匹配單詞開頭:

        :%s/\<four/4/g

顯然,這樣在處理 “fourty” 的時候還是會出錯。用 “\>” 來解決這個問題:

        :%s/\<four\>/4/g

如果你在編碼,你可能只想替換註釋中的 “four”,而保留代碼中的。由於這很難指定,可以在替換命令中加一個 “c” 標記,這樣,Vim 會在每次替換前提示你:

        :%s/\<four\>/4/gc

2,刪除多餘的空格

要刪除這些每行後面多餘的空格,可以執行如下命令:

        :%s/\s\+$//

命令前面指明範圍是 “%”,所以這會作用於整個文件。”substitute” 命令的匹配模式是

“\s\+$”。這表示行末($)前的一個或者多個(\+)空格(\s)。替換命令的 “to” 部分是空的:”//”。這樣就會刪除那些匹配的空白字元。

3,匹配重覆性模式

星號項 “*” 規定在它前面的項可以重覆任意次。因此:

        /a*

匹配 “a”,”aa”,”aaa”,等等。但也匹配 “” (空字串),因為零次也包含在內。星號 “*” 僅僅應用於那個緊鄰在它前面的項。因此 “ab*” 匹配 “a”,”ab”,”abb”,”abbb”,等等。如要多次重覆整個字元串,那麼該字元串必須被組成一個項。組成一項的方法就是在它前面加 “\(”,後面加 “\)”。因此這個命令:

        /\(ab\)*

匹配: “ab”,”abab”,”ababab”,等等。而且也匹配 “”。

要避免匹配空字串,使用 “\+”。這表示前面一項可以被匹配一次或多次。

        /ab\+

匹配 “ab”,”abb”,”abbb”,等等。它不匹配 後面沒有跟隨 “b” 的 “a”。

要匹配一個可選項,用 “\=”。 例如:

        /folders\=

匹配 “folder” 和 “folders”。

4,指定重覆次數

要匹配某一項的特定次數重覆,使用 “\{n,m}” 這樣的形式。其中 “n” 和 “m” 都是數字。在它前面的那個項將被重覆 “n” 到 “m” 次 (|inclusive| 包含 “n” 和 “m”)。例如:

        /ab\{3,5}

匹配 “abbb”,”abbbb” 以及 “abbbbb”。

   當 “n” 省略時,被預設為零。當 “m” 省略時,被預設為無限大。當 “,m” 省略時,就表示重覆正好 “n” 次。例如:

        模式           匹配次數

        \{,4}            0,1,2,3 或 4

        \{3,}            3,4,5,等等

        \{0,1}           0 或 1,同 \=

        \{0,}            0 或 更多,同 *

        \{1,}            1 或 更多,同 \+

        \{3}             3

5,多選一匹配

在一個查找模式中,”或” 運算符是 “\|”。例如:

        /foo\|bar

這個命令匹配了 “foo” 或 “bar”。更多的抉擇可以連在後面:

        /one\|two\|three

匹配 “one”,”two” 或 “three”。

   如要匹配其多次重覆,那麼整個抉擇結構須置於 “\(” 和 “\)” 之間:

        /\(foo\|bar\)\+

這個命令匹配 “foo”,”foobar”,”foofoo”,”barfoobar”,等等。

   再舉個例子:

        /end\(if\|while\|for\)

這個命令匹配 “endif”,”endwhile” 和 “endfor”。

 

轉載: http://blog.chinaunix.net/uid-20732478-id-763411.html


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 本地: 1.進入MySQL目錄下的bin文件夾:e:回車; e:\>cd mysql\bin? 回車 2.導出資料庫:mysqldump -u 用戶名 -p 資料庫名 > 導出的文件名 範例: mysqldump -u root -p abc > abc.sql (導出資料庫abc到abc.sql文
  • 連接mysql時遇到的錯誤。 原因:該用戶沒有許可權連接訪問mysql資料庫 解決方法:網站上搜了好多,試了都沒有用。最終在登陸的信息頁面用root用戶登陸時不輸入root密碼即可。
  • 從08開始,sql server 提供了一種叫做 變更數據捕獲 cdc(Change Data Capture) 的功能,可以通過啟用這個功能,來實現查看資料庫中的表對象的數據的變化情況。(我感覺就是有點像sql server 自己提供的用戶能直接看懂的數據變化功能)。 根據官方的說法。使用cdc
  • 一、簡介 MongoDB 是由C++語言編寫的,是一個基於分散式文件存儲的開源資料庫系統。MongoDB 旨在為WEB應用提供可擴展的高性能數據存儲解決方案。MongoDB 將數據存儲為一個文檔,數據結構由鍵值(key=>value)對組成。MongoDB 文檔類似於 JSON 對象。欄位值可以包含
  • 查看oracle狀態的SQL語句 select status from v$instance; 查看oracle控制文件的SQL語句 select name from v$controlfile; 查看oracle數據文件的SQL語句 select name from v$datafile; 查看o
  • 看論壇上還許多人問及ACCESS被註入的安全問題許多人解決的方法仍然是用Replace替換特殊字元,然而這樣做也並沒有起到太大做用今天我就把我用ACCESS參數化查詢的一些方法和經驗和大家分享希望對大家有所啟發,有寫的不對的地方希望高手們多多指教 ASP.NET 用OleDbCommand的new
  • 當管理SQL Server內在的帳戶和密碼時,我們很容易認為這一切都相當的安全。但實際上並非如此。在這裡,我們列出了一些對於SQL Server密碼來說非常危險的判斷。 當管理SQL Server內在的帳戶和密碼時,我們很容易認為這一切都相當的安全。畢竟,你的SQL Server系統被保護在防火牆裡
  • 一.概述 netfilter是自2.4內核的一個數據包過濾框架。可以過濾數據包,網路地址和埠轉換(nat和napt技術),以及其他操作數據包的功能。主要工作原理是在內核模塊註冊回調函數(hook函數)到內核,內核執行到相關點時會觸發這個回調函數,然後根據回調函數里的邏輯,對包含網路協議棧的sk_b
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...