私の中に次の行があります.vimrc
:
nnoremap <tab> :wincmd w<cr>
nnoremap <s-tab> :wincmd W<cr>
通常モードで Vim ウィンドウ間をすばやく移動したい。上記のマッピングはウィンドウ間で問題なく機能しますが、MiniBufExplorer に到達するとスタックし、最初のウィンドウに回転しません。
MiniBufExplorer に移動しないように、これをどのようにマッピングすればよいですか?
私の中に次の行があります.vimrc
:
nnoremap <tab> :wincmd w<cr>
nnoremap <s-tab> :wincmd W<cr>
通常モードで Vim ウィンドウ間をすばやく移動したい。上記のマッピングはウィンドウ間で問題なく機能しますが、MiniBufExplorer に到達するとスタックし、最初のウィンドウに回転しません。
MiniBufExplorer に移動しないように、これをどのようにマッピングすればよいですか?
minibufexpl.vim プラグインには、MiniBufExplorer ウィンドウに表示されるバッファー名を循環するように Tab を再マップする 2 行があります。これらを削除/コメントすると、タブの再マッピングが機能します。
nnoremap <buffer> <TAB> :call search('\[[0-9]*:[^\]]*\]')<CR>:<BS>
nnoremap <buffer> <S-TAB> :call search('\[[0-9]*:[^\]]*\]','b')<CR>:<BS>
さらに、ウィンドウまたはバッファを切り替えるための C-Tab 機能をすでに制御しているグローバル設定が以下にあります。これらを変更するか、少なくともこの機能に注意してください。注意: 上記のタブ マッピングを削除して、(C-Tab ではなく) タブ ベースの移動を取得する必要があります。
if !exists('g:miniBufExplMapCTabSwitchBufs')
let g:miniBufExplMapCTabSwitchBufs = 0
endif
" Notice: that if CTabSwitchBufs is turned on then
" we turn off CTabSwitchWindows.
if g:miniBufExplMapCTabSwitchBufs == 1 || !exists('g:miniBufExplMapCTabSwitchWindows')
let g:miniBufExplMapCTabSwitchWindows = 1
endif
" If we have enabled <C-TAB> and <C-S-TAB> to switch buffers
" in the current window then perform the remapping
"
if g:miniBufExplMapCTabSwitchBufs
noremap <C-TAB> :call <SID>CycleBuffer(1)<CR>:<BS>
noremap <C-S-TAB> :call <SID>CycleBuffer(0)<CR>:<BS>
endif
" If we have enabled <C-TAB> and <C-S-TAB> to switch windows
" then perform the remapping
"
if g:miniBufExplMapCTabSwitchWindows
noremap <TAB> <C-W>w
noremap <S-TAB> <C-W>W
endif
ご要望どおりではありませんが、これらはウィンドウ間を移動するための便利なキーボード ショートカットです。
map <c-j> <c-w>j
map <c-k> <c-w>k
map <c-h> <c-w>h
map <c-l> <c-w>l
これによりCtrl + <direction>
、ウィンドウ間 (開いている場合は MiniBufExpl を含む) を移動できます。Tab はおそらくコード補完用に予約されているほうがよいでしょう。 SuperTab プラグインをチェックしてください。