Removing xunfunction()
[grml-etc-core.git] / etc / skel / .vimrc
1 " Filename:      .vimrc
2 " Purpose:       configuration file for editor vim
3 " Authors:       grml-team (grml.org), (c) Michael Prokop <mika@grml.org>
4 " Bug-Reports:   see http://grml.org/bugs/
5 " License:       This file is licensed under the GPL v2.
6 " Latest change: Don Jul 19 00:02:50 CEST 2007 [mika]
7 "###############################################################################
8 " Thanks to Sven Guckes for his template!
9 "###############################################################################
10
11 " be no-compatible with vi
12   set nocp
13 " turn these ON:
14   set digraph ek hidden ruler sc vb wmnu
15 " set digraph
16 " turn these OFF ("no" prefix):
17   set noeb noet nosol
18 " non-toggles:
19   set bs=2 fo=cqrt ls=2 shm=at ww=<,>,h,l
20 " set bs=2 fo=cqrt ls=2 shm=at tw=72 ww=<,>,h,l
21   set comments=b:#,:%,fb:-,n:>,n:)
22 "  set list listchars=tab:»·,trail:·
23   set listchars=eol:$,precedes:«,extends:»,tab:»·,trail:·
24   set viminfo=%,'50,\"100,:100,n~/.viminfo
25   set tags=./tags,./TAGS,tags,TAGS,../tags,../../tags,../../../tags,../../../../tags
26
27 " autocommands:
28 " when the file type is "mail" then set the textwidth to "70":
29   au FileType mail   set tw=70
30 " When editing a file, always jump to the last cursor position
31 "  au BufReadPost * if line("'\"") | exe "'\"" | endif
32   autocmd BufReadPost * if line("'\"") && line("'\"") <= line("$") | exe "normal `\"" | endif
33
34 " some colors - as an example "white on black" [use bold fonts]:
35 "  hi normal   ctermfg=white  ctermbg=black guifg=white  guibg=black
36 "  hi nontext  ctermfg=blue   ctermbg=black guifg=blue   guibg=black
37 " switch on syntax coloring!! "bunt ist meine lieblingsfarbe!" :-)
38   syn on
39 " set t_Co=256                " number of colors
40
41 " some useful mappings:
42   set pastetoggle=<f11>
43
44 " with F7 copy all current buffer to clipboard, or a selection.
45 " with shift-F7, paste all clipboard contents
46 " see: http://www.vim.org/tips/tip.php?tip_id=964
47   map   <F7>  :w !xclip<CR><CR>
48   vmap  <F7>  "*y
49   map <S-F7>  :r!xclip -o<CR>
50
51 " remove/delete trailing whitespace:
52   nmap ;tr :%s/\s\+$//
53   vmap ;tr  :s/\s\+$//
54
55 " execute the command in the current line (minus the first word, which
56 " is intended to be a shell prompt) and insert the output in the buffer
57   map ,e ^wy$:r!\12"\r
58
59 " update timestamp
60   iab YDATE <C-R>=strftime("%a %b %d %T %Z %Y")<CR>
61   map ,L  1G/Latest change:\s*/e+1<CR>CYDATE<ESC>
62
63 " the shell in a box mode. found in posting by Stefan `Sec` Zehl
64 " in newsgroup de.alt.sysadmin.recovery, msg­id:  <df7lhe$2hup$1@ice.42.org>
65 " Requires zsh for "print -P $PS1" / replace if needed.
66 " Your prompt should end in > (and only contain one)
67 " so run something like:
68 "   % export PS1='%n@%m > '
69 " in your zsh, press ',l' and <enter> for running commands, end mode via <esc>
70   map __start :imap <C-V><C-M> <C-O>__cmd<C-V>\|imap <C-V><ESC> <C-V><ESC>__end<C-M>
71   noremap __end :iunmap <C-V><CR>\|iunmap <C-V><ESC><C-M>:"Vish ended.<C-M>
72   noremap __cmd 0<ESC>f>ly$:r !<C-R>";print -P $PS1<C-M>A
73   noremap __scmd :r !print -P $PS1<c-M>A
74   map ,l __start__scmd
75
76 " Kill quote spaces (when quoting a quote)
77   map ,kqs mz:%s/^> >/>>/<cr>
78
79 " Interface to Mercurial Version Control
80   if filereadable( "/usr/share/doc/mercurial/examples/vim/hg-menu.vim" )
81     source /usr/share/doc/mercurial/examples/vim/hg-menu.vim
82   endif
83
84 " source local configuration file
85   if filereadable(expand("$HOME/.vimrc.local"))
86      source $HOME/.vimrc.local
87   endif
88
89 " Vim 7 brings cool new features - see ':he version7'!
90 " The coolest features of Vim7 by mika
91 " ====================================
92 "  1) omni/intellisense completion: use CTRL-X CTRL-O in insert mode to start it [:he compl-omni]
93 "  2) internal grep: vimgrep foo bar [:he vimgrep]
94 "  3) tab pages: vim -p file1 file2 - then use the :tab command [:he tabpage]
95 "     gt -> next tab
96 "     gT -> previous tab
97 "  4) undo branches: :undolist / :earlier 2h / :later 2h
98 "     instead of using u (undo) and CTRL-R (redo), you might experiment with g-
99 "     and g+ to move through the text state [:he undolist]
100 "  5) browse remote directories via scp using netrw plugin: :edit scp://host//path/to/ [:he netrw.vim]
101 "  6) start editing the filename under the cursor and jump to the line
102 "     number following the file name: press gF [:he gF]
103 "  7) press 'CTRL-W F' to start editing the filename under the cursor in a new
104 "     window and jump to the line number following the file name. [:he CTRL-W_F]
105 "  8) spelling correction (see later for its configuration) [:he spell]:
106 "      ]s  -> Move to next misspelled word after the cursor.
107 "      zg  -> Add word under the cursor as a good word to the first name in 'spellfile'
108 "      zw  -> Like "zg" but mark the word as a wrong (bad) word.
109 "      z=  -> For the word under/after the cursor suggest correctly spelled words. 
110 " 9)  highlight active cursor line using 'set cursorline' [:he cursorline]
111 " 10) delete inner quotes inside HTML-code using <C-O>cit (see its mapping later) [:he tag-blocks]
112 "
113 if version >= 700
114   " Thanks for some ideas to Christian 'strcat' Schneider and Julius Plenz
115   " turn spelling on by default:
116   "  set spell
117   " toggle spelling with F12 key:
118     map <F12> :set spell!<CR><Bar>:echo "Spell Check: " . strpart("OffOn", 3 * &spell, 3)<CR>
119     set spellfile=~/.vim/spellfile.add
120   " change language -  get spell files from http://ftp.vim.org/pub/vim/runtime/spell/ =>
121   " cd ~/.vim/spell && wget http://ftp.vim.org/pub/vim/runtime/spell/de.latin1.spl
122   " change to german:
123   "  set spelllang=de
124   " highlight spelling correction:
125   "  highlight SpellBad    term=reverse   ctermbg=12 gui=undercurl guisp=Red       " badly spelled word 
126   "  highlight SpellCap    term=reverse   ctermbg=9  gui=undercurl guisp=Blue      " word with wrong caps
127   "  highlight SpellRare   term=reverse   ctermbg=13 gui=undercurl guisp=Magenta   " rare word
128   "  highlight SpellLocale term=underline ctermbg=11 gui=undercurl guisp=DarkCyan  " word only exists in other region
129
130   " set maximum number of suggestions listed to top 10 items:
131   set sps=best,10
132
133   " highlight matching parens:
134   " set matchpairs=(:),[:],{:},< :>
135   " let loaded_matchparen = 1
136   " highlight MatchParen term=reverse   ctermbg=7   guibg=cornsilk
137
138   " highlight the cursor line and column:
139   " set cursorline
140   " highlight CursorLine   term=reverse   ctermbg=7   guibg=#333333
141   " highlight CursorColumn guibg=#333333
142
143   " change inner tag - very useful e.g. within HTML-code!
144   " ci" will remove the text between quotes, also works for ' and `
145   imap <F10> <C-O>cit
146
147   " use the popup menu also when there is only one match:
148   " set completeopt=menuone 
149   " determine the maximum number of items to show in the popup menu for:
150   set pumheight=7
151   " set completion highlighting:
152   "  highlight Pmenu      ctermbg=13     guifg=Black   guibg=#BDDFFF              " normal item
153   "  highlight PmenuSel   ctermbg=7      guifg=Black   guibg=Orange               " selected item
154   "  highlight PmenuSbar  ctermbg=7      guifg=#CCCCCC guibg=#CCCCCC              " scrollbar
155   "  highlight PmenuThumb cterm=reverse  gui=reverse guifg=Black   guibg=#AAAAAA  " thumb of the scrollbar
156
157 endif
158 "# END OF FILE #################################################################