Widziałem częściowe rozwiązania przez Internet, ale żaden naprawdę mnie nie satysfakcjonował: co muszę włożyć do mojego .vimrc (najlepiej, że nie chcę żadnego przypadku plik składni/* .vim) tak, że we wszystkich plikach .c/cpp/h, które otwieram, otrzymuję automatyczne składanie sekcji #ifdef ... #endif
?Autofold #ifdef .. # endif w vim przez .vimrc
Odpowiedz
Jeżeli jedynym rodzajem składania że chcesz jest #ifdef
sekcje, najprostszym sposobem jest utworzenie pliku ~/.vim/after/ftplugin/c.vim
(może trzeba to zrobić w cpp.vim
, nie jestem pewien) o następującej treści:
set foldmarker=#ifdef,#endif
set foldmethod=marker
Jeśli naprawdę chcesz, aby umieścić go w .vimrc
zamiast używać struktury ~/.vim/after/
, można zrobić coś takiego:
autocmd FileType *.[ch]{,pp} call FoldPreprocessor()
function! FoldPreprocessor()
set foldmarker=#ifdef,#endif
set foldmethod=marker
endfunction
można również rozważyć u śpiewać:
set foldmarker=#if,#endif
Jako że złapie #if defined(...)
, #ifdef
, #ifndef
, #if 0
etc, jak również #ifdef
.
Wykonanie tego ze składaniem składni jest trudniejsze, ponieważ trzeba będzie zmienić specyfikację składni, ponieważ nie obsługuje tego jako standard.
Wiesz, że możesz nawigować blokami warunkowymi preprocesora za pomocą klucza warunkowego %?
Również [# i ] # poruszać się w górę/w dół.
Więc można przejść do początku bloku warunkowego (być może z /^#
Wprowadź), następnie
zf% -- fold to next conditional directive
v2]#zf -- fold to second next directive (e.g. #else... #endif)
zd
upuścić krotnie.
Być może uda Ci się opracować mały scenariusz dotyczący tej koncepcji. Nie jestem pewien, czy wystąpi (niepożądana) interakcja z regularnym składaniem składni, ponieważ nie mam zwyczaju tego używać. Zwykle stosuję składanie wcięć z ręczną manipulacją składaniem w ten sposób.
- 1. Vim vundle colorschemes - vimrc
- 2. #ifdef #else #endif wybierz wersję i funkcję iOS sdk?
- 3. Jak mogę uzyskać Eclipse do kodu indeksu wewnątrz #ifdef .... #endif
- 4. jak debugować vim config (.vimrc)
- 5. specyficzny dla pliku vim .vimrc
- 6. Jak wykryć vi (nie vim) w .vimrc?
- 7. Jak zlokalizować plik vimrc używany przez edytor vim?
- 8. Uruchom vim bez vimrc/change vimrc z otwartymi plikami
- 9. .vimrc akcja onclose
- 10. #ifdef i wyjaśnienie potrzebne
- 11. Jak ustawić vim nie auto tiret w extern "C" {linia
- 12. Funkcja źródła .vimrc i .gvimrc
- 13. Vim zatrzymuje się, jeśli echo w pliku .vimrc
- 14. vimrc file import
- 15. Nie można zrobić szary eol charakter przez .vimrc
- 16. Jak mogę przesłonić ścieżki ~/.vim i ~/.vimrc (ale nie inne) w vim?
- 17. Różnica między kolorem a kolorem w `.vimrc`
- 18. Dodawanie .vim ~/.vimrc do github (aka plików dot)
- 19. #ifdef DEBUG kontra #if DEBUG
- 20. if {} in if: endif
- 21. Sprawdź, czy patogen jest zainstalowany w vimrc
- 22. Zastosuj zmiany vimrc bez restartowania
- 23. Cel "#ifdef MODUŁA" wokół module_exit()?
- 24. Dlaczego nie mogę #ifdef stdafx.h?
- 25. netbeans jvi vimrc file location
- 26. Użyj ag w ctrlp + vim
- 27. Vim: Usuń mapowanie utworzone przez vim-plugin
- 28. jak korzystać z #ifdef z warunkiem LUB?
- 29. Dlaczego: help ignore: ustaw liczbę w .vimrc?
- 30. Brakujący lider w Vim
Jakiego typu foldm używasz? Składanie składni? –
Tak, składanie składni (ale myślę, że mógłbym, jeśli to ułatwia automatyczne składanie) – dcn