Перемещайтесь между окнами Vim с помощью <tab>и - PullRequest
2 голосов
/ 07 февраля 2012

У меня есть следующие строки в моем .vimrc:

nnoremap <tab> :wincmd w<cr>
nnoremap <s-tab> :wincmd W<cr>

Я хочу быстро переключаться между окнами Vim, используя обычный режим. Вышеуказанные отображения работают нормально между окнами, но когда я попадаю в MiniBufExplorer, он застревает и не поворачивается к первому окну.

Как мне отобразить это, чтобы оно не перемещалось в MiniBufExplorer?

Ответы [ 2 ]

3 голосов
/ 13 декабря 2012

В плагине minibufexpl.vim есть две строки, которые переназначают Tab для циклического перебора имен буферов, отображаемых в окне MiniBufExplorer.Если вы удалите / прокомментируете их, перераспределение вашей вкладки будет работать.

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
0 голосов
/ 07 февраля 2012

Не совсем то, что вы просили, но это полезные сочетания клавиш для перемещения между окнами.

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, когда он открыт).Вкладка, вероятно, лучше зарезервирована для завершения кода, посмотрите плагин SuperTab .

...