vi/vim多行註釋和取消註釋

多行註釋:vim

1. 進入命令行模式,按ctrl + v進入 visual block模式,而後按j, 或者k選中多行,把須要註釋的行標記起來函數

2. 按大寫字母I,再插入註釋符,例如//spa

3. 按esc鍵就會所有註釋了.net

 

取消多行註釋:命令行

1. 進入命令行模式,按ctrl + v進入 visual block模式,按字母l橫向選中列的個數,例如 // 須要選中2列調試

2. 按字母j,或者k選中註釋符號code

3. 按d鍵就可所有取消註釋orm

 

對單行註釋:CTRL_C
對多行註釋: 先」V」,進入塊選擇模式。選擇一段代碼。CTRL_C
一樣,還原的命令和上面的同樣。如對一行CTRL_C後,把它註釋了,再CTRL_C後就還原了。
注意代碼應該要整齊,縮進。選擇塊時,要保證塊中的第一行就是最靠左的。否則會出問題。blog

「功能說明:加入或刪除註釋//
「映射和綁定

nmap :Setcomment
imap :Setcomment
vmap :SetcommentV
command! -nargs=0 Setcomment call s:SET_COMMENT()
command! -nargs=0 SetcommentV call s:SET_COMMENTV()

「非視圖模式下所調用的函數
function! s:SET_COMMENT()
let lindex=line(」.」)
let str=getline(lindex)
「查看當前是否爲註釋行
let CommentMsg=s:IsComment(str)
call s:SET_COMMENTV_LINE(lindex,CommentMsg[1],CommentMsg[0])
endfunction

「視圖模式下所調用的函數
function! s:SET_COMMENTV()
let lbeginindex=line(」‘<") "獲得視圖中的第一行的行數
let lendindex=line("'>「) 「獲得視圖中的最後一行的行數
let str=getline(lbeginindex)
「查看當前是否爲註釋行
let CommentMsg=s:IsComment(str)
「爲各行設置
let i=lbeginindex
while i<=lendindex
call s:SET_COMMENTV_LINE(i,CommentMsg[1],CommentMsg[0])
let i=i+1
endwhile
endfunction

「設置註釋
「index:在第幾行
「pos:在第幾列
「comment_flag: 0:添加註釋符 1:刪除註釋符
function! s:SET_COMMENTV_LINE( index,pos, comment_flag )
let poscur = [0, 0,0, 0]
let poscur[1]=a:index
let poscur[2]=a:pos+1
call setpos(」.」,poscur) 「設置光標的位置

if a:comment_flag==0
「插入//
exec 「normal! i//
else
「刪除//
exec 「normal! xx」
endif
endfunction

「查看當前是否爲註釋行並返回相關信息
「str:一行代碼
function! s:IsComment(str)
let ret= [0, 0] 「第一項爲是否爲註釋行(0,1),第二項爲要處理的列,
let i=0
let strlen=len(a:str)
while i 「空格和tab容許爲」//」的前綴
if !(a:str[i]==’ ‘ || a:str[i] == ‘ ‘ )
let ret[1]=i
if a:str[i]==’/’ && a:str[i+1]==’/’
let ret[0]=1
else
let ret[0]=0
endif
return ret
endif
let i=i+1
endwhile
return [0,0] 「空串處理
endfunction

 

已調試源碼:https://qiy.net/2019/03/18/vim-ctrl-c/ get

相關文章
相關標籤/搜索