2009-06-30 19 views
6

Nie jestem pewien, czy to możliwe, ale jestem ciekawy, jak to się stało.
Idealnie chciałbym mapować tej funkcji SHIFT + CTRL + .Czy Vim ma funkcję automatycznego komentarza opartą na składni pliku?

Szukam sposobu, aby Vim wprowadził komentarz (pojedyncza linia), który odpowiada składni edytowanego pliku. Jeśli istnieje wiele stylów komentarzy jednowierszowych, Vim może automatycznie wybrać jeden lub dać mi wybór. Jeżeli komentarz jednoliniowego ma dwie części (np /* i */), a następnie naciskając SHIFT + ctrl + po raz pierwszy rozpoczyna komentarz, a drugi raz, aby zamknąć komentarze.

Przykłady:

  • Python: #
  • JavaScript: //
  • C, C++: /* z */ lub //

Wiem, że są skrypty, które będą wstawiać komentarze dla ciebie, ale nie widziałem, żeby to zrobiło ed na składnię pliku.

Odpowiedz

5

Sortuj! Nie wierzę, że vim zrobi to po wyjęciu z pudełka, ale możesz zainstalować wtyczki, które będą dość inteligentnie komentować (używając klawiszy ruchu, wizualne podkreślanie linii itp.), Które są specyficzne dla edytowanego typu pliku. Możesz pobrać te wtyczki z vim.org i powinieneś być w stanie stworzyć własne kluczowe odwzorowania w swoim pliku .vimrc, jeśli nie podoba ci się te, z których pochodzą.

tComment jest dość dobrze przyjęta i sprawdziła się u mnie.

Słyszałem, że EnhCommentify może być lepiej, ale sam go nie użyłem.

+0

Dzięki! Oba wyglądają całkiem nieźle. Wypróbuję je dzisiaj. –

2

Patrz: this script który zapewnia funkcja skomentował zaznaczony obszar w trybie wizualnym.

Chcesz rozpocząć komentarz w trybie wstawiania więc funkcja będzie wyglądać bardziej jak:

fun CommentLines() 
    exe ":[email protected]^@".g:Comment."@g" 
endfun 
-1

Niezupełnie to, czego szukasz, ale wydajne i przypuszczam, że wiesz, który komentarz użyć. (wszystko w trybie komend) Ustaw kursor w pierwszym wierszu, który chcesz skomentować.willl my wtedy ustawiony znacznik nazywany (Nazwy: AZ, pojedynczy znak), wpisując

ma 

umieścić kursor do ostatniego wiersza, a następnie ustawić znacznik o nazwie b wpisując

mb 

Następnie wypowiedzieć cały blok (szukając nowej linii i wstawienie znaku komentarza (zauważ użycie „#” jako wyszukiwania separatora bo inaczej wee musieli uciec „/”)

:'a,'bs#^#//# 

lub Python:

:'a,'bs/^/#/ 

odkomentowac:

:'a,'bs#^//## 

Jak zrobić linii komentarzy, to nie ma znaczenia, czy mamy inne komentarze już w pliku, zostaną one zachowane.

Powiązane problemy