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