Mercurial > dotfiles
annotate vim/vimrc @ 47:ee3d235ca3fb
Added solarized.
author | Ludovic Chabant <ludovic@chabant.com> |
---|---|
date | Mon, 05 Dec 2011 17:20:24 -0800 |
parents | aac6188ab4d6 |
children | 966df1f863be |
rev | line source |
---|---|
6 | 1 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" |
2 " | |
0 | 3 " Ludovic Chabant's ~/.vimrc |
4 " | |
6 | 5 " http://ludovic.chabant.com |
6 " | |
7 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" | |
0 | 8 |
9 " Use Vim settings, rather then Vi settings (much better!). | |
10 " This must be first, because it changes other options as a side effect. | |
11 set nocompatible | |
12 | |
45
aac6188ab4d6
Added vimroom plugin (disabled by default).
Ludovic Chabant <ludovic@chabant.com>
parents:
43
diff
changeset
|
13 " Set a variable that says we already sourced this file, for those few |
aac6188ab4d6
Added vimroom plugin (disabled by default).
Ludovic Chabant <ludovic@chabant.com>
parents:
43
diff
changeset
|
14 " settings we don't want to re-apply. |
aac6188ab4d6
Added vimroom plugin (disabled by default).
Ludovic Chabant <ludovic@chabant.com>
parents:
43
diff
changeset
|
15 if exists('g:sourced_vimrc') |
aac6188ab4d6
Added vimroom plugin (disabled by default).
Ludovic Chabant <ludovic@chabant.com>
parents:
43
diff
changeset
|
16 let g:resourcing_vimrc = 1 |
aac6188ab4d6
Added vimroom plugin (disabled by default).
Ludovic Chabant <ludovic@chabant.com>
parents:
43
diff
changeset
|
17 endif |
aac6188ab4d6
Added vimroom plugin (disabled by default).
Ludovic Chabant <ludovic@chabant.com>
parents:
43
diff
changeset
|
18 let g:sourced_vimrc = 1 |
aac6188ab4d6
Added vimroom plugin (disabled by default).
Ludovic Chabant <ludovic@chabant.com>
parents:
43
diff
changeset
|
19 |
6 | 20 " Set some important system-dependent variables. |
21 if has("win32") || has("win64") || has("dos32") | |
22 let $HOMEVIM = "vimfiles" | |
23 let $PLATFORM = "windows" | |
24 else | |
25 let $HOMEVIM = ".vim" | |
26 let $PLATFORM = "unix" | |
27 endif | |
28 | |
18
cec2213f938c
Removed some MiniBufExplorer mappings.
Ludovic Chabant <ludovic@chabant.com>
parents:
13
diff
changeset
|
29 " Disable some plugins. |
cec2213f938c
Removed some MiniBufExplorer mappings.
Ludovic Chabant <ludovic@chabant.com>
parents:
13
diff
changeset
|
30 let g:pathogen_disabled = [] |
cec2213f938c
Removed some MiniBufExplorer mappings.
Ludovic Chabant <ludovic@chabant.com>
parents:
13
diff
changeset
|
31 call add(g:pathogen_disabled, 'command-t') |
43
25e8b2fffd50
Changed some mappings.
Ludovic Chabant <ludovic@chabant.com>
parents:
42
diff
changeset
|
32 call add(g:pathogen_disabled, 'lawrencium') |
45
aac6188ab4d6
Added vimroom plugin (disabled by default).
Ludovic Chabant <ludovic@chabant.com>
parents:
43
diff
changeset
|
33 call add(g:pathogen_disabled, 'vimroom') |
18
cec2213f938c
Removed some MiniBufExplorer mappings.
Ludovic Chabant <ludovic@chabant.com>
parents:
13
diff
changeset
|
34 |
0 | 35 " Load pathogen. |
36 call pathogen#infect() | |
37 | |
10
00cac5ebf546
Added default window size. Added buffer keyboard shortcuts.
ludovicchabant
parents:
6
diff
changeset
|
38 " Hide the toolbar in MacVim/gVIM, and set a nice window size. |
45
aac6188ab4d6
Added vimroom plugin (disabled by default).
Ludovic Chabant <ludovic@chabant.com>
parents:
43
diff
changeset
|
39 if has("gui_running") && !exists('g:resourcing_vimrc') |
0 | 40 set guioptions=-t |
10
00cac5ebf546
Added default window size. Added buffer keyboard shortcuts.
ludovicchabant
parents:
6
diff
changeset
|
41 set lines=50 |
00cac5ebf546
Added default window size. Added buffer keyboard shortcuts.
ludovicchabant
parents:
6
diff
changeset
|
42 set columns=135 |
0 | 43 endif |
44 | |
18
cec2213f938c
Removed some MiniBufExplorer mappings.
Ludovic Chabant <ludovic@chabant.com>
parents:
13
diff
changeset
|
45 " Disable modelines. |
cec2213f938c
Removed some MiniBufExplorer mappings.
Ludovic Chabant <ludovic@chabant.com>
parents:
13
diff
changeset
|
46 set modelines=0 |
cec2213f938c
Removed some MiniBufExplorer mappings.
Ludovic Chabant <ludovic@chabant.com>
parents:
13
diff
changeset
|
47 |
6 | 48 " Don't unload abandoned buffers. |
49 set hidden | |
0 | 50 |
6 | 51 " Show line numbers. |
52 set number | |
53 | |
18
cec2213f938c
Removed some MiniBufExplorer mappings.
Ludovic Chabant <ludovic@chabant.com>
parents:
13
diff
changeset
|
54 " Show what mode we're in, and what command we're typing. |
cec2213f938c
Removed some MiniBufExplorer mappings.
Ludovic Chabant <ludovic@chabant.com>
parents:
13
diff
changeset
|
55 set showmode |
cec2213f938c
Removed some MiniBufExplorer mappings.
Ludovic Chabant <ludovic@chabant.com>
parents:
13
diff
changeset
|
56 set showcmd |
cec2213f938c
Removed some MiniBufExplorer mappings.
Ludovic Chabant <ludovic@chabant.com>
parents:
13
diff
changeset
|
57 |
cec2213f938c
Removed some MiniBufExplorer mappings.
Ludovic Chabant <ludovic@chabant.com>
parents:
13
diff
changeset
|
58 " Keep the cursor off the top/bottom edges. |
cec2213f938c
Removed some MiniBufExplorer mappings.
Ludovic Chabant <ludovic@chabant.com>
parents:
13
diff
changeset
|
59 set scrolloff=3 |
cec2213f938c
Removed some MiniBufExplorer mappings.
Ludovic Chabant <ludovic@chabant.com>
parents:
13
diff
changeset
|
60 |
6 | 61 " Smart auto-indenting. |
0 | 62 set autoindent |
63 set smartindent | |
6 | 64 |
65 " Use confirmation dialog. | |
0 | 66 set confirm |
6 | 67 |
68 " Remember lots of commands. | |
0 | 69 set history=1000 |
6 | 70 |
71 " Use incremental search, with highlighting, | |
72 " case-insensitive unless we actually type some | |
73 " mixed-case stuff. | |
0 | 74 set incsearch |
75 set hlsearch | |
76 set ignorecase | |
77 set smartcase | |
6 | 78 |
79 " Always show window status lines. | |
0 | 80 set laststatus=2 |
6 | 81 |
82 " Enable using the mouse like some everyday guy. | |
0 | 83 set mouse=a |
6 | 84 |
85 " Show interesting stuff at the bottom of the window. | |
0 | 86 set showcmd |
87 set ruler | |
6 | 88 |
89 " Don't pollute the hard-drive with *~ files. Only | |
90 " create them in hidden backup/temp directories while | |
91 " we edit the file, and then get rid of it. | |
0 | 92 set nobackup |
93 set writebackup | |
6 | 94 set backupdir=~/$HOMEVIM/backup |
95 set directory=~/$HOMEVIM/temp | |
96 | |
97 " Better command-line completion, but don't show some | |
98 " stuff we don't care about. | |
0 | 99 set wildmenu |
100 set wildignore+=.DS_Store,Thumbs.db | |
6 | 101 |
102 " Always display the tab-page line. | |
0 | 103 set showtabline=2 |
6 | 104 |
105 " Show matching braces. | |
106 set showmatch | |
107 | |
108 " Set the file-formats. | |
0 | 109 set ffs=unix,mac,dos |
6 | 110 |
111 " Tabs and indenting are 4 characters, and tabs behave like | |
112 " spaces during editing. They're smart, too, and when you | |
113 " press <TAB> it actually inserts a soft-tab so everything's | |
114 " indented the same. | |
0 | 115 set tabstop=4 |
116 set shiftwidth=4 | |
117 set softtabstop=4 | |
118 set smarttab | |
119 set expandtab | |
6 | 120 |
18
cec2213f938c
Removed some MiniBufExplorer mappings.
Ludovic Chabant <ludovic@chabant.com>
parents:
13
diff
changeset
|
121 " Default encoding |
cec2213f938c
Removed some MiniBufExplorer mappings.
Ludovic Chabant <ludovic@chabant.com>
parents:
13
diff
changeset
|
122 set encoding=utf-8 |
cec2213f938c
Removed some MiniBufExplorer mappings.
Ludovic Chabant <ludovic@chabant.com>
parents:
13
diff
changeset
|
123 |
6 | 124 " Clipboard buffer. |
0 | 125 set clipboard=unnamed |
6 | 126 |
127 " Smoot terminal experience. | |
0 | 128 set ttyfast |
6 | 129 |
130 " Allow backspacing over anything. | |
0 | 131 set backspace=indent,eol,start |
132 | |
6 | 133 " Going left and right let you go to other lines. |
134 set whichwrap+=<,>,h,l | |
135 | |
136 " And now, for some system-dependent settings: | |
137 " - font to use | |
138 if $PLATFORM == "windows" | |
139 set guifont=Consolas:h12 | |
140 else | |
141 set guifont=Monaco:h12 | |
142 endif | |
143 | |
144 | |
45
aac6188ab4d6
Added vimroom plugin (disabled by default).
Ludovic Chabant <ludovic@chabant.com>
parents:
43
diff
changeset
|
145 " Syntax highlighting. |
0 | 146 syntax on |
147 | |
18
cec2213f938c
Removed some MiniBufExplorer mappings.
Ludovic Chabant <ludovic@chabant.com>
parents:
13
diff
changeset
|
148 " Change the current directory to the home directory. |
45
aac6188ab4d6
Added vimroom plugin (disabled by default).
Ludovic Chabant <ludovic@chabant.com>
parents:
43
diff
changeset
|
149 if !exists('g:resourcing_vimrc') |
aac6188ab4d6
Added vimroom plugin (disabled by default).
Ludovic Chabant <ludovic@chabant.com>
parents:
43
diff
changeset
|
150 cd ~/ |
aac6188ab4d6
Added vimroom plugin (disabled by default).
Ludovic Chabant <ludovic@chabant.com>
parents:
43
diff
changeset
|
151 endif |
18
cec2213f938c
Removed some MiniBufExplorer mappings.
Ludovic Chabant <ludovic@chabant.com>
parents:
13
diff
changeset
|
152 |
45
aac6188ab4d6
Added vimroom plugin (disabled by default).
Ludovic Chabant <ludovic@chabant.com>
parents:
43
diff
changeset
|
153 " Default color scheme. |
47 | 154 if has('gui_running') |
155 set background=light | |
156 else | |
157 set background=dark | |
158 endif | |
159 colorscheme solarized | |
6 | 160 |
161 " Enable file type detection. | |
0 | 162 filetype indent plugin on |
163 | |
45
aac6188ab4d6
Added vimroom plugin (disabled by default).
Ludovic Chabant <ludovic@chabant.com>
parents:
43
diff
changeset
|
164 " Navigate MiniBufExplorer with CTRL+Tab/CTRL+Shift+Tab. |
18
cec2213f938c
Removed some MiniBufExplorer mappings.
Ludovic Chabant <ludovic@chabant.com>
parents:
13
diff
changeset
|
165 let g:miniBufExplMapCTabSwitchBufs = 1 |
10
00cac5ebf546
Added default window size. Added buffer keyboard shortcuts.
ludovicchabant
parents:
6
diff
changeset
|
166 |
6 | 167 " Custom mappings. |
42
6b831735c092
Added french keymap support.
Ludovic Chabant <ludovic@chabant.com>
parents:
18
diff
changeset
|
168 let mapleader="," |
43
25e8b2fffd50
Changed some mappings.
Ludovic Chabant <ludovic@chabant.com>
parents:
42
diff
changeset
|
169 |
45
aac6188ab4d6
Added vimroom plugin (disabled by default).
Ludovic Chabant <ludovic@chabant.com>
parents:
43
diff
changeset
|
170 " Edit & source the VIMRC. |
43
25e8b2fffd50
Changed some mappings.
Ludovic Chabant <ludovic@chabant.com>
parents:
42
diff
changeset
|
171 nnoremap <leader>ev :vsplit $MYVIMRC<cr> |
25e8b2fffd50
Changed some mappings.
Ludovic Chabant <ludovic@chabant.com>
parents:
42
diff
changeset
|
172 nnoremap <leader>sv :source $MYVIMRC<cr> |
25e8b2fffd50
Changed some mappings.
Ludovic Chabant <ludovic@chabant.com>
parents:
42
diff
changeset
|
173 |
45
aac6188ab4d6
Added vimroom plugin (disabled by default).
Ludovic Chabant <ludovic@chabant.com>
parents:
43
diff
changeset
|
174 " MiniBufExplorer mappings. |
aac6188ab4d6
Added vimroom plugin (disabled by default).
Ludovic Chabant <ludovic@chabant.com>
parents:
43
diff
changeset
|
175 nnoremap <F2> :TMiniBufExplorer<cr> |
43
25e8b2fffd50
Changed some mappings.
Ludovic Chabant <ludovic@chabant.com>
parents:
42
diff
changeset
|
176 |
45
aac6188ab4d6
Added vimroom plugin (disabled by default).
Ludovic Chabant <ludovic@chabant.com>
parents:
43
diff
changeset
|
177 " Open NERDtree. |
43
25e8b2fffd50
Changed some mappings.
Ludovic Chabant <ludovic@chabant.com>
parents:
42
diff
changeset
|
178 nnoremap <F3> :NERDTreeToggle<cr> |
25e8b2fffd50
Changed some mappings.
Ludovic Chabant <ludovic@chabant.com>
parents:
42
diff
changeset
|
179 |
45
aac6188ab4d6
Added vimroom plugin (disabled by default).
Ludovic Chabant <ludovic@chabant.com>
parents:
43
diff
changeset
|
180 " Switch between FR and US keyboard layouts. |
aac6188ab4d6
Added vimroom plugin (disabled by default).
Ludovic Chabant <ludovic@chabant.com>
parents:
43
diff
changeset
|
181 nnoremap <leader>fr :setlocal keymap=french<cr> |
aac6188ab4d6
Added vimroom plugin (disabled by default).
Ludovic Chabant <ludovic@chabant.com>
parents:
43
diff
changeset
|
182 nnoremap <leader>us :setlocal keymap=<cr> |
aac6188ab4d6
Added vimroom plugin (disabled by default).
Ludovic Chabant <ludovic@chabant.com>
parents:
43
diff
changeset
|
183 |
aac6188ab4d6
Added vimroom plugin (disabled by default).
Ludovic Chabant <ludovic@chabant.com>
parents:
43
diff
changeset
|
184 " Toggle spell check according to current keyboard layout. |
aac6188ab4d6
Added vimroom plugin (disabled by default).
Ludovic Chabant <ludovic@chabant.com>
parents:
43
diff
changeset
|
185 nnoremap <leader>sp :call <SID>ToggleSpellCheck()<cr> |
aac6188ab4d6
Added vimroom plugin (disabled by default).
Ludovic Chabant <ludovic@chabant.com>
parents:
43
diff
changeset
|
186 |
aac6188ab4d6
Added vimroom plugin (disabled by default).
Ludovic Chabant <ludovic@chabant.com>
parents:
43
diff
changeset
|
187 " Simple way to close a buffer without closing the window. |
aac6188ab4d6
Added vimroom plugin (disabled by default).
Ludovic Chabant <ludovic@chabant.com>
parents:
43
diff
changeset
|
188 nnoremap <leader>bd :bprevious<cr>:bdelete #<cr> |
43
25e8b2fffd50
Changed some mappings.
Ludovic Chabant <ludovic@chabant.com>
parents:
42
diff
changeset
|
189 |
25e8b2fffd50
Changed some mappings.
Ludovic Chabant <ludovic@chabant.com>
parents:
42
diff
changeset
|
190 " Abbreviations |
25e8b2fffd50
Changed some mappings.
Ludovic Chabant <ludovic@chabant.com>
parents:
42
diff
changeset
|
191 iabbrev @@ ludovic@chabant.com |
25e8b2fffd50
Changed some mappings.
Ludovic Chabant <ludovic@chabant.com>
parents:
42
diff
changeset
|
192 iabbrev ccopy Copyright ©2011 Ludovic Chabant, all rights reserved. |
25e8b2fffd50
Changed some mappings.
Ludovic Chabant <ludovic@chabant.com>
parents:
42
diff
changeset
|
193 iabbrev ssig --<cr>l u d o .<cr>. 8 0 17 80 |
0 | 194 |
45
aac6188ab4d6
Added vimroom plugin (disabled by default).
Ludovic Chabant <ludovic@chabant.com>
parents:
43
diff
changeset
|
195 " Functions {{{ |
aac6188ab4d6
Added vimroom plugin (disabled by default).
Ludovic Chabant <ludovic@chabant.com>
parents:
43
diff
changeset
|
196 |
aac6188ab4d6
Added vimroom plugin (disabled by default).
Ludovic Chabant <ludovic@chabant.com>
parents:
43
diff
changeset
|
197 function! s:ToggleSpellCheck() abort |
aac6188ab4d6
Added vimroom plugin (disabled by default).
Ludovic Chabant <ludovic@chabant.com>
parents:
43
diff
changeset
|
198 if &spell ==? 'nospell' |
aac6188ab4d6
Added vimroom plugin (disabled by default).
Ludovic Chabant <ludovic@chabant.com>
parents:
43
diff
changeset
|
199 if &keymap ==? 'french' |
aac6188ab4d6
Added vimroom plugin (disabled by default).
Ludovic Chabant <ludovic@chabant.com>
parents:
43
diff
changeset
|
200 setlocal spell spelllang=fr_fr |
aac6188ab4d6
Added vimroom plugin (disabled by default).
Ludovic Chabant <ludovic@chabant.com>
parents:
43
diff
changeset
|
201 else |
aac6188ab4d6
Added vimroom plugin (disabled by default).
Ludovic Chabant <ludovic@chabant.com>
parents:
43
diff
changeset
|
202 setlocal spell spelllang=en_us,en_ca |
aac6188ab4d6
Added vimroom plugin (disabled by default).
Ludovic Chabant <ludovic@chabant.com>
parents:
43
diff
changeset
|
203 endif |
aac6188ab4d6
Added vimroom plugin (disabled by default).
Ludovic Chabant <ludovic@chabant.com>
parents:
43
diff
changeset
|
204 else |
aac6188ab4d6
Added vimroom plugin (disabled by default).
Ludovic Chabant <ludovic@chabant.com>
parents:
43
diff
changeset
|
205 setlocal spell nospell |
aac6188ab4d6
Added vimroom plugin (disabled by default).
Ludovic Chabant <ludovic@chabant.com>
parents:
43
diff
changeset
|
206 endif |
aac6188ab4d6
Added vimroom plugin (disabled by default).
Ludovic Chabant <ludovic@chabant.com>
parents:
43
diff
changeset
|
207 endfunction |
aac6188ab4d6
Added vimroom plugin (disabled by default).
Ludovic Chabant <ludovic@chabant.com>
parents:
43
diff
changeset
|
208 |
aac6188ab4d6
Added vimroom plugin (disabled by default).
Ludovic Chabant <ludovic@chabant.com>
parents:
43
diff
changeset
|
209 " }}} |
aac6188ab4d6
Added vimroom plugin (disabled by default).
Ludovic Chabant <ludovic@chabant.com>
parents:
43
diff
changeset
|
210 |
0 | 211 " Temporary stuff |
212 "let mapleader="," " Use , as Leader | |
213 "let gmapleader="," | |
214 "map Y y$ " Yank to the end of the line w/ Y | |
215 "map <leader>nt :tabnew<CR> " New tab w/ ,nt | |
216 "map <leader>f :FufFile<CR> " Find files with ,f | |
217 "nmap <leader>w :w!<cr> | |
218 "map <F3> :r !pbpaste<CR> | |
219 "map <F4> :setlocal spell spelllang=en_gb<CR> " Turn on spellcheck with <F4> | |
220 "map <F5> :set nospell<CR> | |
221 "set pastetoggle=<F6> | |
222 "map <F7> :set complete+=k<CR> | |
223 "map <S-F7> :set complete=-k<CR> | |
224 "map <F8> :YRShow<CR> " Show the YankRing w/ <F8> | |
225 "nnoremap <F3> :GundoToggle<CR> " Show the undo tree w/ <F3> | |
226 "nnoremap ; : | |
227 "autocmd BufRead,BufNewfile ~/notes/* set filetype=markdown " All files in ~/notes are Markdown | |
228 "au BufWinLeave *.html,*.css mkview | |
229 "au BufWinEnter *.html,*.css silent loadview | |
230 "au FileType mail set tw=65 " Thin width when writing mail in mutt | |
231 "au FocusLost * :wa " Saves file when vim loses focus | |
232 "if has('statusline') " Status line with git repo info | |
233 " set statusline=%<%f\ | |
234 " set statusline+=%w%h%m%r | |
235 " set statusline+=%{fugitive#statusline()} | |
236 " set statusline+=\ [%{&ff}/%Y] | |
237 " set statusline+=\ [%{getcwd()}] | |
238 " set statusline+=%=%-14.(Line:\ %l\ of\ %L\ [%p%%]\ -\ Col:\ %c%V%) | |
239 "endif | |
240 | |
241 " When started as "evim", evim.vim will already have done these settings. | |
242 "if v:progname =~? "evim" | |
243 " finish | |
244 "endif | |
245 | |
246 " For Win32 GUI: remove 't' flag from 'guioptions': no tearoff menu entries | |
247 " let &guioptions = substitute(&guioptions, "t", "", "g") | |
248 | |
249 " Don't use Ex mode, use Q for formatting | |
250 "map Q gq | |
251 | |
252 " This is an alternative that also works in block mode, but the deleted | |
253 " text is lost and it only works for putting the current register. | |
254 "vnoremap p "_dp | |
255 | |
256 " Switch syntax highlighting on, when the terminal has colors | |
257 " Also switch on highlighting the last used search pattern. | |
258 "if &t_Co > 2 || has("gui_running") | |
259 " syntax on | |
260 " set hlsearch | |
261 "endif | |
262 | |
263 " Only do this part when compiled with support for autocommands. | |
264 "if has("autocmd") | |
265 | |
266 " Enable file type detection. | |
267 " Use the default filetype settings, so that mail gets 'tw' set to 72, | |
268 " 'cindent' is on in C files, etc. | |
269 " Also load indent files, to automatically do language-dependent indenting. | |
270 " filetype plugin indent on | |
271 | |
272 " Put these in an autocmd group, so that we can delete them easily. | |
273 " augroup vimrcEx | |
274 " au! | |
275 | |
276 " For all text files set 'textwidth' to 78 characters. | |
277 " autocmd FileType text setlocal textwidth=78 | |
278 | |
279 " When editing a file, always jump to the last known cursor position. | |
280 " Don't do it when the position is invalid or when inside an event handler | |
281 " (happens when dropping a file on gvim). | |
282 " autocmd BufReadPost * | |
283 " \ if line("'\"") > 0 && line("'\"") <= line("$") | | |
284 " \ exe "normal g`\"" | | |
285 " \ endif | |
286 | |
287 " augroup END | |
288 | |
289 "else | |
290 | |
291 " set autoindent " always set autoindenting on | |
292 | |
293 "endif " has("autocmd") | |
294 | |
295 "set fileformats=dos,unix " set fileformat to DOS by default | |
296 |