Składnia foldmethod
jest świetna, ale czasami po prostu chcę złożyć komentarze w pliku źródłowym.
Również składanie komentarzy w składni działa tylko w przypadku komentarzy typu C, takich jak:
/*
...
*/
Ale nie dla komentarza:
//
//
// ...
//
Lub nawet dla bloków komentarzy w językach innych niż C, takich jak:
#
#
# ...
#
Jak mogę to skonfigurować za pomocą vima?
Odpowiedzi:
Składanie tylko komentarzy jest dość łatwe przy użyciu
foldmethod=expr
:Spowoduje to po prostu sprawdzenie, czy linia zaczyna się od dowolnej ilości białych znaków + znaku komentarza. Pamiętaj, że jest to dość naiwne i może nie działać we wszystkich językach. Możesz więc użyć autocmd, aby być bardziej szczegółowym:
Aby uzyskać więcej informacji o fold-expr, zobacz:
:help fold-expr
:help folding-functions
Korzystanie ze składania składni i składania komentarzy jest bardziej zaangażowane; wymagałoby to modyfikacji pliku składni
/usr/share/vim/vim74/syntax/*.vim
i będzie specyficzne dla używanego języka.Pamiętaj, że niektóre typy plików już to robią! Na przykład z
ruby.vim
:źródło
Lubię składać z wcięciem, ale włączanie komentarzy w fold (oznacza to, że każdy komentarz ma taki sam poziom foldowania jak poprzednia linia).
Niestety słowo kluczowe foldignore działa tylko w przypadku komentarzy w jednym wierszu. Więc składam z expr w vimrc:
Ostatni blok:
Zwraca składaną podstawę na wcięcie.
I kolejny :
Sprawdza, czy pierwszy znak linii jest uważany za komentarz ze składnią. Jest to więc dobry sposób na połączenie wcięcia i składania składni z ekspresją, najbardziej zaawansowanego składania.
Pamiętaj, że możesz także „ustawić tekst rozkładany” w zależności od tego, jak chcesz, aby wyglądał wynik.
źródło
Możesz wizualnie wybrać komentowany blok za pomocą,
vac
a następnie utworzyć ręczne składaniezf
.Obiekt tekstu komentarza może być rozszerzeniem języka dla zestawu standardowych obiektów tekstu vim. Przetestowałem to ze składnią Go.
źródło
ac
nie jest wbudowany. Ale z komentarzem tpope'agc
jest obiekt tekstowy. Tak więc lepszymi rozwiązaniami sązfac
,zfgc
lubzfip
w najgorszym wypadku