Add a vim function to toggle a 'simple' view of the current buffer
This commit is contained in:
parent
7e586d284d
commit
f0248008a6
54
vimrc
54
vimrc
|
@ -743,6 +743,7 @@ let g:tagbar_sort = 0
|
|||
"##################################################################################
|
||||
let g:gitgutter_enabled = 1
|
||||
let g:gitgutter_highlight_lines = 0
|
||||
|
||||
nnoremap <leader>hh :GitGutterToggle<cr>
|
||||
nmap <leader>ha <Plug>(GitGutterStageHunk)
|
||||
nmap [h <Plug>(GitGutterNextHunk)
|
||||
|
@ -1079,6 +1080,12 @@ let errormarker_errorgroup = "BuildError"
|
|||
let errormarker_warninggroup = "BuildWarn"
|
||||
let errormarker_infogroup = "BuildInfo"
|
||||
|
||||
" I don't know how to map to a plugin command, so I'm wrapping it with a function...ugh.
|
||||
function! ShowErrorAtCursor()
|
||||
" This is defined in errormarker.vim
|
||||
ErrorAtCursor
|
||||
endfunction
|
||||
nnoremap <leader>ce :call ShowErrorAtCursor()<cr>
|
||||
|
||||
"/////////////////////////////////////////////////
|
||||
" CUSTOM ERROR FORMATS
|
||||
|
@ -1405,20 +1412,59 @@ noremap <leader>n :call RenameFile()<cr>
|
|||
"##################################################################################
|
||||
|
||||
function! CenterPane()
|
||||
" centers the current pane as the middle 2 of 4 imaginary columns
|
||||
" should be called in a window with a single pane
|
||||
" Centers the current pane as the middle 2 of 4 imaginary columns should
|
||||
" be called in a window with a single pane.
|
||||
" Taken from https://dev.to/vinneycavallo/easily-center-content-in-vim
|
||||
lefta vnew
|
||||
wincmd w
|
||||
exec 'vertical resize' string(&columns * 0.65)
|
||||
endfunction
|
||||
nnoremap <leader>c :call CenterPane()<cr>
|
||||
|
||||
function! RemoveCenterPane()
|
||||
wincmd w
|
||||
close
|
||||
endfunction
|
||||
nnoremap <leader>cw :call RemoveCenterPane()<cr>
|
||||
|
||||
nnoremap <leader>cc :call CenterPane()<cr>
|
||||
nnoremap <leader>cd :call RemoveCenterPane()<cr>
|
||||
|
||||
|
||||
"##################################################################################
|
||||
" SIMPLE VIEW
|
||||
"##################################################################################
|
||||
|
||||
" Applies a clean view of the current buffer by turning off line
|
||||
" numbers, trailing spaces, tabs and git diff markers in the gutter.
|
||||
|
||||
function! ToggleSimpleView()
|
||||
" I wasn't able to get this to apply to every copy of the same buffer,
|
||||
" e.g. you have a split view showing the same file; only the active one
|
||||
" will be affected, but they will share the same state! I tried many
|
||||
" different approaches (bufdo, looping over windows and buffers) and
|
||||
" nothing worked. I looked at the gitgutter plugin since it supports
|
||||
" toggling a buffer and it correctly modifies all instances, but the code
|
||||
" is complex and there's so much just to do a simple thing. Fuck it. It's
|
||||
" not worth the hassle and the inevitable hair pulling that I always
|
||||
" experience when trying to do non-trivial things with this garbage
|
||||
" scripting language.
|
||||
if ! exists("b:simple_view_enabled")
|
||||
let b:simple_view_enabled = 0
|
||||
endif
|
||||
|
||||
if b:simple_view_enabled == 0
|
||||
let b:simple_view_enabled = 1
|
||||
setlocal nonumber
|
||||
setlocal nolist
|
||||
exec 'GitGutterBufferDisable'
|
||||
else
|
||||
let b:simple_view_enabled = 0
|
||||
setlocal number
|
||||
setlocal list
|
||||
exec 'GitGutterBufferEnable'
|
||||
endif
|
||||
endfunction
|
||||
|
||||
nnoremap <leader>c :call ToggleSimpleView()<cr>
|
||||
|
||||
"-----------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user