Um mit Splits umzugehen, benutze ich das Submode-Plugin, das eigentlich ziemlich praktisch ist: Es erlaubt Ihnen, einen neuen Modus ("Modus" wie im normalen Modus, im visuellen Modus, im Einfügemodus usw.) zu erstellen, in dem Sie neue Tastenkombinationen definieren .
Damit musst du nicht mehr benutzen Ctrl+wund da du dich in einem neuen Modus befindest, sind alle Tasten frei zum Binden: keine Probleme mehr wie "Verdammt, ich kann keine Tastenkombination finden, die als Bedeutung dient und noch nicht zugeordnet ist "
Sie können das Plugin mit jedem normalen Plugin-Manager installieren. Hier sind einige meiner Konfigurationen, die Sie inspirieren sollen:
Ich habe einen neuen Modus erstellt, WindowsMode
in dem ich meine Splits manipuliere:
call submode#enter_with('WindowsMode', 'n', '', '<Leader>k', ':echo "windows mode"<CR>')
call submode#leave_with('WindowsMode', 'n', '', '<Leader>')
Diese Zeilen bedeuten, dass ich mit in den Modus eintrete Leaderkund mit den Modus verlasse Leader: Nachdem ich Leaderkalle Tasten gedrückt habe, tippe ich auf:
- Tun Sie nichts, wenn ich in diesem Modus kein Mapping für sie definiert habe
- Mach, was ich beschlossen habe, um sie in diesem Modus abzubilden (siehe den Rest der Antwort)
- Gehen Sie zurück in den normalen Modus, wenn ich drücke Leader
Sobald ich in WindowsMode
diesen Zeilen bin , hjklnavigiere ich gerne durch die SplitsCtrl+whjkl
" Change of windows with hjkl
call submode#map('WindowsMode', 'n', '', 'j', '<C-w>j')
call submode#map('WindowsMode', 'n', '', 'k', '<C-w>k')
call submode#map('WindowsMode', 'n', '', 'h', '<C-w>h')
call submode#map('WindowsMode', 'n', '', 'l', '<C-w>l')
Ich habe diese Zeilen benutzt, um die Fenster mit /und zu teilen !:
" split windows with / and !
call submode#map('WindowsMode', 'n', '', '/', '<C-w>s')
call submode#map('WindowsMode', 'n', '', '!', '<C-w>v')
Und qschließen Sie eine Trennung:
call submode#map('WindowsMode', 'n', '', 'q', '<C-w>c')
Verschieben Sie die Splits mit Ctrlhjkl:
call submode#map('WindowsMode', 'n', '', '<C-j>', '<C-w>J')
call submode#map('WindowsMode', 'n', '', '<C-k>', '<C-w>K')
call submode#map('WindowsMode', 'n', '', '<C-h>', '<C-w>H')
call submode#map('WindowsMode', 'n', '', '<C-l>', '<C-w>L')
Der Vim-Sub-Modus ermöglicht viele leistungsstarke Funktionen. Weitere Informationen finden Sie im Dokument .
EDIT Ein weiterer Ansatz des Window submode beschrieben hier . Ich denke, die vom Autor verwendete Methode ist noch näher, um die Frage zu beantworten: Hier wird ein neuer Modus erstellt, aber alle <c-w>something
Zuordnungen sind mit denselben Schlüsseln im Untermodus verfügbar:
" Go through every letter
for key in ['a','b','c','d','e','f','g','h','i','j','k','l','m',
\ 'n','o','p','q','r','s','t','u','v','w','x','y','z']
" maps lowercase, uppercase and <C-key>
call submode#map('window', 'n', '', key, '<C-w>' . key)
call submode#map('window', 'n', '', toupper(key), '<C-w>' . toupper(key))
call submode#map('window', 'n', '', '<C-' . key . '>', '<C-w>' . '<C-'.key . '>')
endfor
" Go through symbols. Sadly, '|', not supported in submode plugin.
for key in ['=','_','+','-','<','>']
call submode#map('window', 'n', '', key, '<C-w>' . key)
endfor
Auf diese Weise alle Zuordnungen <c-w>lowerCaseKey
, <c-w>upperCaseKey
, <c-w><c-Key>
und die Zuordnungen <c-w>=_+-<>
sind alle mit im Fenstermodus ohne das Präfix<c-w>
wincmd
für Sie können zum Beispiel zuordnen::nmap wj :wincmd j<cr>
Es verhält sich wieCTRL-W j
(in das Fenster unten verschieben).:help wincmd