2011-01-16 2 views
2

Ich benutze Vim 7.3 auf FreeBSD. Ich verbinde mich über Putty mit dieser Maschine. Wenn ich an Vim arbeite, kann ich den Schlüssel F10 nicht umwandeln, um etwas zu tun, was ich will. In meinem .vimrc, habe ich folgendes:Vim Remap F10 Schlüssel

nmap <F10> :!ls<CR> 

Dann habe ich, "source $ MYVIMRC", um die Änderungen in .vimrc zu laden. Wenn ich danach F10 drücke, druckt es^[[21 ~ anstelle der Ausführung der Karte. Ich habe versucht, alle Kombination von noremap aber nichts funktioniert.

Eine Neuzuordnung zu anderen Funktionstasten ist keine Option, da sie für andere Zwecke zugeordnet sind.

Nur zur Info, in Putty Konfigurationsoptionen, unter Terminal-> Tastatur habe ich die Option "Funktionstasten und Tastatur" auf "Linux" eingestellt.

Irgendwelche Vorschläge, um dies zu arbeiten?

Antwort

3

Es klingt wie Ihre termcap/terminfo und/oder der Wert von $TERM, die Sie verwenden, verhindern, dass Vim die Zeichenfolge erkennt, die Ihr Terminal für F10 als F10 sendet.

Der einfache Workaround ist die Zuordnung der Zeichenfolge. In Ihrem .vimrc, geben Sie Folgendes:

nmap <CTRL-V><F10> :!ls<CR> 

Wo <CTRL-V><F10> wird durch Drücken von Strg-V von F10 gefolgt. Dies führt dazu, dass in Ihrem Puffer etwa ^[[21~ erscheint. Das ist in Ordnung, dieses Mapping sollte funktionieren (zumindest mit diesem Terminal).

Die "richtige" Lösung wäre, den Wert $TERM, Ihre termcap oder terminfo-Datenbank so zu ändern, dass Vim weiß, dass ^[[21~ F10 ist. Die Einstellung $TERM auf xterm funktioniert möglicherweise.

+0

Das Festlegen der '$ TERM' in' xterm' funktioniert wie ein Zauber. Danke Laurence. –