Just adding the ftdetect file that indicates the files used by the bitbake syntax...
[vim] / dotvimrc
1 " Vimrc
2
3 " Ricardo Salveti de Araujo <rsalveti@gmail.com>
4 " http://rsalveti.net
5 "
6 " based on http://amix.dk/vim/vimrc.html
7
8 """"""""""""""""""""""""""""""""""""""
9 "" General
10 """"""""""""""""""""""""""""""""""""""
11
12 " Lines to be remembered
13 set history=400
14
15 " Turn on the file type plugin
16 filetype plugin on
17 filetype indent on
18
19 " Put the file as read only when it's modified by another place
20 set autoread
21
22 " Turn on the mouse (this can be annoying some times)
23 set mouse=a
24
25 " Default file enconding
26 "set encoding=utf-8
27
28 """"""""""""""""""""""""""""""""""""""
29 "" Fonts and colors
30 """"""""""""""""""""""""""""""""""""""
31
32 " Turn the syntax hl on
33 syntax enable
34
35 " Omni colors
36 hi Pmenu guibg=#333333
37 hi PmenuSel guibg=#555555 guifg=#ffffff
38
39 " Background
40 set background=light
41
42 " Color scheme
43 colorscheme desert
44
45 """"""""""""""""""""""""""""""""""""""
46 "" User interface
47 """"""""""""""""""""""""""""""""""""""
48
49 " Turn on the wild menu
50 set wildmenu
51
52 " Always shows the current position
53 set ruler
54
55 " Default size of the commandbar
56 set cmdheight=1
57
58 " Show the number of the lines
59 set nu
60
61 " Turn the backspace on
62 set backspace=eol,start,indent
63
64 " Show the matching
65 set showmatch
66
67 " Search with highlight
68 set hlsearch
69
70 """"""""""""""""""""""""""""""""""""""
71 "" Tabs
72 """"""""""""""""""""""""""""""""""""""
73
74 " Create a new tab
75 :nmap <C-t> :tabnew<cr>
76
77 " Navigation of the tabs
78 :nmap <A-Left> :tabprevious<cr>
79 :nmap <A-Right> :tabnext<cr>
80
81 """"""""""""""""""""""""""""""""""""""
82 "" Dic 
83 """"""""""""""""""""""""""""""""""""""
84
85 " Turn the dic off
86 :nmap <F5> :setlocal spell! spelllang=<cr>
87
88 " English dic
89 :nmap <F6> :setlocal spell! spelllang=en<cr>
90
91 " Portuguese dic
92 :nmap <F7> :setlocal spell! spelllang=pt<cr>
93
94 """"""""""""""""""""""""""""""""""""""
95 "" Files and backups 
96 """"""""""""""""""""""""""""""""""""""
97
98 " Turn backups off
99 set nobackup
100 set nowb
101 set noswapfile
102
103 """"""""""""""""""""""""""""""""""""""
104 "" Text options
105 """"""""""""""""""""""""""""""""""""""
106
107 " Change tabs per space
108 "set expandtab
109
110 " Characters per identation
111 set shiftwidth=8
112
113 " Spaces ao press tab
114 set tabstop=8
115
116 " Characters per tab
117 set ts=8
118
119 " Show the bracelets just closed
120 set sm
121
122 " Columns for command > (ShiftWidth)
123 set sw=8
124
125 " Convert the existing tabs
126 retab
127
128 " Tab complete like bash
129 set wildmode=longest,list:full
130
131 """"""""""""""""""""""""""""""""""""""
132 "" Indentation
133 """"""""""""""""""""""""""""""""""""""
134
135 " Auto indentation
136 set ai
137
138 " Smart indent
139 set si
140
141 set wrap
142
143 " C-like indentation
144 set cindent
145
146 """"""""""""""""""""""""""""""""""""""
147 "" Search
148 """"""""""""""""""""""""""""""""""""""
149
150 " Smart search options
151 set is
152 set hls
153 set ic
154 set scs
155 set magic
156
157 """"""""""""""""""""""""""""""""""""""
158 "" Tags
159 """"""""""""""""""""""""""""""""""""""
160
161 " My default tags
162 set tags+=/home/rsalveti/.vim/tags/tags
163 set tags+=/home/rsalveti/.vim/systags
164
165 """"""""""""""""""""""""""""""""""""""
166 "" File specific options
167 """"""""""""""""""""""""""""""""""""""
168
169    """"""""""""""""""""""""""""""
170    " VIM
171    """"""""""""""""""""""""""""""
172    autocmd FileType vim map <buffer> <leader><space> :w!<cr>:source %<cr>
173
174    """"""""""""""""""""""""""""""
175    " HTML
176    """"""""""""""""""""""""""""""
177    " HTML entities - used by xml edit plugin
178    let xml_use_xhtml = 1
179    "let xml_no_auto_nesting = 1
180
181    " HTML
182    let html_use_css = 1
183    let html_number_lines = 0
184    let use_xhtml = 1
185
186    au FileType html set shiftwidth=8
187    au FileType html set tabstop=8
188    au FileType html set ts=8
189    au FileType html set sm
190    au FileType html set sw=8
191    au FileType html set expandtab
192
193
194    """"""""""""""""""""""""""""""
195    " Ruby & PHP section
196    """"""""""""""""""""""""""""""
197    autocmd FileType ruby map <buffer> <leader><space> :w!<cr>:!ruby %<cr>
198    autocmd FileType php compiler php
199    autocmd FileType php map <buffer> <leader><space> <leader>cd:w<cr>:make %<cr>
200
201    """"""""""""""""""""""""""""""
202    " Bash section
203    """"""""""""""""""""""""""""""
204    au FileType sh set shiftwidth=4
205    au FileType sh set tabstop=4
206    au FileType sh set ts=4
207    au FileType sh set sm
208    au FileType sh set sw=4
209    au FileType sh set expandtab
210
211    """"""""""""""""""""""""""""""
212    " Python section
213    """"""""""""""""""""""""""""""
214    "Python iMaps
215    au FileType python set cindent
216    au FileType python inoremap <buffer> $r return
217    au FileType python inoremap <buffer> $s self
218    au FileType python inoremap <buffer> $c ##<cr>#<space><cr>#<esc>kla
219    au FileType python inoremap <buffer> $i import
220    au FileType python inoremap <buffer> $p print
221    au FileType python inoremap <buffer> $d """<cr>"""<esc>O
222
223    "Python Options"
224    au FileType python set shiftwidth=4
225    au FileType python set tabstop=4
226    au FileType python set ts=4
227    au FileType python set sm
228    au FileType python set sw=4
229    au FileType python set expandtab
230
231    "Run in the Python interpreter
232    function! Python_Eval_VSplit() range
233      let src = tempname()
234      let dst = tempname()
235      execute ": " . a:firstline . "," . a:lastline . "w " . src
236      execute ":!python " . src . " > " . dst
237      execute ":pedit! " . dst
238    endfunction
239    au FileType python map <F10> :call Python_Eval_VSplit()<cr>
240
241    "Pylint Compiler"
242    "autocmd FileType python compiler pylint
243    "autocmd BufReadPost quickfix map <buffer> <silent> <CR> :.cc <CR> :ccl
244
245    """"""""""""""""""""""""""""""
246    " Cheetah section
247    """""""""""""""""""""""""""""""
248    autocmd FileType cheetah set ft=xml
249    autocmd FileType cheetah set syntax=cheetah
250
251    """""""""""""""""""""""""""""""
252    " Vim section
253    """""""""""""""""""""""""""""""
254    autocmd FileType vim set nofen
255
256    """""""""""""""""""""""""""""""
257    " Java section
258    """""""""""""""""""""""""""""""
259    au FileType java inoremap <buffer> <C-t> System.out.println();<esc>hi
260
261    "Abbr'z
262    autocmd FileType java inoremap <buffer> $pr private
263    autocmd FileType java inoremap <buffer> $r return
264    autocmd FileType java inoremap <buffer> $pu public
265    autocmd FileType java inoremap <buffer> $i import
266    autocmd FileType java inoremap <buffer> $b boolean
267    autocmd FileType java inoremap <buffer> $v void
268    autocmd FileType java inoremap <buffer> $s String
269
270    "Folding
271    function! JavaFold()
272      setl foldmethod=syntax
273      setl foldlevelstart=1
274      syn region foldBraces start=/{/ end=/}/ transparent fold keepend extend
275      syn match foldImports /\(\n\?import.\+;\n\)\+/ transparent fold
276
277      function! FoldText()
278        return substitute(getline(v:foldstart), '{.*', '{...}', '')
279      endfunction
280      setl foldtext=FoldText()
281    endfunction
282    au FileType java call JavaFold()
283    au FileType java setl fen
284
285    au BufEnter *.sablecc,*.scc set ft=sablecc
286
287    """"""""""""""""""""""""""""""
288    " JavaScript section
289    """""""""""""""""""""""""""""""
290    function! JavaScriptFold()
291      setl foldmethod=syntax
292      setl foldlevelstart=1
293      syn region foldBraces start=/{/ end=/}/ transparent fold keepend extend
294
295      function! FoldText()
296        return substitute(getline(v:foldstart), '{.*', '{...}', '')
297      endfunction
298      setl foldtext=FoldText()
299    endfunction
300    au FileType javascript call JavaScriptFold()
301    au FileType javascript setl fen
302
303    au FileType javascript imap <c-t> console.log();<esc>hi
304    au FileType javascript imap <c-a> alert();<esc>hi
305    au FileType javascript setl nocindent
306    au FileType javascript inoremap <buffer> $r return
307
308    au FileType javascript inoremap <buffer> $d //<cr>//<cr>//<esc>ka<space>
309    au FileType javascript inoremap <buffer> $c /**<cr><space><cr>**/<esc>ka
310
311    """"""""""""""""""""""""""""""
312    " HTML
313    """""""""""""""""""""""""""""""
314    au FileType html,cheetah set ft=xml
315    au FileType html,cheetah set syntax=html
316
317    """"""""""""""""""""""""""""""
318    " C mappings
319    """""""""""""""""""""""""""""""
320    autocmd FileType c map <buffer> <leader><space> :w<cr>:!gcc %<cr>
321
322    """""""""""""""""""""""""""""""
323    " SML
324    """""""""""""""""""""""""""""""
325    autocmd FileType sml map <silent> <buffer> <leader><space> <leader>cd:w<cr>:!sml %<cr>
326
327    """"""""""""""""""""""""""""""
328    " Scheme bidings
329    """"""""""""""""""""""""""""""
330    autocmd BufNewFile,BufRead *.scm map <buffer> <leader><space> <leader>cd:w<cr>:!petite %<cr>
331    autocmd BufNewFile,BufRead *.scm inoremap <buffer> <C-t> (pretty-print )<esc>i
332    autocmd BufNewFile,BufRead *.scm vnoremap <C-t> <esc>`>a)<esc>`<i(pretty-print <esc>
333
334    """"""""""""""""""""""""""""""
335    " SVN section
336    """""""""""""""""""""""""""""""
337    map <F8> :new<CR>:read !svn diff<CR>:set syntax=diff buftype=nofile<CR>gg
338
339    """"""""""""""""""""""""""""""
340    " GIT section
341    """""""""""""""""""""""""""""""
342    map <F9> :new<CR>:read !git diff<CR>:set syntax=diff buftype=nofile<CR>gg
343
344    """"""""""""""""""""""""""""""
345    " Compiler section
346    """""""""""""""""""""""""""""""
347    map <F11> :cp<CR>
348    map <F12> :cn<CR>