-
-
Save dave-kennedy/2188b3dd839ac4f73fe298799bb15f3b to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
" source: https://stackoverflow.com/a/24046914/2571881 | |
let s:comment_map = { | |
\ "c": '\/\/', | |
\ "cpp": '\/\/', | |
\ "go": '\/\/', | |
\ "java": '\/\/', | |
\ "javascript": '\/\/', | |
\ "lua": '--', | |
\ "scala": '\/\/', | |
\ "php": '\/\/', | |
\ "python": '#', | |
\ "ruby": '#', | |
\ "rust": '\/\/', | |
\ "sh": '#', | |
\ "desktop": '#', | |
\ "fstab": '#', | |
\ "conf": '#', | |
\ "profile": '#', | |
\ "bashrc": '#', | |
\ "bash_profile": '#', | |
\ "mail": '>', | |
\ "eml": '>', | |
\ "bat": 'REM', | |
\ "ahk": ';', | |
\ "vim": '"', | |
\ "tex": '%', | |
\ } | |
function! ToggleComment() | |
if has_key(s:comment_map, &filetype) | |
let comment_leader = s:comment_map[&filetype] | |
if getline('.') =~ '^\s*$' | |
" Skip empty line | |
return | |
endif | |
if getline('.') =~ '^\s*' . comment_leader | |
" Uncomment the line | |
execute 'silent s/\v\s*\zs' . comment_leader . '\s*\ze//' | |
else | |
" Comment the line | |
execute 'silent s/\v^(\s*)/\1' . comment_leader . ' /' | |
endif | |
else | |
echo "No comment leader found for filetype" | |
endif | |
endfunction | |
nnoremap <Leader>t :call ToggleComment()<CR> | |
vnoremap <Leader>t :call ToggleComment()<CR> |
@dave-kennedy I tried vim-commentary. But didn't like it though.
I just wanted voyeg3r & your code to put comment out signs at the first of each line
like this cpp code
// #include <iostream>
// using namespace std;
// int main(){
// cout << "hello world";
// }
@dave-kennedy please help me add the feature..
@backermanbd @dave-kennedy
+1, CPP developers need this feature
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
@backermanbd @OrionRandD I just found vim-commentary. I will probably use that going forward instead of maintaining this. It has better community support, isn't much larger than this, and uses Vim's 'commentstring' option instead of a list of hard coded file types so it automatically works with a lot more languages.