W naszej bazie kodu C++ przechowujemy 99 wierszy kolumn, ale 79-cio-dziwne komentarze multilinowe. Czy istnieje dobra strategia, aby zrobić to automagicznie? Zakładam, że tryby są już znane z powodu inteligentnego łączenia linii komentarza i wprowadzania * wstawiania.Vim inny tekst dla wielowierszowych komentarzy C?
Odpowiedz
Podobno zarówno kod, jak i komentarze korzystają z tej samej opcji textwidth
. O ile widzę, jedyną sztuką jest aby ustawić tę opcję Dynamicznie
:autocmd CursorMoved,CursorMovedI * :if match(getline(.), '^\s*\*') == 0 | :setlocal textwidth=79 | :else | :setlocal textwidth=99 | :endif
Tutaj kluczowym elementem jest wykrywanie, kiedy jesteśmy w komentarzu. Jeśli tylko format Komentarze ten sposób:
/*
* my comment
*/
mój regex powinien pracować ... chyba że masz linie w kodzie począwszy *
(co chyba może się zdarzyć w C
, rzadziej w C++
). Jeśli używasz komentarzy takich jak to:
// comment line 1
// comment line 2
regex jest jeszcze łatwiejszy do napisania. Jeśli chcesz omówić wszystkie możliwe sytuacje, w tym przypadki narożne, dobrze ... Myślę, że najlepszą rzeczą byłoby zdefiniowanie oddzielnej funkcji wykrywania i wywołanie jej z poziomu :autocmd
zamiast match()
.
+1, chciałbym opublikować podobną propozycję, ale byłoby to identyczne z tym. – progo
Jaki ma to wpływ na wydajność? Jeśli mam SSHed na serwerze, może to znacznie zwiększyć opóźnienie? –
To nie będzie @Kazark, cała logika jest wykonywana wewnątrz Vima (tj. Po stronie serwera). Powiedziawszy to, wpłynie to na wydajność w taki sam sposób, w jaki ma to wpływ, jeśli używasz go lokalnie (tj. Nie przez SSH) –
Natrafiłem na ten sam problem i sądzę, że znalazłem odpowiednie rozwiązanie.
Co chciałem, aby moje komentarze zawijały się w słowa, więc gdy piszę, nie muszę się martwić formowaniem tekstu. Działa to dobrze z tekstem komentarza. Ale nie byłam zadowolona z tego, że mam format vima. Dlatego chciałem, aby vim podkreślał wszystko w kolorze czerwonym po kolumnie x.
Aby to zrobić z samym kodem cpp, należy dodać następujące polecenie do pliku ~/.vim/ftdetect/cpp.vim.
set textwidth=79
match ErrorMsg '\%>99v.\+'
Uwaga: Być może trzeba będzie utworzyć plik i foldery, jeśli nie istnieją.
Jeśli masz problemy z tym upewnij się, że masz formatoptions ustawić na:
formatoptions=croql
widać to przez wykonanie: zestaw formatoptions wewnątrz vim.
Przepraszam, ale nie - to jest to samo rozwiązanie, które dostałem na to pytanie, które zadałem: http://stackoverflow.com/questions/235439/ Podkreślenie śmieci w każdym miejscu jest o wiele mniej finezji, niż mam nadzieję! – cdleary
- 1. Wyłącz podświetlanie składni vim wewnątrz komentarzy C++
- 2. Inny kolor dla komentarzy do kodu i komentarzy XML w VB.NET
- 3. Czy istnieją ograniczniki komentarzy wielowierszowych w języku SQL, które są agnostyczne od dostawców?
- 4. Vim omnicompletion dla C#
- 5. Automatyczne tworzenie komentarzy do dokumentacji w Vim
- 6. Przepisywanie bloków komentarzy za pomocą vim
- 7. Składanie składni VIM: wyłączanie składanych komentarzy wieloliniowych
- 8. Generowanie komentarzy/komentarzy dla metody Kotlin
- 9. vim + C++: wstawić uuid do klauzuli wartownika
- 10. Vim: Jak zmienić tekst z indent skryptu
- 11. vim skopiować i zamienić tekst
- 12. Vim tekst wyszukiwania w folderze
- 13. Jak dodać inny tekst do obiektów UIActivityViewController
- 14. Składanie komentarzy tylko wtedy, gdy plik jest otwierany w Vim
- 15. Automatyczne rozwijanie bloków komentarzy w emacs
- 16. ustawienia ścieżki dla C++ obejmują nagłówki dla vim
- 17. C# czy inny skrót
- 18. Zapisuje zaznaczony tekst (linia częściowa) z Vim
- 19. dla - inny vs dla Elif
- 20. Automatyczne uzupełnianie Vim C++
- 21. Ograniczenia zakresu FQL dla strumienia i komentarzy
- 22. Drupal - Jak zmienić format wejściowy dla komentarzy?
- 23. Różnica między: i # dla komentarzy Basha
- 24. Projektowanie systemu komentarzy z gwintami dla iOS
- 25. Ustaw tekst paska zadań inny niż tytuł okna w wpf
- 26. Automatyczne generowanie komentarzy Gettext
- 27. Instalacja Vundle dla VIM
- 28. wyrażenie regularne potrzebne do usunięcia komentarzy C/C#
- 29. Wykonaj inny program w C++
- 30. Jak skopiować tekst z trybu poleceń w vim
Możesz ustawić niestandardowe 'formatexpr' lub' formatprg', jednak będzie to wymagało napisania wtyczki vim lub zewnętrznego programu formatującego, zobacz pomoc w celu uzyskania szczegółowych informacji. Nie znam żadnych wtyczek, które zrobią to za Ciebie, ale nie jestem pewien, że nie istnieją. – ZyX
Czy możesz napisać przykładowy kod lub podać link do kodu, który chcesz sformatować? Bez obietnic, ale być może uda mi się napisać prosty program do formatowania. –
@molecules: Nie szukam programu do formatowania, po prostu coś, co automatycznie rozpoznaje moją szerokość tekstu wynosi 79 zamiast zwykłej 99, gdy piszę w komentarzu wielowierszowym. – cdleary