48bc893d151f3cfd266933174629128b96bc6a44
[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 " Avoids to add 2 spaces after dots when joining lines
33 set nojoinspaces
34
35 " Makes the unnamed yank register global
36 " avoiding use of "+ prefix for y / p / d / c
37 "set clipboard+=unnamed
38
39 " stop indenting when pasting
40 nnoremap <f7> :set invpaste paste?<CR>
41 set pastetoggle=<f7>
42 set showmode
43
44 " Disable auto-identing
45 nnoremap <f8> :setl noai nocin nosi inde=<CR>
46 " Re-enable auto-identing
47 nnoremap <f9> :setl ai cin si<CR>
48
49 " GUI options
50 if has('gui_running')
51     set guifont=Monospace\ 10
52     :winpos 20 20
53     :set lines=40
54     :set columns=160
55 endif
56
57 " vimtodo options
58 " http://www.vim.org/scripts/script.php?script_id=3264
59 let g:todo_done_file="DONE"
60
61 " spell checking
62 setlocal spell spelllang=fr,en
63 set nospell
64
65 " vimfootnotes options
66 set g:vimfootnotenumber = -1
67
68 " Allows command completion (using <tab>)
69 set wildmenu
70
71
72 " ************************************************************************
73 "  C O L O R   T H E M E   O P T I O N S
74 "
75
76 " solarized optons
77 "let g:solarized_termtrans=1
78 let g:solarized_contrast="high"
79 set background=dark
80
81 " sets theme
82 colorscheme solarized
83
84 " Toggles background (dark vs. light theme)
85 if !exists("no_plugin_maps") && !hasmapto('<Plug>ToggleBackground')
86     call togglebg#map("<F5>")
87 endif
88
89
90 " ************************************************************************
91 " B E G I N  A U T O C O M M A N D S
92 "
93
94 if has("autocmd")
95
96     " Enable file type detection.
97     " Use the default filetype settings, so that mail gets 'tw' set to 72,
98     " 'cindent' is on in C files, etc.
99     " Also load indent files, to automatically do language-dependent indenting.
100     filetype plugin indent on
101
102     " Add an autocommand to update serial in bind zone files
103     command Soa :%s/\(2[0-9]\{7}\)\([0-9]\{2}\)\(\s*;\s*serial\)/\=UpdateDNSSerialZone(submatch(1), submatch(2)) . submatch(3)/gc
104     autocmd BufWritePre /etc/bind/db.* Soa
105
106 endif
107
108
109 " ************************************************************************
110 "  F U N C T I O N S
111 "
112
113 " This function is used to update the serial in the SOA from a bind file
114 function! UpdateDNSSerialZone(date, num)
115     if (strftime("%Y%m%d") == a:date)
116         return a:date . a:num+1
117     endif
118     return strftime("%Y%m%d") . '01'
119 endfunction