1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
set spell
set expandtab
set nonumber
set imsearch=1
set iminsert=1
nohlsearch
set colorcolumn=+1
" par options
"
" e[expel]
"
" If expel is 1, superfluous lines are withheld from the output .
" Defaults to 0 .
"
" g[guess]
"
" If guess is 1, then when par is choosing line breaks, whenever
" it encounters a curious word followed by a capitalized word, it
" takes one of two special actions. If the two words are separated
" by a single space in the input, they will be merged into one
" word with an embedded non-breaking space. If the two words are
" separated by more than one space, or by a line break, par will
" insure that they are separated by two spaces, or by a line
" break, in the output. Defaults to 0.
"
" q[quote]
"
" If quote is 1, then before each segment is scanned for bodiless
" lines, par supplies vacant lines between different quotation
" nesting levels as follows: For each pair of adjacent lines in
" the segment, (scanned from the top down) which have different
" quoteprefixes, one of two actions is taken. If invis is 0, and
" either line consists entirely of quote characters and spaces
" (or is empty), that line is truncated to the longest common
" prefix of the two lines (both are truncated if both qualify).
" Otherwise, a line consisting of the longest common prefix of
" the two lines is inserted between them. quote also affects the
" default value of prefix. Defaults to 0. (See also the p and i
" options.)
"
vmap <F4> :!par 72qeg<CR>gv:s/\v\s*$//<CR>:nohl<CR>
function! <SID>DeleteTrailingWhitespace()
if ! &binary
let l:l = line('.')
let l:c = col('.')
silent! :%s/[\r \t]\+$//
call histdel('search', -1)
call cursor(l:l, l:c)
endif
endfunction
autocmd BufWritePre,FileWritePre * call <SID>DeleteTrailingWhitespace()
|