This commit is contained in:
Justin M. Keyes 2018-09-21 21:59:54 +02:00
commit 4fa3492a6f
2 changed files with 11 additions and 2 deletions

View File

@ -149,8 +149,9 @@ function! s:system(cmd, ...) abort
endfunction endfunction
function! s:get_page(path) abort function! s:get_page(path) abort
" Respect $MANWIDTH or default to window width. " Disable hard-wrap by setting $MANWIDTH to a high value.
let manwidth = empty($MANWIDTH) ? winwidth(0) : $MANWIDTH " Use soft wrap instead (ftplugin/man.vim sets 'wrap', 'breakindent').
let manwidth = 9999
" Force MANPAGER=cat to ensure Vim is not recursively invoked (by man-db). " Force MANPAGER=cat to ensure Vim is not recursively invoked (by man-db).
" http://comments.gmane.org/gmane.editors.vim.devel/29085 " http://comments.gmane.org/gmane.editors.vim.devel/29085
" Set MAN_KEEP_FORMATTING so Debian man doesn't discard backspaces. " Set MAN_KEEP_FORMATTING so Debian man doesn't discard backspaces.
@ -166,6 +167,10 @@ function! s:put_page(page) abort
while getline(1) =~# '^\s*$' while getline(1) =~# '^\s*$'
silent keepjumps 1delete _ silent keepjumps 1delete _
endwhile endwhile
" XXX: nroff justifies text by filling it with whitespace. That interacts
" badly with our use of $MANWIDTH=9999. Hack around this by using a fixed
" size for those whitespace regions.
silent! keeppatterns keepjumps %s/\s\{999,}/\=repeat(' ', 10)/g
lua require("man").highlight_man_page() lua require("man").highlight_man_page()
setlocal filetype=man setlocal filetype=man
endfunction endfunction

View File

@ -22,6 +22,8 @@ setlocal noexpandtab
setlocal tabstop=8 setlocal tabstop=8
setlocal softtabstop=8 setlocal softtabstop=8
setlocal shiftwidth=8 setlocal shiftwidth=8
setlocal wrap
setlocal breakindent
setlocal nonumber setlocal nonumber
setlocal norelativenumber setlocal norelativenumber
@ -31,6 +33,8 @@ setlocal nolist
setlocal nofoldenable setlocal nofoldenable
if !exists('g:no_plugin_maps') && !exists('g:no_man_maps') 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 :call man#show_toc()<CR> nnoremap <silent> <buffer> gO :call man#show_toc()<CR>
nnoremap <silent> <buffer> <C-]> :Man<CR> nnoremap <silent> <buffer> <C-]> :Man<CR>
nnoremap <silent> <buffer> K :Man<CR> nnoremap <silent> <buffer> K :Man<CR>