Ich habe Mappings in meinem definiert vimrc
, um beim Öffnen von Mappings mit Klammern und Klammern automatisch zu schließen inoremap ( ()<esc>i
.
Ich möchte dasselbe für "
und tun '
, aber nur, wenn sich der Cursor derzeit nicht in einer Zeichenfolge befindet - da sich in einer Zeichenfolge '
wahrscheinlich eher ein Apostroph als ein Zeichenfolgentrennzeichen befindet. Wie kann ich das machen?
Qtx
?Wie gesagt, müssen Sie den Syntax-Kontext überprüfen. Die alte lh-brackets- API bietet Funktionen für diesen Zweck:
Map*Context()
Funktionen . Seitdem wurden die Klammerdefinitionen gekapselt, in:Bracket
denen der Kontext (Zeichenfolgen oder Kommentare) berücksichtigt wird.Standardmäßig sind kontextsensitive Zuordnungen für alle gängigen Klammerpaare wie folgt definiert:
quelle