2009-06-04 9 views
9
Kod

My SAS wymaga tego stylu Komentarz:wstawiać komentarze automatycznie w vim

/* 
* This is the comment 
*/ 

udało mi się wpisać to polecenie (od Vim Comment Howto):

:set comments=sl:/*,mb:*,elx:*/ 

Problem polega na tym, że po wpisaniu tego polecenia set nie wiem, jak faktycznie uzyskać te komentarze, aby dodać do kodu. Instrukcje mówią o typie /\*<enter>, ale w trybie wstawiania działa to normalnie, aw trybie poleceń powoduje to znalezienie na *.

Jak to działa, i czy istnieją lepsze sposoby na automatyczne wstawianie znaczników komentarza?

Odpowiedz

19

Domyślnie Vim nie automatycznie wstawiaj znaki nowej linii lub końcowe. Zamiast tego, to sprawia, że ​​w trakcie pisania można łatwo wstawić te, o ile zawiera r'formatoptions':

:set formatoptions+=r 

Po tym, zacznij pisać komentarz jako normalne: „/*<Enter>” (w trybie wstawiania). Po naciśnięciu klawisza Enter lider komentarza (gwiazdka i spacja) powinien pojawić się automatycznie w następnym wierszu, aby rozpocząć pisanie. Po zakończeniu komentarza zakończ "<Enter>/"; <Enter> przesuwa się do następnej linii, a ukośnik staje się drugą postacią znacznika końcowego. Tak, usunie to miejsce dla ciebie, ale tylko zaraz po tym, jak naciśniesz Enter.

Aby ułatwić edycję tego typu komentarzy, należy również dodać znaki c i/lub o do formatoptions. Ten pierwszy umożliwia automatyczne zawijanie komentarzy, a drugi wstawia lidera komentarza podczas tworzenia nowej linii wewnątrz komentarza za pomocą poleceń trybu normalnego.

+0

Wygląda na to, że złamałem moje vim - naciśnięcie " /" na końcu moich komentarzy powoduje tylko skomentowanie ukośnika i więcej komentarzy do następnej linii - tzn. Vim nie rozpoznaje '* /' jako '* /'. –

+0

@Daniel: To zachowanie jest wywoływane przez znak 'x' w powyższym wierszu': set comments'. Zobacz ": help" format-comments'', aby uzyskać szczegółowe informacje. Aby zobaczyć, gdzie ustawiana jest zła wartość '' comments'', użyj ': verbose set comments?'. – eswald

2

Jaki język?

W tym ustawieniu na komentarze C VIM autoloads:

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

Który działa jak można się spodziewać. Może musisz dodać to do ftplugin dla języka/rozszerzenia, którego używasz?

+1

OP wspomina o kodzie SAS – webwesen

1

mam ten skrót w moim .vimrc:

" /// -> insert javadoc comment 
iab <buffer> /// /**^M *^M*/^[0A 

gdzie^[0A Ctrl-V + w górę.
Rodzaj /// w trybie wstawiania, aby uzyskać komentarz jak

/** 
* 
*/ 
1

this skryptu Vima może rozwiązać Twój problem - wystarczy umieścić go w "vimXY/składni" Folder

1

Pamiętaj również, aby sprawdzić styl komentarzy (:set comments?), jeśli używasz wielu typów plików. PHP na przykład czasami używa komentarzy w stylu HTML <!-- ... -->, jeśli jest osadzony HTML, dlatego wpisanie /*, a następnie naciśnięcie klawisza spowoduje, że wprowadzenie nie będzie miało żadnego efektu.

Mam następujących w moim pliku .vimrc aby upewnić komentarzy PHP są stosowane domyślnie

au Bufenter *.php set comments=sl:/*,mb:*,elx:*/ 

HTML kod będzie nadal prawidłowo zauważył jednak, pomieszczenia wewnątrz kodu HTML może użyć komentując konwencję PHP (jeśli używasz wtyczek takich jak tComment) i nie będziesz mieć wielowierszowych komentarzy HTML, które i tak uważam za niemożliwe.