Wie ich in den Kommentaren sagte, sind Zuordnungen in nicht dafür ausgelegt, das zu tun, was Sie tun möchten. Eine interessante Option für diesen Anwendungsfall ist langmap
.
Mit dieser Option können Sie das Verhalten oder die Tastatur im Einfügemodus belassen und das Verhalten in den anderen Modi ändern.
Um es zu verwenden, mit dem Vim kompiliert werden muss +langmap
, können Sie überprüfen, ob diese Option aktiviert ist echo has('langmap')
: Wenn der Befehl zurückgibt, ist 1
die Option aktiviert, andernfalls müssen Sie ein Setup mit dieser Option durchführen (um zu wissen, wie das geht, muss sie aktiviert sein) ist eine andere Frage).
Wenn diese Option aktiviert ist, set langmap += à@
können Sie bei Verwendung von Zeichenpaaren beispielsweise à
im Einfügemodus ein in den Puffer einfügen, und Sie geben ein ein à
, bei Eingabe à
im normalen Modus wird jedoch tatsächlich ein ausgelöst @
(dieses Beispiel kann bei Azerty hilfreich sein) Tastaturen, um die Arbeit mit Makros zu erleichtern).
Zur Nutzung langmap in der griechischen können Sie das Beispiel in bestimmten folgen dem :h 'langmap'
Hinzufügen dieser Zeile in vimrc
(Kopieren Sie diese Zeile von hier kann nicht eine gute Idee sein , da ich bin wirklich nicht sicher , ob die Codierung, die Zeile direkt aus der Hilfedatei zerren ist wahrscheinlich sicherer) :
:set langmap=ΑA,ΒB,ΨC,ΔD,ΕE,ΦF,ΓG,ΗH,ΙI,ΞJ,ΚK,ΛL,ΜM,ΝN,ΟO,ΠP,QQ,ΡR,ΣS,ΤT,ΘU,ΩV,WW,ΧX,ΥY,ΖZ,αa,βb,ψc,δd,εe,φf,γg,ηh,ιi,ξj,κk,λl,μm,νn,οo,πp,qq,ρr,σs,τt,θu,ωv,ςw,χx,υy,ζz
Nach dem, was ich in Ihren Kommentaren verstehe, bleibt es ein Problem, wenn Sie versuchen, vordefinierte Befehle zu verwenden: Wenn Sie einen Befehl eingeben, wird das Verhalten des Einfügemodus anstelle des von der Langmap definierten Verhaltens ausgelöst. Leider bin ich mir nicht sicher, ob ich dafür eine gute Lösung habe. Eine Idee könnte darin bestehen, Befehle wie folgt neu zu definieren:
command λς lw
Auf diese Weise λς
wird Vim ausgeführt lw
, wenn Sie den Befehl eingeben. Diese Methode weist jedoch einige Nachteile auf:
- Es kann sehr schmerzhaft sein, alle Befehle, die Sie verwenden möchten, neu zu definieren.
- Benutzerdefinierte Befehle müssen mit einem Großbuchstaben beginnen, und ich habe jetzt eine Vorstellung davon, wie bequem es ist, dies auf Griechisch zu tun.
Vielleicht könnte ein Plugin, das @Alexander Myshov in seiner Antwort auf diese Frage vorgeschlagen hat, nützlich sein (da ich keines davon ausprobiert habe, weiß ich nicht, ob sie das Problem lösen, aber es scheint, als ob sie es tun).
langmap
Option (siehe das Dokument, das ein Beispiel für das griechische Layout enthält). Diese Option wurde speziell für den Umgang mit nicht lateinischen Tastaturen wie Griechisch oder Kyrillisch entwickelt. Hier können Sie Symbolpaare definieren, die im Einfügemodus normal interpretiert, aber in anderen Modi ersetzt werden. Vielleicht hilft dies Ihnen.