Kiedy piszę tekst w języku niemieckim zawierający coś takiego jak abücd
na przykład i na dw
początku, spowoduje to jedynie usunięcie, ab
ponieważ nie interpretuje on ü
jako znaku słowa.
Kiedy edytuję reStructuredText, mam
iskeyword=38,42,43,45,47-58,60-62,64-90,97-122,_
To wyjaśnia, dlaczego umlauty nie są oznaczone, ale nie rozumiem, skąd to się bierze. Kiedy otwieram gVim, jest to ustawione na
iskeyword=@,48-57,_,192-255
Skąd to może pochodzić?
set encoding=utf-8
swoje.vimrc
..vim/vimrc
i:set enc?
daje miutf-8
. To samo zfenc
. Nadal nie działa.:set iskeyword&
jestü
nadal nie rozpoznawany jako część wyrazu?set iskeyword
). Powinno to być coś w stylu"@,48-57,_,128-167,224-235"
lub"@,48-57,_,192-255"
. Czy używasz Vima lub Vi? (domyślna wartość w Vi ("@,48-57,_"
) nie rozpoznaje ü; domyślna wartość w Vimie jest w porządku)iskeyword=@,48-57,_,192-255
. Magicznie działa teraz w nowej instancji Vima. To dziwne, muszę to uważniej obserwować.Odpowiedzi:
@
Postaciąiskeyword
obejmuje wszystkie znaki, dla którychisalpha()
(funkcja C) jest prawdą; w nowoczesnych (ostatnich 20 latach) implementacjach libc szuka to także znaków Unicode.Twoje drugie
iskeyword
użycie97-122
(az) i64-90
(AZ), które nie obejmuje wszystkich wariantów z różnymi znakami diakrytycznymi (takimi jak umlaut / diaeresis / trema).Więc rozwiązaniem jest zastąpienie
97-122
i64-90
z@
.Ten funky
iskeyword
pochodzi z pliku składni LISP;rst
plik składnia zawiera kilka innych plików składni dla podkreślając bloki kodu.Na szczęście możesz ustawić, które języki mają być uwzględnione w
g:rst_syntax_code_list
zmiennej. Domyślnie jest to:Ponieważ jest mało prawdopodobne, że potrzebujesz podświetlania składni LISP w pliku reStructuredText, prawdopodobnie możesz go po prostu usunąć. Po prostu dodaj go w dowolnym miejscu pliku vimrc, jeśli jest zdefiniowany, plik składniowy użyje tej wartości zamiast zdefiniować własną wartość.
Moim zdaniem prawdopodobnie chcesz użyć:
Bo kto wie, jakie fajne efekty uboczne powodują inne pliki składniowe ...
źródło
@
Bardzo pomocna była wskazówka dotycząca znaków alfanumerycznych.Jeśli wstawimy gramatykę z innych języków na przykład w plikach Markdown, wówczas ustawienia tych języków wydają się zastępować ustawienia składni Markdown. Można to sprawdzić za pomocą:
Aby to naprawić, można zdefiniować automatyczne polecenie, które będzie uruchamiane przy każdym wejściu do pliku przeceny (i prawdopodobnie także w innych językach):
Umieszczenie tego w moim
.vimrc
rozwiązało problem dla mnie. I był przy użyciuvim-pandoc
składni i inlined Języki tymracket
,python
,sh
a niektóre. Myślę, że nie trzeba definiować automatycznego polecenia do opuszczania plików przeceny, ponieważ kiedy wprowadzasz pliki innych języków, ich pliki składniowe powinny ustawiać słowa kluczowe, jeśli dobrze rozumiem.źródło