W vim, FIXME i TODO są podświetlone, ale nie mogę uzyskać FIXME: i TODO: (proszę zwrócić uwagę na dwukropek za słowem kluczowym), aby podświetlić? Co powinienem umieścić w moim .vimrc, aby to się stało?W vim, jak wyróżnić TODO: i FIXME :?
Odpowiedz
Cóż, już znalazłeś problem, ale oto dlaczego.
Istnieją trzy podstawowe typy dopasowywania składni: słowa kluczowe, dopasowania i regiony. Słowa kluczowe są ustalonymi ciągami, zazwyczaj używanymi w przypadku słów kluczowych w języku podstawowym (int
, double
, ...), a także, w twoim przypadku, w przypadku FIXME i TODO. Naprawdę mam na myśli ustalone ciągi; muszą być dokładnymi i całymi słowami, w przeciwieństwie do dopasowań i regionów, które używają wyrażenia regularnego. Na przykład, od C składnię:
syn keyword cTodo contained TODO FIXME XXX
Wygląda na to, że prawie wszystkie wbudowane w definicji składni, tylko z różnymi nazwami grupowych (cTodo).
iskeyword
informuje vim, czy dana postać może być częścią słowa kluczowego. Domyślnie nie zawiera dwukropków, więc przy wyszukiwaniu słów kluczowych vim widzi "FIXME:" jako "FIXME" i ignoruje dwukropek. Jeżeli przyczepność na okrężnicy (set iskeyword+=:
), można zdefiniować dodatkowy bit podkreślając:
syn keyword myTodo contained TODO: FIXME:
To zależy od Ciebie, jak chcesz pracować go do istniejących grup składnia/highlight. Jeśli jest to tylko jeden typ pliku, możesz dodać go do grupy todo tej składni (na przykład cTodo). Jeśli chcesz go wszędzie, możesz zrobić "myTodo" zgodnie z sugestią, a następnie połączyć go bezpośrednio z grupą podświetlającą Todo (hi def link myTodo Todo
).
Alternatywnie, można pozostawić iskeyword
sam (I pewnie polecam) i po prostu korzystać z meczu:
syn match myTodo contained "\<\(TODO\|FIXME\):"
hi def link myTodo Todo
+1 @Jefromi, jednak nie sądzę, żeby to dopasowanie było skuteczne. Wrzuciłem to do mojego .vimrc i jeśli zmienię FIXME na coś innego, to nie jest podświetlone. – g33kz0r
@ G33kx0r: To nie wina tego meczu; działa, jeśli nadal istnieje. Podejrzewam, że włączasz składnię (w ten czy w inny sposób) * po * liniach w przebiegu vimrc, a gdy włączona jest składnia, najpierw usuwa starą składnię, a następnie ładuje odpowiednią. Możesz sprawdzić, czy to dopasowanie jest nadal na miejscu, używając ': syn list myTodo'. Zobacz także ': help składnia-ładowanie'. – Cascabel
Ustawianie pierwszej "składni na", a następnie 'syn pasuje do zawartego w moim todo" \ <\ (TODO \ | FIXME \): "' w moim pliku 'vimrc' i' hi! def link myTodo Todo' nie działa dla mnie. Z drugiej strony, jeśli robię, na przykład, "au BufNewFile, BufRead * .tex syn pasuje do texTodo" \ <\ (TODO \ | FIXME \): "wynikowy plik' tex' jest poprawnie podświetlony. Czy istnieje ogólne rozwiązanie? – petobens
Jeśli tworzyć własne środowisko, make syntax file (not .vimrc)
składni globalnego plik znajduje się katalog vim (np. /usr/share/vim/vim72/syntax/c.vim)
i jeśli yo utwórz ~/.vim/syntax/c.vim, a następnie możesz dodać składnię do swojej własnej . (przesłonięcie)
Po prostu dodaj dodatkową składnię do tego pliku. (Sposób @Jefromi robi)
augroup vimrc_todo
au!
au Syntax * syn match MyTodo /\v<(FIXME|NOTE|TODO|OPTIMIZE|XXX):/
\ containedin=.*Comment,vimCommentTitle
augroup END
hi def link MyTodo Todo
containedin
doda go do wszystkich grup kończących się na „Komentarz”, plus vimCommentTitle, gdzie " TODO: foo
nie dostanie zaznaczony jako MyTodo inaczej.
Uwagi dotyczące wykorzystania: możesz dodać to do pliku .vimrc i usunąć dwukropek (":"), jeśli chcesz tylko podświetlone słowo, a nie dwukropek za nim. Preferuję podświetlanie, aby przeczytać _NOTE_ :, nie _NOTE: _. Czasami piszę też NOTATKA lub TODO, a nie dwukropek. – Ari
- 1. Czy Can Doxygen można łatwo skonfigurować do rozpoznawania linii TODO i FIXME?
- 2. Jak sprawić, by IntelliJ wiedział FIXME?
- 3. Vim: Podświetl słowo TODO dla każdego rodzaju pliku.
- 4. VIM, wyszukiwanie przyrostowe: Jak mogę przejść do następnego wyniku i wyróżnić go?
- 5. Wyróżnianie obiektów TODO we wszystkich trybach programowania
- 6. Jak wyróżnić tekst w tekście w Swift?
- 7. jak wyróżnić cały <DIV></div> w Vim?
- 8. Jak wyróżnić przycisk po naciśnięciu?
- 9. Jak wyróżnić wybrany element w ListView?
- 10. Jak wyróżnić składnię w RichTextBox [C#]?
- 11. Jak umieścić komentarze TODO w języku xml?
- 12. Jak wyróżnić części listy odtwarzania?
- 13. Jak wyróżnić wybraną pozycję w ItemsControl?
- 14. Jak wyróżnić tylko tekst w UILabel - IOS
- 15. tagi Find TODO w Eclipse
- 16. Integracja Mylyn Eclipse TODO
- 17. jak wybrać wszystkie i skopiować w vim?
- 18. Jak naprawić Home i End w Vim?
- 19. Jak wyróżnić kilka wyborów? Na przykład
- 20. Jak wyróżnić błędy składni za pomocą ICSharpCode.TextEditor.TextEditorControl?
- 21. Jak wyróżnić zakresy czasu na działce?
- 22. jak wyróżnić kraje na mapach ios
- 23. Jak wyróżnić wiersz tabeli po kliknięciu?
- 24. Eclipse nie wyświetla zadań TODO
- 25. Jak korzystać mrówkę, by sprawdzić tagów (TODO: etc) w źródle java
- 26. Jak wyróżnić tekst w ciągu zawierającym emotikony w Swift?
- 27. Jak wyłączyć git push, gdy istnieją TODO w kodzie?
- 28. Vim errorformat i jslint
- 29. Uzyskiwanie znaczników Doxygen i MSVC TODO do wspólnej pracy
- 30. Jak wyróżnić słowa rozpoczynające się od @ w składni Vima?
To dziwne; uwydatnić minę z okrężnicą lub bez niej. To wyróżnianie składni jest zdefiniowane w poszczególnych składniach, jak sądzę - czy dzieje się to w jakimś konkretnym filecie? – Cascabel
@Jefromi: Myślę, że dzieje się to w każdym typie pliku. –
co znaczy ": verbose set iskeyword?" Tell? – Benoit