Здатність перемикатися між панелями зламалася в tmux з vim


1

Отже, я запускаю vim всередині tmux і нещодавно (сьогодні фактично) я раптом не можу використовувати ctrl+hjkl щоб перемикатися між панелями в tmux і vim, замість цього він просто робить звук дзвінка і відмовляється перемикатися.

Якщо я вибираю панель tmux за допомогою миші, я можу переключитися назад, використовуючи панель vim ctrl+hjkl але знову не може повернутися назад, якщо я не використовую свою мишу (я знаю, я знаю).

Проблема виникає лише на панелі, у якій завантажено vim.

В моєму tmux.conf У мене є:

# smart pane switching with awareness of vim splits
bind -n C-h run "(tmux display-message -p '#{pane_current_command}' | grep -iq vim && tmux send-keys C-h) || tmux select-pane -L"
bind -n C-j run "(tmux display-message -p '#{pane_current_command}' | grep -iq vim && tmux send-keys C-j) || tmux select-pane -D"
bind -n C-k run "(tmux display-message -p '#{pane_current_command}' | grep -iq vim && tmux send-keys C-k) || tmux select-pane -U"
bind -n C-l run "(tmux display-message -p '#{pane_current_command}' | grep -iq vim && tmux send-keys C-l) || tmux select-pane -R"
bind -n C-\ run "(tmux display-message -p '#{pane_current_command}' | grep -iq vim && tmux send-keys 'C-\\') || tmux select-pane -l"

і в моїх налаштуваннях vim встановлено такі клавіатурні скорочення:

so ~/.vim/config/key_codes.vim

" Buffer switching
nnoremap <S-l> :bnext<CR>
nnoremap <S-h> :bprev<CR>

" \d delete buffer
nnoremap <S-x> :Kwbd<CR> 

"tagbar toggling
map <F8> :TagbarToggle<CR> 
map <F7> :NERDTreeToggle<CR>

" Increment numbers
nnoremap <A-a> <C-a>
nnoremap <A-x> <C-x>

nmap <C-W>! <Plug>Kwbd

nmap <C-p> :CommandT<CR>

map <Leader>c :call vroom#RunTestFile()<CR>
map <Leader>s :call vroom#RunNearestTest()<CR>
" \t to jump to test file
map <leader>t :A<CR>
" \t to jump to related file
map <leader>r :r<cr>
" \E to open file explorer in root
map <leader>E :Explore .<cr>
" \e to open file explorer in current dir
map <leader>e :Explore<cr>

"nerd tree mapings
" map <C-n> <plug>NERDTreeFocusToggle<CR>

" shift plus arrow for selection mode
" shift+arrow selection
map  <Del> <Esc>x1i
vmap  <Del> <Esc>x1v

"multi-cursor mappings"
let g:multi_cursor_next_key='<C-n>'
let g:multi_cursor_prev_key='<C-p>'
let g:multi_cursor_skip_key='<C-x>'
let g:multi_cursor_quit_key='<Esc>'

" Removing escape
ino jj <esc>
cno jj <c-c>
vno v <esc>

" Remove highlights with leader + enter
nmap <Leader><CR> :nohlsearch<cr>

" Ruby hash syntax conversion
nnoremap <F12> :%s/:\([^ ]*\)\(\s*\)=>/\1:/g<return>

" bind K to grep word under cursor
vmap K :grep! "\b<C-R><C-W>\b"<CR>:cw<CR>

key_codes.vim:

function Allmap(mapping)
  execute 'map' a:mapping
  execute 'map!' a:mapping
endfunction


call Allmap('   <ESC>[A         <Up>')
call Allmap('   <ESC>[B         <Down>')
call Allmap('   <ESC>[C         <Right>')
call Allmap('   <ESC>[D         <Left>')
call Allmap('   <ESC>[F         <End>')
call Allmap('   <ESC>[H         <Home>')
call Allmap('   <ESC>[5~        <PageUp>')
call Allmap('   <ESC>[6~        <PageDown>')
call Allmap('   <ESC>[k4~       <C-Left>')
call Allmap('   <ESC>[5D        <C-Left>')
call Allmap('   <ESC>Od         <C-Left>')
call Allmap('   <ESC>[k6~       <C-Right>')
call Allmap('   <ESC>[5C        <C-Right>')
call Allmap('   <ESC>Oc         <C-Right>')
call Allmap('   <ESC>[1;2       <S>')
call Allmap('   <ESC>[1;2A      <S-Up>')
call Allmap('   <ESC>[1;2B      <S-Down>')
call Allmap('   <ESC>[1;2C      <S-Right>')
call Allmap('   <ESC>[1;2D      <S-Left>')
call Allmap('   <ESC>[1;2d      <S-d>')
call Allmap('   <ESC>[1;2x      <S-x>')
call Allmap('   <ESC>[1;2s      <S-s>')
call Allmap('   <ESC>[3~        <Del>')
call Allmap('   <ESC>[1;2h       <S-h>')
call Allmap('   <ESC>[1;2l       <S-l>')

і тому що це може бути важливим моє dotfiles .

EDIT: Утримуючи клавішу Ctrl і натискаючи h змушує мій курсор переміщатися вліво і робити те ж саме, але з l змушує мій курсор мигати в Nerdtree, а потім негайно блимає назад до основного текстового буфера.

Те ж саме відбувається і з j і k крім того, він переміщує курсор вниз і відмовляється переходити вгору.

Відповіді:


0

Добре, так що за рекомендацією когось іншого я встановив плагін званий vim-tmux-навігатор так:

Bundle "tmux-plugins/vim-tmux"

і це вирішило мою проблему, в той час як я не радий, що мені довелося встановити плагін, щоб повернути функціональність, яку я мав до того, як він перестав працювати, принаймні, він працює зараз, на яскравому світлі, мені не довелося змінювати свій tmux-conf як те, що я вже мав, був достатньо хорошим.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.