c7a95545ee6a221fac14c818aa441b75d9be552a
[dotfiles/vim.git] / .vimrc
1 " ************************************************************************
2 "  G E N E R A L   S T U F F
3 "
4
5 syntax on
6 " needed for pathogen to work as expected
7 filetype off
8
9 " Load pathogen plugin manager
10 " http://www.vim.org/scripts/script.php?script_id=2332
11 "call pathogen#runtime_append_all_bundles() 
12 call pathogen#infect()
13
14 set smartindent         "Turn on smart indent
15 set tabstop=4           "set tab character to 4 characters
16 set expandtab           "turn tabs into whitespace
17 set shiftwidth=4        "indent width for autoindent
18
19 " Add line numbering
20 set number
21 "set numberwidth=4
22
23 " Highlight current line
24 set cursorline  
25
26 set formatoptions=tcqn2
27
28 set ruler
29
30 set modeline
31
32 set laststatus=2
33 set wildmode=longest,list
34 set wildmenu
35
36 " Avoids to add 2 spaces after dots when joining lines
37 set nojoinspaces
38
39 " Makes the unnamed yank register global
40 " avoiding use of "+ prefix for y / p / d / c
41 "set clipboard+=unnamed
42
43 " stop indenting when pasting
44 nnoremap <f7> :set invpaste paste?<CR>
45 set pastetoggle=<f7>
46 set showmode
47
48 " Disable auto-identing
49 nnoremap <f8> :setl noai nocin nosi inde=<CR>
50 " Re-enable auto-identing
51 nnoremap <f9> :setl ai cin si<CR>
52
53 " GUI options
54 if has('gui_running')
55     set guifont=Monospace\ 10
56     :winpos 20 20
57     :set lines=40
58     :set columns=160
59 endif
60
61 " vimtodo options
62 " http://www.vim.org/scripts/script.php?script_id=3264
63 let g:todo_done_file="DONE"
64
65 " spell checking
66 setlocal spell spelllang=fr,en
67 set nospell
68
69 " Allows command completion (using <tab>)
70 :set wildmenu
71
72
73 " ************************************************************************
74 "  C O L O R   T H E M E   O P T I O N S
75 "
76
77 " solarized optons
78 "let g:solarized_termtrans=1
79 let g:solarized_contrast="high"
80 set background=dark
81
82 " sets theme
83 colorscheme solarized
84
85 " Toggles background (dark vs. light theme)
86 if !exists("no_plugin_maps") && !hasmapto('<Plug>ToggleBackground')
87     call togglebg#map("<F5>")
88 endif
89
90
91 " ************************************************************************
92 " B E G I N  A U T O C O M M A N D S
93 "
94
95 if has("autocmd")
96
97     " Enable file type detection.
98     " Use the default filetype settings, so that mail gets 'tw' set to 72,
99     " 'cindent' is on in C files, etc.
100     " Also load indent files, to automatically do language-dependent indenting.
101     filetype plugin indent on
102
103     " Add an autocommand to update serial in bind zone files
104     command Soa :%s/\(2[0-9]\{7}\)\([0-9]\{2}\)\(\s*;\s*serial\)/\=UpdateDNSSerialZone(submatch(1), submatch(2)) . submatch(3)/gc
105     autocmd BufWritePre /etc/bind/db.* Soa
106
107 endif
108
109
110 " ************************************************************************
111 "  F U N C T I O N S
112 "
113
114 " This function is used to update the serial in the SOA from a bind file
115 function! UpdateDNSSerialZone(date, num)
116     if (strftime("%Y%m%d") == a:date)
117         return a:date . a:num+1
118     endif
119     return strftime("%Y%m%d") . '01'
120 endfunction