Multi-line Comments:
1. Enter command-line mode, press CTRL + V to enter Visual block mode, then press J, or K to select multiple lines to mark the lines that need comment
2. Press the capital letter I, then insert the comment, for example//
3. Press the ESC key to annotate all
To cancel multiple lines of comment:
1. Enter command line mode, press CTRL + V to enter Visual block mode, select the number of columns by letter L, for example//2 columns to be selected
2. Select the comment symbol by the letter J, or K
3. Press the D key to cancel all comments
Pair-line Comment: Ctrl_c
For multiline comment: First "V", enter block selection mode. Select a section of code. Ctrl_c
Similarly, the restored command is the same as above. If the line is Ctrl_c, it is annotated, then Ctrl_c and restored.
Note that the code should be neatly indented. When you select a block, make sure that the first row in the block is the most left. Otherwise there will be a problem.
"Feature Description: Add or remove comments//"Mapping and binding Nmap:Setcommentimap:Setcommentvmap:SetcommentVcommand! -nargs=0setcomment call s:set_comment () command! -nargs=0Setcommentv Call S:SET_COMMENTV () "functional function called in non-view mode!s:set_comment () let Lindex=Line (".") Let str=getline (lindex) "To see if the current comment line is let commentmsg=s:iscomment (str) call S:set_commentv_line (lindex,commentmsg[1],commentmsg[0]) endfunction function functions called in view mode!S:set_commentv () let Lbeginindex=line ("' <") "get the number of rows in the first row of the view let Lendindex=line ("' > ') "Gets the number of rows in the last row in the viewLet str=getline (Lbeginindex) "To see if the current comment line is let commentmsg=s:iscomment (str) set let I for each line=Lbeginindex whilei<=lendindexcall s:set_commentv_line (i,commentmsg[1],commentmsg[0]) Let I=i+1endwhileendfunction "set comment" index: In the first few lines of "POS: In the first few columns" Comment_flag:0: Add an annotation character1: Remove the comment character function!s:set_commentv_line (Index,pos, Comment_flag) let Poscur= [0,0,0,0]let poscur[1]=A:indexlet poscur[2]=a:pos+1Call SetPos (".", Poscur) "Sets the position of the cursorifa:comment_flag==0the Insert//Exec "normal! I//"Elsethe Delete//Exec "normal!xx "Endifendfunction" to see if it is currently a comment line and return related information "STR: one line of code function!s:iscomment (str) let RET= [0,0] "The first item is whether it is a comment line (0,1), the second item is the column to be processed, let I=0Let strlen=Len (A:STR) whileI "spaces and tabs allow for"//"the prefixif! (a:str[i]== "| | a:str[i] = =') Let ret[1]=Iifa:str[i]== '/' && a:str[i+1]== '/' Let ret[0]=1ElseLet ret[0]=0endifreturnRetendiflet i=i+1Endwhilereturn[0,0] "empty string processing endfunction
Vi/vim Multi-line comments and uncomment