2016-05-07 18 views
0

ich in meinem .vimrc haben die folgenden Zeilen, die mir + hjkl wechseln Fenster mit ctrl lässt:Vim: Mapping-Fenster zu wechseln und füllen Bildschirm

nnoremap <C-h> <C-W>h 
nnoremap <C-j> <C-W>j 
nnoremap <C-k> <C-W>k 
nnoremap <C-l> <C-W>l 

Dies sind für meinen Desktop-Computer in Ordnung, aber auf meinem Netbook möchte ich das aktive Fenster vollständig füllen den winzigen Bildschirm. Dies bedeutet, ctrl + w_ und ctrl + weingeben | nach jedem Fensterwechsel. Der logische Schritt wäre, um diese Tastenanschläge an das Mapping hinzufügen, wodurch man

nnoremap <C-h> <C-W>h<C-W>_<C-W>| 
nnoremap <C-j> <C-W>j<C-W>_<C-W>| 
nnoremap <C-k> <C-W>k<C-W>_<C-W>| 
nnoremap <C-l> <C-W>l<C-W>_<C-W>| 

Aber das fehlschlägt, konsequent, wenn sie in einer Mapping trotz arbeiten, wenn ich die erforderlichen Tasten geben Sie einfach; und (wie ich 'showcmd' eingestellt habe), scheint es eine nachlaufende <C-W> zu hinterlassen.

Ich habe auch versucht mit: wincmd:

nnoremap <C-h> :wincmd h<cr>:wincmd _<cr>:wincmd |<cr> 
nnoremap <C-j> :wincmd j<cr>:wincmd _<cr>:wincmd |<cr> 
nnoremap <C-k> :wincmd k<cr>:wincmd _<cr>:wincmd |<cr> 
nnoremap <C-l> :wincmd l<cr>:wincmd _<cr>:wincmd |<cr> 

Aber das beschwert sich über <cr> Hinter wenn mein vimrc bezogen ist, also werde ich zu, dass weiter ohne weitere Forschung nicht weiter verfolgen.

Irgendwelche Ideen?

+1

Es sieht so aus, als ob Sie überhaupt keine Fenster in Ihrem Netbook verwenden wollen, also warum? Verwenden Sie stattdessen Puffer. – romainl

Antwort

1

Verwenden Sie <Bar> anstelle von |. dh:

nnoremap <C-h> <C-W>h<C-W>_<C-W><Bar> 
nnoremap <C-j> <C-W>j<C-W>_<C-W><Bar> 
nnoremap <C-k> <C-W>k<C-W>_<C-W><Bar> 
nnoremap <C-l> <C-W>l<C-W>_<C-W><Bar> 
1

| werden verwendet, auf einer mehrfach Befehle Linie zu haben, und Sie werden mit einem Backslash, wenn buchstäblich verwendet werden müssen entkommen:

nnoremap <C-h> <C-W>h<C-W>_<C-W>\| 
nnoremap <C-j> <C-W>j<C-W>_<C-W>\| 
nnoremap <C-k> <C-W>k<C-W>_<C-W>\| 
nnoremap <C-l> <C-W>l<C-W>_<C-W>\| 

Auf der anderen Seite | kann nützlich sein:

nnoremap xxx :if 1 == 2 | echom "hello" | endif 
+0

Ich wusste das nicht über das '|'. Das löst eine andere Frage, die in Zukunft sicherlich auftauchen würde. –

+1

@ZoeyHewll Wie können Sie Befehle verketten? :-) – andlrc