Add mutton chops to vim. Center a window on the screen by opening empty windows on either side. Also supports opening various sidebar plugins in place of the empty sidebars. Supports Tagbar, NERDTree, and Buffergator.
Opening a file in a full-screen window means that the text is aligned at the far left of the screen. I would rather see the text in the middle of the screen, especially if it is code hard-wrapped at 80 characters. This plugin is basically a macro to open blank scratch buffers on both sides of the screen to achieve this effect. It also plays nice with some popular sidebar plugins, so that these plugins will replace the blank scratch buffers as appropriate.
vim-plug: Plug gabenespoli/vim-mutton
MuttonToggle
: Enable mutton on both sides.
MuttonToggle('left')
or MuttonToggle('right')
: Enable mutton on only the
left or the right side.
MuttonToggle('tagbar')
: Open Tagbar
and replace the mutton window if one exists. Use g:tagbar_left
to control
which side it opens on.
MuttonToggle('nerdtree')
: Open
NERDTree and replace the mutton window
if one exists. Use g:NERDTreeWinPos
to control which side it opens on.
MuttonToggle('buffergator')
: Open
Buffergator and replace the
mutton window if one exists. Use g:buffergator_viewport_split_policy
to
control which side it opens on. It must be 'L'
or 'R'
to work with mutton.
Keymaps use the familiar window command key <C-w>
, followed by <C-e>
, which
is unused by vim. Think "window empty". The following maps are added by default.
Put let g:mutton_disable_keymaps = 1
in your vimrc to disable them.
nnoremap <silent> <C-w><C-e> :MuttonToggle()<CR>
nnoremap <silent> <C-w>eh :MuttonToggle('left')<CR>
nnoremap <silent> <C-w>el :MuttonToggle('right')<CR>
Keymaps for plugin toggles are not enabled by default. For example, I use the following in my vimrc:.
nnoremap <silent> <leader>t :MuttonToggle('tagbar')<CR>
nnoremap <silent> <leader>n :MuttonToggle('nerdtree')<CR>
nnoremap <silent> <leader>b :MuttonToggle('buffergator')<CR>
g:mutton_disable_keymaps
Set to 1 to disable the default keymaps.
g:mutton_min_center_width
Force the middle (non-sidebar) window to have a
minimum width. This setting is for the case where you are on a smaller screen
with a bigger font, and want to open sidebars but no let the center window width
go below 80 characters, for example. Include the width of the fold/sign/number
columns in this value. I use the following in my vimrc to ensure at least 80
characters of text by allowing an extra 8 characters for the gutter:
let g:mutton_min_center_width = 88