Bölmeleri ele almak için oldukça uygun olan alt-mod eklentisini kullanıyorum : Yeni anahtar bağları tanımladığınız yeni bir mod (normal modda, "mod", görsel mod, ekleme modu vb. .
Bununla birlikte Ctrl+wartık kullanmak zorunda değilsiniz ve yeni bir moddayken tüm tuşların bağlanması ücretsizdir: "Lanet olsun" gibi bir sorun yok. "
Eklentiyi herhangi bir normal eklenti yöneticisi ile yükleyebilirsiniz ve işte size ilham vermek için yapılandırmalarımdan bazıları:
Aradığımda WindowsMode
bölmelerimi değiştirdiğim yeni bir mod yarattım :
call submode#enter_with('WindowsMode', 'n', '', '<Leader>k', ':echo "windows mode"<CR>')
call submode#leave_with('WindowsMode', 'n', '', '<Leader>')
Birlikte modunda girmek olduğunu Bu satırlar araçları Leaderkve I modundan çıkmak Leaderı vurmak sonra: LeaderkI will vurmak tüm anahtarları:
- Bu modda onlar için bir harita tanımlamazsam hiçbir şey yapmayın
- Bu modda onları haritalandırmaya karar verdim (cevabın geri kalanına bakınız).
- Vurursam normal moda dön Leader
WindowsMode
Bu çizgilere girdiğimde hjklbölmeler arasında gezinti yap.Ctrl+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')
Bu satırları pencereleri /ve ile bölmek için kullandım !:
" split windows with / and !
call submode#map('WindowsMode', 'n', '', '/', '<C-w>s')
call submode#map('WindowsMode', 'n', '', '!', '<C-w>v')
Ve qbir bölmeyi kapat:
call submode#map('WindowsMode', 'n', '', 'q', '<C-w>c')
Bölmeleri 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')
Vim-submode bir çok güçlü şey yapmanıza izin verir, daha fazla ayrıntı için doktora bakınız.
EDIT Pencere alt-modunun bir başka yaklaşımı burada tarif edilmiştir . Yazar tarafından kullanılan yöntemin soruyu cevaplamak için daha da yakın olduğunu düşünüyorum: İşte yeni bir mod oluşturmak için kullanılır, ancak tüm <c-w>something
eşlemeler alt modda aynı tuşlarla kullanılabilir:
" 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
Bu şekilde tüm eşleştirmeleri <c-w>lowerCaseKey
, <c-w>upperCaseKey
, <c-w><c-Key>
ve eşleştirmeleri <c-w>=_+-<>
öneki olmadan tüm pencere modunda erişilebilir<c-w>
wincmd
Örneğin eşleştirebilirsiniz ::nmap wj :wincmd j<cr>
bu,CTRL-W j
(aşağıdaki pencereye taşı) ile aynı şekilde hareket eder.:help wincmd