2009-06-16 2 views
2

Ich versuche, eine vim-Tastenzuordnung einzurichten, die den Schlüssel ";" zu einem; - d. h. ich möchte automatisch anhängen ";" bis zum Ende der Linie. Allerdings habe ich Schwierigkeiten, diese Zuordnung einzurichten. Ich möchte dies auch auf nur Java-Dateien beschränken, wenn möglich. Kann das gemacht werden?vim Mapping

Dank

Antwort

1

Die Zuordnung selbst wird so gemacht:

:map ; A;<esc> 

Ich würde diese Zeile in Ihrer .vimrc empfehlen setzen und mit ihr leben (es nicht stören sollte, da die Abbildung nur Werke im Befehlsmodus). Wenn Sie wirklich dieses Verhalten auf bestimmte Dateien beschränken müssen, müssen Sie in die autocmd Funktion suchen (:help autocmd)

0

Als schnelle Implementierung, was ist:

map ; $a;cntl-vESC 

dann wieder getroffen

I‘ Ich werde darüber nachdenken, dies nur für Java-Dateien zu aktivieren.

4

Wenn Sie diese Funktion auf Java-Puffer beschränken möchten, werfen Sie einen Blick auf ftplugins. Die Abbildung wird dann:

nnoremap <buffer> ; A;<esc> 

BTW, ich gegen Mapping auf ‚;‘ raten würde, da es ein sehr nützlicher Befehl ist, die in anderen schlecht definierten Zuordnungen verwendet werden können (zu viele vimmers :*map statt :*noremap verwenden) . diese Abbildung

+0

+1. Wichtige Punkte, die diese Antwort besser machen: das Mapping ist nur für den normalen Modus und die Verwendung von "nore" definiert. – user55400

+0

+1 zugestimmt (15chars15chars15chars) – soulmerge

+0

Willst du damit sagen, dass ':.? Map''ing on ''; '' bestehende eingebaute Befehle durcheinander bringen könnte? –

2

Verwenden ftplugins als Luc Hermitte sagte oder fügen Sie folgendes zu Ihrem .vimrc

autocmd filetype java :nnoremap <buffer> ; A;<esc> 
0

Setzen Sie diese in ~/.vim/nach/ftplugin/java.vim

nnoremap <buffer> ; A;<Esc>

Jetzt sollte lokal nur für Java-Puffer sein