標籤:vim 命令 注釋
需求
C99引入了“//”單行注釋方式,因此C和C++在注釋方式上並軌了!
對於程式猿經常在原始碼中進行“必要的”注釋. 以滿足特殊的需求,比如調試,代碼的增刪等等!在不添加外掛程式以及配置vim的情況下,以命令列的方式完成這項工作。因此,對於其他實現方式這裡就不再提及!
命令實現
說明:由於命令採用‘/‘分割符方式的可讀性較差,因此這裡同時給出採用‘:‘分割符命令作為補充,使用者根據偏好擇取。
1.單行注釋方式(//)注釋單行
- 游標在當前行
:s/.*/\/\/&/
:s:.*://&:
- 指定注釋行
:n,n s/.*/\/\/&/
:n,n s:.*://&:
其中n是要注釋的行號。
補充說明
s - 替換命令
.* - 匹配一整行
\/\/ - “//“的轉義
& - 表示匹配的內容,這裡就是一整行
2.多行注釋方式(/**/)注釋單行
- 游標在當前行
:s//\/*&*\//
:s:.:/&*/:
- 指定注釋行
:n, n s//\/*&*\//
:n, n s:.:/&*/:
其中n是要注釋的行號。
補充說明
s - 替換命令
.* - 匹配一整行
\/* - “/*“的轉義
& - 表示匹配的內容,這裡就是一整行
*\/ - “*/“的轉義
3.單行注釋方式(//)注釋代碼塊
- 指定行區間
:n, m s/.*/\/\/&/
:n, m s:.*://&:
全域區間1,$和%
- 指定匹配區間
- visual line模式下選擇需要注釋的代碼塊,然後執行
:s/.*/\/\/&/
:s:.*://&:
- 以搜尋方式指定起始和結束位置
:g/^void fun1/., /^int fun2/-1 s/.*/\/\/&/
:g/^void fun1/., /^int fun2/-1 s:.*://&:
補充說明
/^void fun1/. - 將被注釋掉的函數起始點
/^int fun2/-1 -將被注釋掉的函數結束點,在fun2的減1行
後面同上替換操作同上
這裡fun*可以替換成對應的代碼塊的起始行首個word和結束行首個word
4.多行注釋方式(/**/)注釋代碼塊
單行注釋方式(//)注釋代碼塊方式在這裡同樣適用!只是將//替換成“/**/“這一點區別。不再贅述!但是如果在注釋掉的代碼塊中每一行都加上/**/,似乎不地道!下面就解決這個問題。
方法:將游標放到被注釋代碼的起始點,執行如下命令
- :s:.*:/* &: | g/end/-1 s:.*:&*/:
補充說明
第一步:在當前行之首添加左注釋符”/*”
通過管道方式,轉到第二步
第二步:全域搜尋到被注釋代碼的結束點即end - 1文本行尾追加右注釋符”*/”
第三步: : noh取消下vim的高顯!over! perfect!
注意 :多行注釋不能嵌套!
vim C/C++注釋代碼