Kann ich die Taste "<cmd>" überhaupt in Terminal Vim verwenden?

22

Im Anschluss an meine andere aktuelle Frage: Wie ordne ich <cmd> - <shift> -f zu, um das Ack-Plugin in Vim auszuführen?

Kann <cmd>ich den Schlüssel überhaupt in Vim verwenden?

Wenn Vim den Schlüssel nicht erkennt, ist es möglich, den Schlüssel außerhalb von Vim (irgendwie?) Einem anderen Element zuzuordnen und diesen Schlüssel in Vim zuzuordnen ?

Ich verwende iTerm 2 unter Lion mit Vim 7.3.

Vielen Dank!

jordelver
quelle

Antworten:

12

<D-> funktioniert nur in MacVim.

Eine schnelle Google-Suche gibt eine Reihe von Hacks und Lösungen von Drittanbietern zurück. Alle mir bekannten Lösungen funktionieren entweder systemweit oder sind anwendungsspezifisch: Wenn Sie nur Cmdin iTerm2 neu zuordnen, wie öffnen Sie dann ein neues Fenster oder eine neue Registerkarte? Mit… mit… der… MAUS?

Ich kann mir keinen guten Grund vorstellen, den CmdSchlüssel auf einem Mac neu zuzuordnen . Das wäre verrückt.

Vim ist nicht TextMate oder irgendein anderer Editor, den Sie zuvor verwendet haben. Es gibt keine Möglichkeit, all Ihre alten Gewohnheiten nahtlos zu übertragen.

Anstatt Ihre Zeit damit zu verschwenden, Vim und Ihr Terminal in etwas zu verwandeln, das es nicht ist und nicht sein kann, sollten Sie lernen, wie Sie Vim mit Bedacht einsetzen und anpassen. Alle Ihre Cmd+ Shift+ Ctrl+ AltCombos werden Sie nicht überall führen. Besonders in einem Terminal, wo Altes oft problematisch und Cmdunbrauchbar ist.

Erwägen Sie die Verwendung von <leader>( :help leader):

  • Es ist portabel auf jeder Plattform
  • Es ist weniger anfällig für Konflikte mit Ihrem Betriebssystem oder Terminalemulator
  • es eröffnet viele leicht zu merkende möglichkeiten
romainl
quelle
Haha, danke Grawity, es ist jetzt viel sauberer.
Romainl
Danke für die Antwort. Ich hatte von dem gehört <leader>, war mir aber nicht sicher, wie es verwendet werden sollte. Ich stimme Ihrem Standpunkt zur Portabilität zu. Dies ist einer der Gründe, warum ich zu Vim wechsele. Vielen Dank.
jordelver
Sie können in iTerm2 Cmdeine ControlNeuzuordnung vornehmen und dann im selben Fenster Verknüpfungen hinzufügen, um einen neuen Tab mit ^tusw. zu öffnen . Dann funktioniert alles!
Sean Clark Hess
5

Ich fand, dass iterm2 eine Option in den Tastatureinstellungen hat, um so etwas zu tun. Zum Beispiel habe ich die Befehlseingabe folgendermaßen abgebildet: wq

Bildbeschreibung hier eingebenBildbeschreibung hier eingeben

Neil McGill
quelle
Vielen Dank für diese Lösung. Das ist genau das, wonach ich gesucht habe. Ich weiß über <Leader> Bescheid, aber ich denke, dass einige Dinge wie das Speichern einer Datei universell sein sollten.
Dmitry Biletskyy
4

Für einfache Befehle gibt es eine Lösung, indem der entsprechende Hex-Code an das Terminal gesendet wird. Zum Beispiel wollte ich durch Drücken von in vim speichern cmd-s. I abgebildet cmd-sin iterm2 den Hex - Code zu senden , 0x13die den Code für ist ctrl-s, dann kartiert ich ctrl-szu :wqin vim.

jhickner
quelle
Wie genau machst du so etwas? Vielen Dank.
Nunos
Hat bei mir nicht geklappt der 0x13 hex code: / imgur.com/RjxOoLY
michalzuber 29.09.15
Informationen dazu finden Sie auf den folgenden Bildern - danke @jhickner für die Idee, sich iTerm2
Neil McGill,
3

Die 2016 - Lösung ist die Verwendung Karabiner Open-Source - Programm , das Sie Modifikator und andere Tasten mit neu zuordnen können sehr feine Granularität , zB

  • Ordnen Sie nur den linken ⌘ Cmd oder den OptionSchlüssel neu zu.
  • Ordnen Sie einen Schlüssel nur für bestimmte Anwendungen zu, z. B. nur innerhalb von Terminal, Emacs oder virtuellen Maschinen.

So ordnen Sie beispielsweise die linke ⌘ CmdTaste neu zu, um Ctrl nur innerhalb des Terminals zu agieren (und lassen die rechte Taste unberührt, sodass Sie sie weiterhin verwenden können, um z. B. ⌘ Cmd + Tabzwischen Apps zu wechseln):

Karabiner-Screenshot

dorserg
quelle
Genial. Jetzt kann ich das in Vim richtig benutzen, obwohl (links) Befehl + Tab nicht "Alt Tab" ist. Ich kann den richtigen Befehl verwenden, aber gibt es trotzdem einen, der das irgendwie beibehält?
Meder Omuraliev