Skip to content

Instantly share code, notes, and snippets.

@nuffin
Last active October 20, 2024 17:22
Show Gist options
  • Select an option

  • Save nuffin/c6d3f667fdd6205891a29858165d9203 to your computer and use it in GitHub Desktop.

Select an option

Save nuffin/c6d3f667fdd6205891a29858165d9203 to your computer and use it in GitHub Desktop.
key bindings for vim plugin "voldikss/vim-floaterm"
call plug#begin('~/.vim/plugged')
Plug 'voldikss/vim-floaterm'
nnoremap <silent> <C-T>c :FloatermNew<CR>
tnoremap <silent> <C-T>c <C-\><C-n>:FloatermNew<CR>
inoremap <silent> <C-T>c <Esc>:FloatermNew<CR>
nnoremap <silent> <C-T>p :FloatermPrev<CR>
tnoremap <silent> <C-T>p <C-\><C-n>:FloatermPrev<CR>
inoremap <silent> <C-T>p <Esc>:FloatermPrev<CR>
nnoremap <silent> <C-T><C-P> :FloatermPrev<CR>
tnoremap <silent> <C-T><C-P> <C-\><C-n>:FloatermPrev<CR>
inoremap <silent> <C-T><C-P> <Esc>:FloatermPrev<CR>
nnoremap <silent> <C-T>n :FloatermNext<CR>
tnoremap <silent> <C-T>n <C-\><C-n>:FloatermNext<CR>
inoremap <silent> <C-T>n <Esc>:FloatermNext<CR>
nnoremap <silent> <C-T><C-N> :FloatermNext<CR>
tnoremap <silent> <C-T><C-N> <C-\><C-n>:FloatermNext<CR>
inoremap <silent> <C-T><C-N> <Esc>:FloatermNext<CR>
nnoremap <silent> <C-T>t :FloatermToggle<CR>
tnoremap <silent> <C-T>t <C-\><C-n>:FloatermToggle<CR>
inoremap <silent> <C-T>t <Esc>:FloatermToggle<CR>
nnoremap <silent> <C-T><C-T> :FloatermToggle<CR>
tnoremap <silent> <C-T><C-T> <C-\><C-n>:FloatermToggle<CR>
inoremap <silent> <C-T><C-T> <Esc>:FloatermToggle<CR>
" with `q` instead of `k`: to avoid accidental triggering
" due to the similarity to ctrl-k in terminal
nnoremap <silent> <C-T>q :FloatermKill<CR>
tnoremap <silent> <C-T>q <C-\><C-n>:FloatermKill<CR>
inoremap <silent> <C-T>q <Esc>:FloatermKill<CR>
let preferred_width = 0.9
let preferred_height = 0.9
set termwinkey=<C-T>
let g:floaterm_autoclose = 1
" if has("autocmd")
" "autocmd TermClose * FloatermNext
" autocmd TermClose * FloatermPrev
" endif
let g:floaterm_width = preferred_width
let g:floaterm_height = preferred_height
nnoremap <C-T>r :AsyncRun -mode=term -pos=floaterm<Space>
tnoremap <C-T>r <C-\><C-n>:AsyncRun -mode=term -pos=floaterm<Space>
inoremap <C-T>r <Esc>:AsyncRun -mode=term -pos=floaterm<Space>
nnoremap <C-T><C-R> :AsyncRun -mode=term -pos=floaterm<Space>
tnoremap <C-T><C-R> <C-\><C-n>:AsyncRun -mode=term -pos=floaterm<Space>
inoremap <C-T><C-R> <Esc>:AsyncRun -mode=term -pos=floaterm<Space>
let g:floaterm_is_fullscreen = 0
function! ToggleFloatermFullScreen()
if g:floaterm_is_fullscreen == 0
let g:floaterm_width = 1.0
let g:floaterm_height = 1.0
let g:floaterm_is_fullscreen = 1
else
let g:floaterm_width = preferred_width
let g:floaterm_height = preferred_height
let g:floaterm_is_fullscreen = 0
endif
" If the terminal is already open, resize it immediately
if exists(':FloatermUpdate')
execute 'FloatermUpdate --width=' . g:floaterm_width . ' --height=' . g:floaterm_height
endif
endfunction
tnoremap <C-T>f <C-\><C-n>:call ToggleFloatermFullScreen()<CR>
tnoremap <C-T><C-F> <C-\><C-n>:call ToggleFloatermFullScreen()<CR>
call plug#end()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment