bindings.vim 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135
  1. let mapleader = " "
  2. " move text buffer in visual mode
  3. vnoremap K :m '<-2<CR>gv=gv
  4. vnoremap J :m '>+1<CR>gv=gv
  5. " write and quit easier
  6. nnoremap <Leader>w :w<CR>
  7. nnoremap <Leader>z :wq<CR>
  8. nnoremap <Leader>q :qa<CR>
  9. " windows commands
  10. nnoremap <leader>h :wincmd h<CR>
  11. nnoremap <leader>j wincmd j<CR>
  12. nnoremap <leader>k wincmd k<CR>
  13. nnoremap <leader>l wincmd l<CR>
  14. nnoremap <leader>pv :wincmd v<bar> :Ex <bar> :vertical resize 30<CR>
  15. nnoremap <leader>ps :Rg<CR>
  16. nnoremap <silent> <leader>+ :vertical resize +5<CR>
  17. nnoremap <silent> <leader>- :vertical resize -5<CR>
  18. " general custom commands
  19. command D filetype detect
  20. " commands for opening and compiling various document types
  21. command S silent !vshow '%:p'
  22. command C !compile "%"
  23. " general compile button
  24. map <F3> :w<CR>:!compile "%"; pkill -HUP mupdf<CR>
  25. " bibtex extra compiler
  26. map <F2> :w<CR>:!latexmk -pdf "%"; pkill -HUP mupdf<CR>
  27. map <F4> :noh<CR>
  28. map <F5> :set spell!<CR>
  29. map <F6> :w<CR>:!glosscompile "%"; pkill -HUP mupdf<CR>
  30. " jumper
  31. vnoremap <Space><Space> <Esc>/<++><Enter>"_c4l
  32. map <Space><Space> <Esc>/<++><Enter>"_c4l
  33. " copy from / to clipboard
  34. vnoremap <C-c> "+y
  35. map <C-p> "+P
  36. " Use <c-space> to trigger completion.
  37. inoremap <silent><expr> <c-space> coc#refresh()
  38. " Use `[g` and `]g` to navigate diagnostics
  39. nmap <silent> [g <Plug>(coc-diagnostic-prev)
  40. nmap <silent> ]g <Plug>(coc-diagnostic-next)
  41. " Remap keys for gotos
  42. nmap <silent> gd <Plug>(coc-definition)
  43. nmap <silent> gy <Plug>(coc-type-definition)
  44. nmap <silent> gi <Plug>(coc-implementation)
  45. nmap <silent> gr <Plug>(coc-references)
  46. nmap <leader>rn <Plug>(coc-rename)
  47. vmap <leader>f <Plug>(coc-format-selected)
  48. " switch (back and forth) to (and from) the last opened file
  49. nmap <leader>b <c-^><cr>
  50. nmap <leader>f <Plug>(coc-format-selected)
  51. noremap <silent> <Leader>f :Fern . -drawer -reveal=% -toggle -width=35<CR><C-w>=
  52. function! FernInit() abort
  53. nmap <buffer><expr>
  54. \ <Plug>(fern-my-open-expand-collapse)
  55. \ fern#smart#leaf(
  56. \ "\<Plug>(fern-action-open:select)",
  57. \ "\<Plug>(fern-action-expand:stay)",
  58. \ "\<Plug>(fern-action-collapse)",
  59. \ )
  60. nmap <buffer> <CR> <Plug>(fern-my-open-expand-collapse)
  61. nmap <buffer> <2-LeftMouse> <Plug>(fern-my-open-expand-collapse)
  62. nmap <buffer> n <Plug>(fern-action-new-path)
  63. nmap <buffer> d <Plug>(fern-action-remove)
  64. nmap <buffer> m <Plug>(fern-action-move)
  65. nmap <buffer> M <Plug>(fern-action-rename)
  66. nmap <buffer> c <Plug>(fern-action-hidden:toggle)
  67. nmap <buffer> r <Plug>(fern-action-reload)
  68. nmap <buffer> g <Plug>(fern-action-mark:toggle)
  69. nmap <buffer> o <Plug>(fern-action-open)
  70. nmap <buffer> b <Plug>(fern-action-open:split)
  71. nmap <buffer> v <Plug>(fern-action-open:vsplit)
  72. nmap <buffer> h <Plug>(fern-action-collapse)
  73. nmap <buffer> l <Plug>(fern-action-expand:stay)
  74. nmap <buffer><nowait> < <Plug>(fern-action-leave)
  75. nmap <buffer><nowait> > <Plug>(fern-action-enter)
  76. endfunction
  77. " use TAB to autocomplete w/ coc
  78. inoremap <silent><expr> <TAB>
  79. \ pumvisible() ? "\<C-n>" :
  80. \ <SID>check_back_space() ? "\<TAB>" :
  81. \ coc#refresh()
  82. inoremap <expr><S-TAB> pumvisible() ? "\<C-p>" : "\<C-h>"
  83. function! s:check_back_space() abort
  84. let col = col('.') - 1
  85. return !col || getline('.')[col - 1] =~# '\s'
  86. endfunction
  87. " Use `:Format` to format current buffer
  88. command! -nargs=0 Format :call CocAction('format')
  89. " Go to tab by number
  90. noremap <leader>1 1gt
  91. noremap <leader>2 2gt
  92. noremap <leader>3 3gt
  93. noremap <leader>4 4gt
  94. noremap <leader>5 5gt
  95. noremap <leader>6 6gt
  96. noremap <leader>7 7gt
  97. noremap <leader>8 8gt
  98. noremap <leader>9 9gt
  99. noremap <leader>0 :tablast<cr>
  100. " Applying codeAction to the selected region.
  101. " Example: `<leader>aap` for current paragraph
  102. xmap <leader>a <Plug>(coc-codeaction-selected)
  103. nmap <leader>a <Plug>(coc-codeaction-selected)
  104. " Remap keys for applying codeAction to the current buffer.
  105. nmap <leader>ac <Plug>(coc-codeaction)
  106. " Apply AutoFix to problem on the current line.
  107. nmap <leader>qf <Plug>(coc-fix-current)
  108. " Run the Code Lens action on the current line.
  109. nmap <leader>cl <Plug>(coc-codelens-action)