Wenn ich einen deutschen Text schreibe, der so etwas wie abücd
zum Beispiel und ein dw
vorangestelltes enthält, wird nur das gelöscht, ab
da es nicht ü
als Wortzeichen interpretiert wird .
Wenn ich reStructuredText bearbeite, habe ich
iskeyword=38,42,43,45,47-58,60-62,64-90,97-122,_
Das erklärt, warum die Umlaute nicht markiert sind, aber ich verstehe nicht, woher das kommt. Wenn ich gerade gVim öffne, ist dies auf eingestellt
iskeyword=@,48-57,_,192-255
Woher könnte das kommen?
set encoding=utf-8
Ihre.vimrc
..vim/vimrc
und:set enc?
gibt mirutf-8
. Gleiches gilt fürfenc
. Trotzdem funktioniert es nicht.:set iskeyword&
wirdü
immer noch nicht als Teil eines Wortes erkannt?set iskeyword
). Es sollte so etwas wie"@,48-57,_,128-167,224-235"
oder sein"@,48-57,_,192-255"
. Verwenden Sie Vim oder Vi? (Der Standardwert in Vi ("@,48-57,_"
) erkennt ü nicht; der Standardwert in Vim ist in Ordnung)iskeyword=@,48-57,_,192-255
. Es funktioniert jetzt auf magische Weise in einer neuen Vim-Instanz. Das ist seltsam, das muss ich genauer beobachten.Antworten:
Das
@
Zeichen iniskeyword
enthält alle Zeichen, für dieisalpha()
(C-Funktion) TRUE ist. In modernen (letzten 20 Jahren) libc-Implementierungen wird auch nach Unicode-Zeichen gesucht.Ihre zweite
iskeyword
Verwendung97-122
(az) und64-90
(AZ), die nicht alle Varianten mit den verschiedenen Diakritika (wie Umlaut / Diaeresis / Trema) enthalten.Die Lösung ist also zu ersetzen
97-122
und64-90
mit@
.Dieser Funky
iskeyword
stammt aus der LISP-Syntaxdatei. Dierst
Syntaxdatei enthält eine Reihe anderer Syntaxdateien zum Hervorheben der Codeblöcke.Glücklicherweise können Sie festlegen, welche Sprachen in die
g:rst_syntax_code_list
Variable aufgenommen werden sollen. Der Standardwert ist:Da es unwahrscheinlich ist, dass in Ihrer reStructuredText-Datei eine Hervorhebung der LISP-Syntax erforderlich ist, können Sie diese wahrscheinlich einfach entfernen. Fügen Sie es einfach an einer beliebigen Stelle in Ihrer vimrc-Datei hinzu. Wenn es definiert ist, verwendet die Syntaxdatei diesen Wert, anstatt einen eigenen zu definieren.
Meiner Meinung nach möchten Sie wahrscheinlich verwenden:
Denn wer weiß, welche funky Nebenwirkungen die anderen Syntaxdateien verursachen ...
quelle
@
für alphanumerische Zeichen war wirklich hilfreich.Wenn man Grammatiken aus anderen Sprachen in beispielsweise Markdown-Dateien einfügt, scheinen die Einstellungen dieser Sprachen die Einstellungen für die Markdown-Syntax zu überschreiben. Ob dies der Fall ist, kann überprüft werden mit:
Um dies zu beheben, kann man einen automatischen Befehl definieren, der jedes Mal ausgeführt wird, wenn eine Markdown-Datei (und wahrscheinlich auch andere Sprachen) eingegeben wird:
Durch das Einfügen in mein
.vimrc
Problem wurde das Problem für mich behoben. Ich war mitvim-pandoc
Syntax und inlined Sprachen , darunterracket
,python
,sh
und einige. Ich denke, es ist nicht notwendig, einen automatischen Befehl zum Verlassen von Markdown-Dateien zu definieren, denn wenn Sie Dateien anderer Sprachen eingeben, sollten deren Syntaxdateien ihre Schlüsselwörter festlegen, wenn ich das richtig verstehe.quelle