All patches and comments are welcome. Please squash your changes to logical
commits before using git-format-patch and git-send-email to
patches@git.madduck.net.
If you'd read over the Git project's submission guidelines and adhered to them,
I'd be especially grateful.
1 " obtained from the output of :options, then postprocessed:
3 " :%s/^ *[[:digit:]]\+/"""
7 " /^\([^[:space:]"].*\)\?$/
17 " behave very Vi compatible (not advisable)
22 " list of flags to specify Vi compatibility
26 " use Insert mode as the default mode
30 " paste mode, insert typed text literally
34 " key sequence to toggle paste mode
39 " list of directories used for runtime files and plugins
40 " set rtp=/home/madduck/.vim,/usr/share/vim/vimfiles,/usr/share/vim/vimcurrent,/usr/share/vim/vimfiles/after,/home/madduck/.vim/after
43 " name of the main help file
44 " set hf=/usr/share/vim/vimcurrent/doc/help.txt
46 """ moving around, searching and patterns
49 " list of flags specifying which commands wrap to another line
55 " many jump commands move the cursor to the first non-blank
60 " nroff macro names that separate paragraphs
61 " set para=IPLPPPQPP\ LIpplpipbp
64 " nroff macro names that separate sections
65 " set sect=SHNHH\ HUnhsh
68 " list of directory names used for file searching
69 " (global or local to buffer)
70 " set pa=.,/usr/include,,
73 " list of directory names used for :cd
77 " search commands wrap around the end of the buffer
82 " show match for partly typed search command
87 " change the way backslashes are used in search patterns
91 " ignore case when using a search pattern
96 " override 'ignorecase' when pattern has upper case characters
101 " What method to use for changing case of letters
102 " set cmp=internal,keepascii
105 " maximum amount of memory in Kbyte used for pattern matching
109 " pattern for a macro definition line
110 " (global or local to buffer)
111 " set def=^\\s*#\\s*define
114 " pattern for an include-file line
116 " set inc=^\\s*#\\s*include
119 " expression used to transform an include line to a file name
126 " use binary searching in tags files
130 " number of significant characters in a tag name or zero
134 " list of file names to search for tags
135 " (global or local to buffer)
136 " set tag=./tags,./TAGS,tags,TAGS
139 " file names in a tags file are relative to the tags file
143 " a :tag command will use the tagstack
147 " when completing tags in Insert mode show more info
151 " command for executing cscope
155 " use cscope for tag commands
159 " 0 or 1; the order in which ":cstag" performs a search
163 " give messages when adding a cscope database
164 " set nocsverb csverb
167 " how many components of the path to show
171 " When to open a quickfix window for cscope
177 " number of lines to scroll for CTRL-U and CTRL-D
182 " number of screen lines to show around the cursor
192 " wrap long lines at a character in 'breakat'
195 " does not work with autocmd set list/nolist below
198 " which characters might cause a line break
199 " set brk=\ \ !@*-+;:,./?
202 " string to put before wrapped screen lines
206 " minimal number of columns to scroll horizontally
210 " minimal number of columns to keep left and right of the cursor
215 " include "lastline" to show the last line even if it doesn't fit
216 " include "uhex" to show unprintable characters as a hex number
221 " characters to use for the status line, folds and filler lines
222 " set fcs=vert:\|,fold:-
225 " number of lines used for the command-line
229 " width of the display
233 " number of lines in the display
237 " don't redraw while executing macros
242 " delay in msec for each char written to the display
247 " show <Tab> as ^I and end-of-line as $
253 " list of strings used for list mode
255 set lcs=tab:⇝·,trail:·
258 " show the line number for each line
263 " number of columns to use for the line number
267 """ syntax, highlighting and spelling
270 " "dark" or "light"; the background color brightness
274 " type of file; triggers the FileType event when set
279 " name of syntax highlighting used
284 " maximum column to look for syntax items
289 " which highlighting to use for various occasions
290 " set hl=8:SpecialKey,@:NonText,d:Directory,e:ErrorMsg,i:IncSearch,l:Search,m:MoreMsg,M:ModeMsg,n:LineNr,r:Question,s:StatusLine,S:StatusLineNC,c:VertSplit,t:Title,v:Visual,V:VisualNOS,w:WarningMsg,W:WildMenu,f:Folded,F:FoldColumn,A:DiffAdd,C:DiffChange,D:DiffDelete,T:DiffText,>:SignColumn,B:SpellBad,P:SpellCap,R:SpellRare,L:SpellLocal,+:Pmenu,=:PmenuSel,x:PmenuSbar,X:PmenuThumb,*:TabLine,#:TabLineSel,_:TabLineFill,!:CursorColumn,.:CursorLine
293 " highlight all matches for the last used search pattern
298 " highlight the screen column of the cursor
303 " highlight the screen line of the cursor
308 " highlight spelling mistakes
313 " list of accepted languages
318 " file that "zg" adds good words to
323 " pattern to locate the end of a sentence
325 " set spc=[.?!]\\_[\\])'\"\ \ ]\\+
329 " methods used to suggest corrections
333 " amount of memory used by :mkspell before compressing
334 " set msm=460000,2000,500
339 " 0, 1 or 2; when to use a status line for the last window
343 " alternate format to be used for a status line
347 " make all windows the same size when adding/removing windows
351 " in which direction 'equalalways' works: "ver", "hor" or "both"
355 " minimal number of lines used for the current window
359 " minimal number of lines used for any window
363 " keep the height of the window
368 " keep the width of the window
373 " minimal number of columns used for the current window
377 " minimal number of columns used for any window
381 " initial height of the help window
385 " default height for the preview window
389 " identifies the preview window
394 " don't unload a buffer when no longer shown in a window
398 " "useopen" and/or "split"; which window to use when jumping
403 " a new window is put below the current one
407 " a new window is put right of the current one
411 " this window scrolls together with other bound windows
416 " "ver", "hor" and/or "jump"; list of options for 'scrollbind'
419 """ multiple tab pages
422 " 0, 1 or 2; when to use a tab pages line
426 " maximum number of tab pages to open for -p and "tab all"
430 " custom tab pages line
436 " name of the used terminal
437 " set term=rxvt-unicode
441 " set tty=rxvt-unicode
444 " check built-in termcaps first
448 " terminal connection is fast
452 " terminal that requires extra redrawing
456 " recognize keys that start with <Esc> in Insert mode
460 " minimal number of lines to scroll at a time
464 " maximum number of lines to use scrolling instead of redrawing
468 " show info in the window title
473 " percentage of 'columns' used for the window title
477 " when not empty, string to be used for the window title
481 " string to restore the title to when exiting Vim
482 " set titleold=Thanks\ for\ flying\ Vim
485 " set the text of the icon for this window
489 " when not empty, text for the icon of this window
495 " list of flags for using the mouse
499 " "extend", "popup" or "popup_setpos"; what the right
500 " mouse button is used for
504 " maximum time in msec to recognize a double-click
508 " "xterm", "xterm2", "dec" or "netterm"; type of mouse
514 " list of items that control the format of :hardcopy output
518 " name of the printer to be used for :hardcopy
522 " expression used to print the PostScript file for :hardcopy
523 " set pexpr=system('lpr'\ .\ (&printdevice\ ==\ ''\ ?\ ''\ :\ '\ -P'\ .\ &printdevice)\ .\ '\ '\ .\ v:fname_in)\ .\ delete(v:fname_in)\ +\ v:shell_error
524 set pexpr=system('lp'\ .\ (&printdevice\ ==\ ''\ ?\ ''\ :\ '\ -d'\ .\ &printdevice)\ .\ '\ '\ .\ v:fname_in)\ .\ delete(v:fname_in)\ +\ v:shell_error
527 " name of the font to be used for :hardcopy
531 " format of the header used for :hardcopy
532 " set pheader=%<%f%h%m%=Page\ %N
535 " encoding used to print the PostScript file for :hardcopy
539 " the CJK character set to be used for CJK output from :hardcopy
543 " list of font names to be used for CJK output from :hardcopy
546 """ messages and info
549 " add 's' flag in 'shortmess' (don't show search message)
553 " list of flags to make messages shorter
555 set shortmess=atTWoOI
558 " show (partial) command keys in the status line
562 " display the current mode in the status line
566 " show cursor position below each window
571 " alternate format to be used for the ruler
572 " set ruf=%20(%=%-14(%l,%c%V%)\ %P%)
575 " threshold for reporting number of changed lines
579 " the higher the more messages are given
583 " file to write messages in
587 " pause listings when the screen is full
591 " start a dialog when a command fails
595 " ring the bell for error messages
599 " use a visual bell instead of beeping
603 " list of preferred languages for finding help
609 " "old", "inclusive" or "exclusive"; how selecting text behaves
613 " "mouse", "key" and/or "cmd"; when to start Select mode
614 " instead of Visual mode
618 " "startsel" and/or "stopsel"; what special keys can do
624 " maximum number of changes that can be undone
628 " changes have been made and not written to a file
633 " buffer is not to be written
638 " changes to the text are not possible
643 " line length above which to break a line
649 " margin from the right in which to break a line
654 " specifies what <BS>, CTRL-W, etc. can do in Insert mode
656 set bs=indent,eol,start
659 " definition of what comment lines look like
661 " set com=s1:/*,mb:*,ex:*/,://,b:#,:%,:XCOMM,n:>,fb:-
664 " list of flags that tell how automatic formatting works
670 " pattern to recognize a numbered list
672 " set flp=^\\s*\\d\\+[\\]:.)}\\t\ ]\\s*
673 let &flp='^\v\s*(((#|\a|\d{,4}|[ivx]{,4})[]:.)}/])+|[-\*.·→+])\s+'
676 " expression used for "gq" to format lines
681 " specifies how Insert mode completion works for CTRL-N and CTRL-P
683 " set cpt=.,w,b,u,t,i
686 " whether to use a popup menu for Insert mode completion
687 " set cot=menu,preview
690 " maximum height of the popup menu
694 " user defined function for Insert mode completion
699 " function for filetype-specific Insert mode completion
704 " list of dictionary files for keyword completion
705 " (global or local to buffer)
709 " list of thesaurus files for keyword completion
710 " (global or local to buffer)
714 " adjust case of a keyword completion match
720 " enable entering digraps with c1 <BS> c2
725 " the "~" command behaves like an operator
730 " function called for the"g@" operator
734 " When inserting a bracket, briefly jump to its match
738 " tenth of a second to show a match for 'showmatch'
742 " list of pairs that match for the "%" command
744 " set mps=(:),{:},[:]
747 " use two spaces after '.' when joining a line
752 " "alpha", "octal" and/or "hex"; number formats recognized for
753 " CTRL-A and CTRL-X commands
757 """ tabs and indenting
760 " number of spaces a <Tab> in the text stands for
764 " You could set the 'tabstop' option to 2. However, if you edit the file
765 " another time, with 'tabstop' set to the default value of 8, it will look
766 " wrong. In other programs and when printing the indent will also be
767 " wrong. Therefore it is recommended to keep 'tabstop' at eight all the
768 " time. That's the standard value everywhere.
773 " number of spaces used for each step of (auto)indent
779 " a <Tab> in an indent inserts 'shiftwidth' spaces
784 " if non-zero, number of spaces to insert for a <Tab>
790 " round to 'shiftwidth' for "<<" and ">>"
795 " expand <Tab> to spaces in Insert mode
801 " automatically set the indent of a new line
807 " do clever autoindenting
812 " enable specific indenting for C code
817 " options for C-indenting
822 " keys that trigger C-indenting in Insert mode
824 " set cink=0{,0},0),:,0#,!^F,o,O,e
827 " list of words that cause more C-indent
829 " set cinw=if,else,while,do,for,switch
832 " expression used to obtain the indent of a line
837 " keys that trigger indenting with 'indentexpr' in Insert mode
839 " set indk=0{,0},:,0#,!^F,o,O,e
842 " Copy whitespace for indenting from previous line
848 " Preserve kind of whitespace when changing indent
851 """ set pi this ABORTS < 1:7.1-135+1 (see #446268)
862 " words that change how lisp indenting works
863 " set lw=defun,define,defmacro,set!,lambda,if,case,let,flet,let*,letrec,do,do*,define-syntax,let-syntax,letrec-syntax,destructuring-bind,defpackage,defparameter,defstruct,deftype,defvar,do-all-symbols,do-external-symbols,do-symbols,dolist,dotimes,ecase,etypecase,eval-when,labels,macrolet,multiple-value-bind,multiple-value-call,multiple-value-prog1,multiple-value-setq,prog1,progv,typecase,unless,unwind-protect,when,with-input-from-string,with-open-file,with-open-stream,with-output-to-string,with-package-iterator,define-condition,handler-bind,handler-case,restart-bind,restart-case,with-simple-restart,store-value,use-value,muffle-warning,abort,continue,with-slots,with-slots*,with-accessors,with-accessors*,defclass,defmethod,print-unreadable-object
868 " set to display all folds open
873 " folds with a level higher than this number will be closed
878 " value for 'foldlevel' when starting to edit a file
882 " width of the column used to indicate folds
887 " expression used to display the text of a closed fold
892 " set to "all" to close a fold when the cursor leaves it
896 " specifies for which commands a fold will be opened
897 " set fdo=block,hor,mark,percent,quickfix,search,tag,undo
900 " minimum number of screen lines for a fold to be closed
905 " template for comments; used to put the marker in
909 " folding type: "manual", "indent", "expr", "marker" or "syntax"
915 " expression used when 'foldmethod' is "expr"
920 " used to ignore lines when 'foldmethod' is "indent"
925 " markers used when 'foldmethod' is "marker"
930 " maximum fold depth for when 'foldmethod is "indent" or "syntax"
937 " use diff mode for the current window
942 " options for using diff mode
946 " expression used to obtain a diff file
950 " expression used to patch a file
956 " maximum depth of mapping
960 " recognize mappings in mapped keys
964 " allow timing out halfway into a mapping
968 " allow timing out halfway into a key code
969 " set nottimeout ttimeout
972 " time in msec for 'timeout'
976 " time in msec for 'ttimeout'
979 """ reading and writing files
982 " enable using settings from modelines when reading a file
988 " number of lines to check for modelines
992 " binary file editing
997 " last line in the file has an end-of-line
1002 " Prepend a Byte Order Mark to the file
1007 " end-of-line format: "dos", "unix" or "mac"
1012 " list of file formats to look for when editing a file
1016 " obsolete, use 'fileformat'
1021 " obsolete, use 'fileformats'
1025 " writing files is allowed
1029 " write a backup file before overwriting a file
1033 " keep a backup after overwriting a file
1037 " patterns that specify for which files a backup is not made
1041 " whether to make the backup as a copy or rename the existing file
1045 " list of directories to put backup files in
1046 " set bdir=.,/home/madduck/tmp,/home/madduck/
1049 " file name extension for the backup file
1053 " automatically write a file when leaving a modified buffer
1058 " as 'autowrite', but works with more commands
1063 " always write without asking for confirmation
1067 " automatically read a file when it was modified outside of Vim
1068 " (global or local to buffer)
1073 " keep oldest version of a file; specifies file name extension
1077 " forcibly sync the file to disk after writing it
1081 " use 8.3 file names
1088 " list of directories for the swap file
1089 " set dir=.,/home/madduck/tmp,/var/tmp,/tmp
1090 set dir=.,$TMPDIR//,/var/tmp//,/tmp//
1093 " use a swap file for this buffer
1098 " "sync", "fsync" or empty; how to flush a swap file to disk
1103 " number of characters typed to cause a swap file update
1107 " time in msec after which the swap file will be updated
1112 " maximum amount of memory in Kbyte used for one buffer
1116 " maximum amount of memory in Kbyte used for all buffers
1119 """ command line editing
1122 " how many command lines are remembered
1127 " key that triggers command-line expansion
1131 " like 'wildchar' but can also be used in a mapping
1135 " specifies how command line completion works
1140 " list of file name extensions that have a lower priority
1141 " set su=.bak,~,.o,.h,.info,.swp,.obj
1144 " list of file name extensions added when searching for a file
1149 " list of patterns to ignore files for file name completion
1151 set wig=*.o,*.pyc,*.pyo,*~,*.bk,*.bak
1154 " command-line completion shows a list of matches
1158 " key used to open the command-line window
1162 " height of the command-line window
1165 """ executing external commands
1168 " name of the shell program used for external commands
1172 " character(s) to enclose a shell command in
1176 " like 'shellquote' but include the redirection
1180 " argument for 'shell' to execute a command
1184 " used to redirect command output to a file
1188 " use a temp file for shell commands instead of using a pipe
1192 " program used for "=" command
1193 " (global or local to buffer)
1197 " program used to format lines with "gq" command
1201 " program used for the "K" command
1205 " warn when using a shell command and a buffer has changes
1209 """ running make and jumping to errors
1212 " name of the file that contains error messages
1216 " list of formats for error messages
1217 " (global or local to buffer)
1218 " set efm=%*[^\"]\"%f\"%*\\D%l:\ %m,\"%f\"%*\\D%l:\ %m,%-G%f:%l:\ (Each\ undeclared\ identifier\ is\ reported\ only\ once,%-G%f:%l:\ for\ each\ function\ it\ appears\ in.),%f:%l:%c:%m,%f(%l):%m,%f:%l:%m,\"%f\"\\,\ line\ %l%*\\D%c%*[^\ ]\ %m,%D%*\\a[%*\\d]:\ Entering\ directory\ `%f',%X%*\\a[%*\\d]:\ Leaving\ directory\ `%f',%D%*\\a:\ Entering\ directory\ `%f',%X%*\\a:\ Leaving\ directory\ `%f',%DMaking\ %*\\a\ in\ %f,%f\|%l\|\ %m
1221 " program used for the ":make" command
1222 " (global or local to buffer)
1226 " string used to put the output of ":make" in the error file
1227 " set sp=2>&1\|\ tee
1230 " name of the errorfile for the 'makeprg' command
1234 " program used for the ":grep" command
1235 " (global or local to buffer)
1236 " set gp=grep\ -n\ $*\ /dev/null
1239 " list of formats for output of 'grepprg'
1240 " set gfm=%f:%l:%m,%f:%l%m,%f\ \ %l%m
1242 """ language specific
1245 " specifies the characters in a file name
1246 " set isf=@,48-57,/,.,-,_,+,,,#,$,%,~,=
1249 " specifies the characters in an identifier
1250 " set isi=@,48-57,_,192-255
1253 " specifies the characters in a keyword
1258 " specifies printable characters
1262 " specifies escape characters in a string
1267 " display the buffer right-to-left
1272 " When to edit the command-line right-to-left
1277 " Insert characters backwards
1281 " Allow CTRL-_ in Insert and Command-line mode to toggle 'revins'
1285 " the ASCII code for the first letter of the Hebrew alphabet
1289 " use Hebrew keyboard mapping
1293 " use phonetic Hebrew keyboard mapping
1297 " use Farsi as the second language when 'revins' is set
1301 " use Farsi keyboard mapping
1305 " Prepare for editing Arabic text
1310 " Perform shaping of Arabic characters
1311 " set noarshape noarshape
1314 " Terminal will perform bidi handling
1318 " name of a keyboard mappping
1322 " translate characters for Normal mode
1326 " in Insert mode: 1: use :lmap; 2: use IM; 0: neither
1331 " entering a search pattern: 1: use :lmap; 2: use IM; 0: neither
1335 """ multi-byte characters
1338 " character encoding used in Vim: "latin1", "utf-8"
1339 " "euc-jp", "big5", etc.
1343 " character encoding for the current file
1348 " automatically detected character encodings
1349 " set fencs=ucs-bom,utf-8,default,latin1
1352 " character encoding used by the terminal
1355 " charconvert expression
1356 " used for character encoding conversion
1360 " Delete combining (composing) characters on their own
1364 " Maximum number of combining (composing) characters displayed
1368 " Width of ambiguous width characters
1374 " when to use virtual editing: "block", "insert" and/or "all"
1378 " list of autocommand events which are to be ignored
1382 " load plugin scripts when starting up
1387 " enable reading .vimrc/.exrc/.gvimrc in the current directory
1391 " safer working with script files in the current directory
1392 " set nosecure secure
1396 " use the 'g' flag for ":substitute"
1400 " 'g' and 'c' flags of ":substitute" toggle
1404 " maximum depth of function calls
1408 " list of words that specifies what to put in a session file
1409 " set ssop=blank,buffers,curdir,folds,help,options,tabpages,winsize
1412 " list of words that specifies what to save for :mkview
1413 " set vop=folds,options,cursor
1416 " directory where to store files with :mkview
1417 " set vdir=/home/madduck/.vim/view
1418 set vdir=$VARDIR/vim/view
1421 " list that specifies what to write in the viminfo file
1423 set vi=<1000,'1000,\"1000,:100,/100,@100,f1,%,!,h,n$VARDIR/vim/viminfo
1426 " what happens with a buffer when it's no longer in a window
1431 " "", "nofile", "nowrite" or "quickfix": type of buffer
1436 " whether the buffer shows up in the buffer list
1441 " set to "msg" to see all error messages
1444 if &cp | set nocp | endif
1448 let g:netrw_home="$VARDIR/vim"
1450 filetype plugin indent on
1454 " leave the w mark whenever a file is written
1455 autocmd BufWrite * normal mw
1457 autocmd BufRead *.vcf set filetype=vcard
1459 " leave the i mark whenever we go idle (after updatetime)
1461 "autocmd CursorHold * normal mi
1462 "autocmd CursorHoldI * normal mi "DISABLED while broken (shifts left)
1465 " disable list mode when inserting stuff, otherwise keep it enabled, it's
1466 " useful (see also setting lcs)
1468 autocmd InsertEnter * set nolist
1469 autocmd InsertLeave * set list
1471 " flag trailing spaces as error only when not inserting
1472 augroup tsperrorinsert
1473 autocmd InsertEnter * match none /\s\+$/
1474 autocmd InsertLeave * match Error /\s\+$/
1477 " this isn't windows, screw the F1->help key
1482 " ignore Q -- Ex mode
1486 let maplocalleader = ';'
1488 " replace fake tab chars with real ones
1489 map <Leader>ft :%s,⇝·*, ,g<CR>:nohlsearch<CR>``
1490 " replace fake spaces with real ones
1491 map <Leader>fs :%s,·, ,g<CR>:nohlsearch<CR>``
1493 map <Leader>sy :echo synIDattr(synID(line("."), col("."), 1), "name")<CR>
1495 map <Leader>/ :nohlsearch<CR>
1497 omap [{ :normal {jj<CR>
1498 nmap [{ :normal {jj<CR>
1499 omap ]} :normal }kk<CR>
1500 nmap ]} :normal }kk<CR>
1504 let g:airline_theme='minimalist'
1507 execute pathogen#infect()
1509 "echo "Pathogen not installed"
1514 let g:UltiSnipsExpandTrigger = "<leader><tab>"
1515 let g:UltiSnipsJumpForwardTrigger = "<c-]>"
1516 let g:UltiSnipsJumpBackwardTrigger = "<c-[>"
1517 map <F10> :UltiSnipsEdit<cr>
1518 imap <F10> <esc>:UltiSnipsEdit<cr>