mirror of
https://github.com/neovim/neovim.git
synced 2024-12-24 13:15:09 -07:00
2c160f39d3
Problem: It's a common practice to set 'signcolumn=yes' (always show) instead of default 'signcolumn=auto' in order to prevent annoying horizontal shifting in editable buffers when using some popular plugins that add/remove signs on the fly. This makes signcolumn always visible and breaks the text flow of pre-formatted man pages, even when no signs are actually defined. Some other options are already tweaked in man.vim to address the issue (e.g. 'nonumber'), but not signcolumn. Solution: set 'signcolumn=auto' in ftplugin/man.vim. By default there is no |signs| in man pages anyway (and I am not aware of any plugins that could define them in man pages), so 'signcolumn=auto' should behave like 'signcolumn=no', i.e. hide the empty column in order to keep buffer width same as terminal width. In a (rare?) case when user does define some signs in man pages, signcolumn will appear (breaking the text flow).
46 lines
1.4 KiB
VimL
46 lines
1.4 KiB
VimL
" Maintainer: Anmol Sethi <hi@nhooyr.io>
|
|
" Previous Maintainer: SungHyun Nam <goweol@gmail.com>
|
|
|
|
if exists('b:did_ftplugin') || &filetype !=# 'man'
|
|
finish
|
|
endif
|
|
let b:did_ftplugin = 1
|
|
|
|
setlocal noexpandtab tabstop=8 softtabstop=8 shiftwidth=8
|
|
setlocal wrap breakindent linebreak
|
|
setlocal colorcolumn=0 nolist
|
|
|
|
" Parentheses and '-' for references like `git-ls-files(1)`; '@' for systemd
|
|
" pages; ':' for Perl and C++ pages. Here, I intentionally omit the locale
|
|
" specific characters matched by `@`.
|
|
setlocal iskeyword=@-@,:,a-z,A-Z,48-57,_,.,-,(,)
|
|
|
|
" man page content is likely preformatted for the terminal width, so
|
|
" narrowing display by any additional columns leads to Embarrassing Line Wrap
|
|
setlocal nonumber norelativenumber foldcolumn=0 signcolumn=auto
|
|
|
|
setlocal tagfunc=v:lua.require'man'.goto_tag
|
|
|
|
if !exists('g:no_plugin_maps') && !exists('g:no_man_maps')
|
|
nnoremap <silent> <buffer> j gj
|
|
nnoremap <silent> <buffer> k gk
|
|
nnoremap <silent> <buffer> gO :lua require'man'.show_toc()<CR>
|
|
nnoremap <silent> <buffer> <2-LeftMouse> :Man<CR>
|
|
if get(g:, 'pager')
|
|
nnoremap <silent> <buffer> <nowait> q :lclose<CR><C-W>q
|
|
else
|
|
nnoremap <silent> <buffer> <nowait> q :lclose<CR><C-W>c
|
|
endif
|
|
endif
|
|
|
|
if get(g:, 'ft_man_folding_enable', 0)
|
|
setlocal foldenable
|
|
setlocal foldmethod=indent
|
|
setlocal foldnestmax=1
|
|
else
|
|
setlocal nofoldenable
|
|
endif
|
|
|
|
let b:undo_ftplugin = ''
|
|
" vim: set sw=2:
|