2013-02-27 6 views
5

Ich versuche, meine Leertaste zuzuordnen, damit der Vim aus dem normalen Modus in den Einfügemodus wechselt.Map-Space-Taste, um in den Einfügemodus zu wechseln

Der Grund, warum ich das tun möchte, ist, weil ich manchmal vergesse, dass ich im normalen Modus bin und zu tippen, als ob ich im Einfügemodus bin. Wenn ich die Leertaste zwischen oder sogar am Anfang der Seite drücke, bewegt sie sich nach unten und etwas oder die anderen Typen wegen der Möglichkeit, in das, was ich gerade eingegeben habe, a oder i zu drücken.

Um dies zu vermeiden, möchte ich meine Leertaste zuordnen, um den Modus aus dem normalen Modus einzufügen, wenn wir i drücken, um dies zu tun.

Ich habe versucht, die folgenden:

map space :i 
map <space> :i 

Aber diese scheint nicht zu funktionieren.

Antwort

8

Sie Mischen der Modi in Ihre Zuordnungen auf; Das ist ein wichtiges Konzept in Vim. Obwohl es ein :startinsert Befehl Ex in Vim (wo Ihre Zuordnung in der Tat mit einem : beginnen würde), dann ist es einfacher die normaler Modusi Befehl zu verwenden:

:nnoremap <Space> i 

Sie wollen nur ein normalen Modus Mapping hier , so :nmap, nicht :map; cp. :help map-modes. Und siehe :help key-notation für warum es geschrieben wird <Space>.

Schließlich: You should always use :noremap; es macht das Mapping immun gegen Neuabbildung und Rekursion.

6

seltsame Anforderung, aber, Sie haben Ihren Grund. :)

versuchen, diese Zeile aus:

nnoremap <space> i 
+0

Es ist seltsam, aber ['' 's" normale "' normale' Zuordnung (http://vimdoc.sourceforge.net/htmldoc/motion.html# ) ist genau das gleiche ein ['l' 's] (http://vimdoc.sourceforge.net/htmldoc/motion.html#l), also blockierst du zumindest keine Standardfunktionalität. Ich habe viel schlimmer gesehen :) – Johnsyweb

+0

@Kent: :) Danke. –

+0

@John: Danke :) Ich würde sicherlich darüber nachdenken, wenn Raum , wird jedes Problem erstellen. –

Verwandte Themen