Wie überschreibe ich den Befehl '='?


7

Ich kann vim nicht überzeugen, den Codierungsstil anzuwenden, den ich ( cindentund Freunde) möchte .

Die Integration clang-format.py(die das .clang-Format meines Projekts verwendet) macht mich jedoch total glücklich.

Nur dass ich den Reflex habe, den Befehl =+ motion zu verwenden . Was eigentlich sehr schön ist, eine Region oder die ganze Datei einzurücken.

Wie kann ich vim anweisen, die Standardfunktionalität zu überschreiben? Ich habe über Equalprg gelesen, bin mir aber nicht sicher, wie ich es einstellen soll, damit es mit dem Clang-Format funktioniert.


4
Wie wäre es Rhysd die Installation von vim-clang-formatPlugin zusammen mit ihren Anforderungen (vor allem vim-operator-user), und dann Karte =zu <Plug>(operator-clang-format)? Plugin-Link: github.com/rhysd/vim-clang-format
VanLaser

Vielen Dank @VanLaser Wissen Sie auch, wie es mit der Bewegung funktioniert: ==für eine Zeile und gg=Gfür den gesamten Puffer?
Patrick B.

@ VanLaser Entschuldigung für meine Zurückhaltung - ich habe einfach nicht geglaubt: Ihr Kommentar funktioniert wie erwartet. Machen Sie bitte eine Antwort.
Patrick B.

Antworten:


8

Wenn Sie nichts gegen eine Plugin-Installation haben, ist das vim-clang-Format von Rhysd möglicherweise eine gültige Lösung anstelle einer benutzerdefinierten equalprg.

Wie in der Dokumentation angegeben, können Sie mit der installierten vim-operator-user- Abhängigkeit von Kana eine Zuordnung =zu <Plug>(operator-clang-format)(um als vollständiger Operator zu fungieren) und diese mit Bewegungen / Textobjekten wie ==oder verwenden =G.

Sie sollten eine lokale Pufferzuordnung nur für C-, C ++ - und Objective-C-Dateitypen erstellen, damit die Standardeinstellungen =ansonsten unberührt bleiben:

autocmd FileType c,cpp,objc map <buffer> = <Plug>(operator-clang-format)
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.