2011-01-07 7 views
0

Mit dem deutschen Mac Keyboard Layout ist es ein Problem | zu schreiben, da es an <A-7> gebunden ist und es schwer für mich ist, die Alt Taste zu erreichen.Vim: Wie man Tastenbindungen austauschen? (Bind '|' auf '7' Taste)

So würde Ich mag die folgende Neuzuordnung tun (die Bindung für | und 7 Austausch):

imap 7 <Bar> 
imap <A-7> 7 

Das erste Werk, das zweite nicht. Ich habe bereits alle Kombinationen mit inor (keine Neuzuordnung) versucht, war aber nicht erfolgreich.

Vielleicht bekomme ich nicht das Konzept der Neuzuordnung. Oder ich vermisse etwas anderes.

+0

Übrigens. Die Formatierungshilfe sagt mir nicht, wie ich dieses Schlüsselformat verwenden soll, so dass "7" mehr wie ein grafischer Schlüssel aussieht ... wie [7] aussieht. – crispy

+1

7 in einer Box umschließen verwenden . Übrigens, wo war die Stange an '' gebunden? Wenn es sich um eine Systemverknüpfung/Tastaturoption handelt, verwenden Sie einfach 'inoremap 7 | Inoremap 7'. – ZyX

Antwort

2

Nach meiner Erfahrung funktionieren einige Neuzuordnungen mit Modifikatoren in MacVim einfach nicht. Die zwei Problemumgehungen, die ich verwende, sind:

  1. Versuchen Sie einen anderen Änderungsschlüssel, z. oder

  2. Verwenden Keyboard Maestro (ein ausgezeichnetes Key Mapper für Mac OS X) zu denken die Neuzuordnung

+0

Danke! Keyboard Maestro scheint der beste Weg zu sein, um dieses inkonsistente und unergonomische Mac-Tastaturlayout (Chaos) zu heilen. – crispy

2

ich die Antwort, die Sie suchen ist:

inoremap 7 <bar> 
inoremap <bar> 7 

ich benutze ähnliche Bindungen mein Semikolon und Doppelpunkt Nutzung zu tauschen (außer Mine nicht für Insert-Modus ist):

nnoremap ; : 
nnoremap : ; 

xnoremap ; : 
xnoremap : ; 

AKTUALISIER ted nach Rory O'Kanes Vorschlag in Kommentaren (Danke!).

+0

Das funktioniert! Vielen Dank! Ich werde jedoch Keyboard Maestro verwenden. – crispy

+1

Ihre zwei 'noremap'-Bindungen sollten aufgeteilt werden, um' nnoremap' und 'xnoremap' zu verwenden, so dass sie nur im normalen und visuellen Modus gelten. Mit 'noremap' werden Ihre Zuordnungen auch in [Bedienerwartender Modus] (http://vimdoc.sourceforge.net/htmldoc/intro.html#Operator-wending-mode) und [Auswahlmodus] (http: // vimdoc. sourceforge.net/htmldoc/visual.html#Select-mode), wodurch Operationen wie 'd;' und die Eingabe eines der Zeichen im Select-Modus unterbrochen werden. Siehe [': help: map-modes'] (http://vimdoc.sourceforge.net/htmldoc/map.html#:map-modes). –

+0

Toller Fang Rory, danke für den Hinweis! Wird meinen Post (und .vimrc) aktualisieren. –