2012-05-23 17 views
14

Kiedy rozpocząć nowy wiersz na końcu komentarza pojedynczej linii w pliku .{cpp,h}, vim jest automatycznie komentowania go. Na przykład:Auto-komentarz nowa linia w vim tylko dla bloku komentuje

// This is a comment<CR> 
// | <- Cursor is moved to `|`, `//` is automatically inserted. 

Nie jestem pewien, czy to jest plugin lub ustawienie. Nie widzę niczego, co wyglądałoby, jakby to zrobiło w moim ~/.vimrc, a załadowane wtyczki wymieniono poniżej.

I jak to dla /* */ -Style multiline komentarze, ale nie chcę, mój jednoliniowy komentarze działające na wielu liniach domyślnie.

Które ustawienie (lub wtyczki) to robi, i mogę go wyłączyć na ten komentarz typu tylko?

:scriptnames daje to:


    1: /Users/simont/.vimrc 
    2: /usr/local/share/vim/vim73/syntax/syntax.vim 
    3: /usr/local/share/vim/vim73/syntax/synload.vim 
    4: /usr/local/share/vim/vim73/syntax/syncolor.vim 
    5: /usr/local/share/vim/vim73/filetype.vim 
    6: /usr/local/share/vim/vim73/ftplugin.vim 
    7: /usr/local/share/vim/vim73/syntax/nosyntax.vim 
    8: /Users/simont/repositories/config-files/vim/colors/solarized.vim 
    9: /usr/local/share/vim/vim73/plugin/getscriptPlugin.vim 
10: /usr/local/share/vim/vim73/plugin/gzip.vim 
11: /usr/local/share/vim/vim73/plugin/matchparen.vim 
12: /usr/local/share/vim/vim73/plugin/netrwPlugin.vim 
13: /usr/local/share/vim/vim73/plugin/rrhelper.vim 
14: /usr/local/share/vim/vim73/plugin/spellfile.vim 
15: /usr/local/share/vim/vim73/plugin/tarPlugin.vim 
16: /usr/local/share/vim/vim73/plugin/tohtml.vim 
17: /usr/local/share/vim/vim73/plugin/vimballPlugin.vim 
18: /usr/local/share/vim/vim73/plugin/zipPlugin.vim 
19: /usr/local/share/vim/vim73/scripts.vim 
20: /usr/local/share/vim/vim73/ftplugin/vim.vim 
21: /usr/local/share/vim/vim73/syntax/vim.vim 

Odpowiedz

13
au FileType c,cpp setlocal comments-=:// comments+=f:// 

W swojej vimrc powinno wystarczyć dla // bez wpływu komentarzy blokowych, w {KPP h} plików.

Aby spróbować go tymczasowo w bieżącym użyciu bufora:

:setlocal comments-=:// comments+=f:// 
+2

Co 'komentarze + = f: //' zrobić? –

5

Ten rodzaj konfiguracji, które są związane z konkretnymi typami plików są zwykle ustawione przez plugin file-type. Istnieje wiele typów plików dla typowych typów plików (takich jak .cpp), który pochodzi z Vima. Możesz sprawdzić typ pliku dla bufora z :set ft?.

Ustawienie kontynuować komentarze po uruchomieniu nowej linii pochodzi z opcją 'comments', jak pb2q powiedział. Dla .{cpp,h} domyślny typ pliku to "cpp", a opcja 'comment' jest ustawiona na $VIMRUNTIME/ftplugin/c.vim, ponieważ cpp.vim znajduje się w tym samym katalogu. Z akt c.vim:

" Set 'comments' to format dashed lists in comments. 
    setlocal comments=sO:*\ -,mO:*\ \ ,exO:*/,s1:/*,mb:*,ex:*/,:// 

Opcja comments jest lista {flags}:{string} i flagi f i O uniknąć powiększenia komentarz nowe linie.

Z Vim FAQ:

You can use an autocommand triggered on the FileType event: 

     au Filetype * set formatoptions=xyz 

    This should at least be after "filetype on" in your vimrc. Best is to put 
    it in your "myfiletypefile" file, so that it's always last. 


    If you want to override a setting for a particular filetype, then create a 
    file with the same name as the original filetype plugin in the 
    ~/.vim/after/ftplugin directory For example, to override a setting in the 
    c.vim filetype plugin, create a c.vim file in the ~/.vim/after/ftplugin 
    directory and add your preferences in this file. 

więc utworzyć plik ~/.vim/after/ftplugin/c.vim z

setlocal comments-=:// 
    setlocal comments+=fO:// 

powinno rozwiązać ten problem.