mirror of
https://github.com/jbowdre/dotfiles.git
synced 2024-11-25 18:42:19 +00:00
25 lines
864 B
VimL
25 lines
864 B
VimL
|
" Tmux integration to switch panes with Ctrl+{hjkl}
|
||
|
if exists('$TMUX')
|
||
|
function! TmuxOrSplitSwitch(wincmd, tmuxdir)
|
||
|
let previous_winnr = winnr()
|
||
|
silent! execute "wincmd " . a:wincmd
|
||
|
if previous_winnr == winnr()
|
||
|
call system("tmux select-pane -" . a:tmuxdir)
|
||
|
redraw!
|
||
|
endif
|
||
|
endfunction
|
||
|
|
||
|
let previous_title = substitute(system("tmux display-message -p '#{pane_title}'"), '\n', '', '')
|
||
|
let &t_ti = "\<Esc>2;vim\<Esc>\\" . &t_ti
|
||
|
let &t_te = "\<Esc>2;". previous_title . "\<Esc>\\" . &t_te
|
||
|
|
||
|
nnoremap <silent> <C-h> :call TmuxOrSplitSwitch('h', 'L')<cr>
|
||
|
nnoremap <silent> <C-j> :call TmuxOrSplitSwitch('j', 'D')<cr>
|
||
|
nnoremap <silent> <C-k> :call TmuxOrSplitSwitch('k', 'U')<cr>
|
||
|
nnoremap <silent> <C-l> :call TmuxOrSplitSwitch('l', 'R')<cr>
|
||
|
else
|
||
|
map <C-h> <C-w>h
|
||
|
map <C-j> <C-w>j
|
||
|
map <C-k> <C-w>k
|
||
|
map <C-l> <C-w>l
|
||
|
endif
|