X-Git-Url: https://v.licheni.net/stack/conf/vim.git/blobdiff_plain/ebf81fe2a9c11ca4bcfed3c3dc7b2f04ea0edbd2..dcb11c1c29c57db025d616ff3bd08d2de54ff0d5:/.vimrc diff --git a/.vimrc b/.vimrc index bc78eb3..a03fc2c 100644 --- a/.vimrc +++ b/.vimrc @@ -8,7 +8,8 @@ set cf " enable error files and error jumping set ffs=unix,dos,mac " support all three, in this order set viminfo+=! " make sure it can save viminfo set isk+=_,@,- " none of these should be word dividers, so make them not be -set nobackup " real man don't use backups ;) +set nobackup + """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " Theme/Colors """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" @@ -19,19 +20,17 @@ set t_Co=256 colorscheme desert "colorscheme xoria256 "let g:solarized_termcolors=256 -"colorscheme solarized """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " Vim UI """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" set wildmenu " turn on wild menu set ruler " Always show current positions along the bottom -"set number " turn on line numbers +set number " turn on line numbers set lz " do not redraw while running macros (much faster) (LazyRedraw) set hid " you can change buffer without saving set backspace=2 " make backspace work normal set whichwrap+=<,>,h,l " backspace and cursor keys wrap to -set mouse=a " use mouse everywhere set shortmess=atI " shortens messages to avoid 'press a key' prompt set report=0 " tell us when anything is changed via :... " make the splitters between windows be blank @@ -42,13 +41,12 @@ set fillchars=vert:\ ,stl:\ ,stlnc:\ """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" set showmatch " show matching brackets set mat=5 " how many tenths of a second to blink matching brackets for -set nohlsearch " do not highlight searched for phrases -set incsearch " BUT do highlight as you type you search phrase +set hlsearch " highlight searched for phrases +set incsearch " do highlight as you type you search phrase set listchars=tab:\|\ ,trail:.,extends:>,precedes:<,eol:$ " what to show when I hit :set list set so=10 " Keep 10 lines (top/bottom) for scope set novisualbell " don't blink set noerrorbells " no noises -"set statusline=%F%m%r%h%w\ [FORMAT=%{&ff}]\ [TYPE=%Y]\ [ASCII=\%03.3b]\ [HEX=\%02.2B]\ [POS=%04l,%04v][%p%%]\ [LEN=%L] set statusline=%F%m%r%h%w\ [FORMAT=%{&ff}]\ [TYPE=%Y]\ [POS=%04l,%04v][%p%%] set laststatus=2 " always show the status line @@ -60,12 +58,10 @@ set si " smartindent set tabstop=4 " tab spacing (settings below are just to unify it) set softtabstop=4 " unify set shiftwidth=4 " unify -set expandtab " space instead of tabs please! +set expandtab " space instead of tabs +set smarttab "Use the "shiftwidth" setting for inserting s instead of the "tabstop" setting, when at the beginning of a line. set nowrap " do not wrap lines -autocmd FileType c,cpp,slang set cindent -autocmd FileType c,cpp,slang set textwidth=79 - - + """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " Folding " Enable folding, but by default make it act like folding is off, because folding is annoying in anything but a few rare cases @@ -87,6 +83,9 @@ nmap p i imap cmap +" map to clear search +nmap :nohlsearch + " this makes the mouse paste a block of text without formatting it " (good for code) map "*p @@ -123,11 +122,6 @@ let perl_extended_vars=1 " highlight advanced perl vars inside strings """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " Custom Functions """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" -" Select range, then hit :SuperRetab($width) - by p0g and FallingCow -function! SuperRetab(width) range - silent! exe a:firstline . ',' . a:lastline . 's/\v%(^ *)@<= {'. a:width .'}/\t/g' -endfunction - "switch spellcheck languages let g:myLangList = [ "none", "it", "en_us" ] function! MySpellLang() @@ -150,34 +144,61 @@ endfunction """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " alt-i (normal mode) inserts a single char, and then switches back to normal map i r -map ggVG:call SuperRetab() +" set F4 to toogle number/nonumber +map :set invnumber " encypt the file (toggle) map ggVGg? map :call MySpellLang() -map :TlistOpen +" Map NERDTree show and hide +map :NERDTreeToggle +imap :NERDTreeToggle +" Taglist toggle +map :TlistOpen +imap :TlistClose + + """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " Autocommands """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" -autocmd BufEnter * :syntax sync fromstart " ensure every file does syntax highlighting (full) -autocmd BufNewFile *.sh call append(0, "#!/bin/bash") -autocmd BufNewFile *.pl call append(0, "#!/usr/bin/perl") -autocmd BufNewFile *.py call append(0, "#!/bin/python") +if has ("autocmd") + " Enable file type detection ('filetype on'). + " Syntax of these languages is fussy over tabs Vs spaces + autocmd FileType make setlocal ts=8 sts=8 sw=8 noexpandtab + autocmd FileType yaml setlocal ts=2 sts=2 sw=2 expandtab + " Customisations based on house-style (arbitrary) + autocmd FileType html setlocal ts=2 sts=2 sw=2 expandtab + autocmd FileType css setlocal ts=2 sts=2 sw=2 expandtab + " Treat sh correctly + autocmd FileType sh setlocal ts=4 sts=4 sw=4 expandtab + " Treat .rss files as XML + autocmd BufNewFile,BufRead *.rss,*.atom setfiletype xml + + autocmd FileType c,cpp,slang set cindent + autocmd FileType c,cpp,slang set textwidth=79 + + autocmd BufEnter * :syntax sync fromstart " ensure every file does syntax highlighting (full) + autocmd BufNewFile *.sh call append(0, "#!/bin/bash") + autocmd BufNewFile *.pl call append(0, "#!/usr/bin/perl") + autocmd BufNewFile *.py call append(0, "#!/bin/python") + + " When editing a file, always jump to the last known cursor position. + " Don't do it when the position is invalid or when inside an event handler + " (happens when dropping a file on gvim). + autocmd BufReadPost * + \ if line("'\"") > 0 && line("'\"") <= line("$") | + \ exe "normal g`\"" | + \ endif +endif + """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " Useful abbrevs """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" iab xdate =strftime("%d/%m/%y %H:%M:%S") -" Latex abbrevs -"iab cha \chapter{}i -"iab sub \subsection{} -"iab sec \section{} -"iab ite \item -"iab enu \begin{enumerate}\end{enumerate}O -"iab footn \footnote{} -"iab tabb \begin{tabbing}\end{tabbing}O - -""""""""""""""""""""""""""" +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +" General configs +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" set titlestring=%t%(\ %M%)%(\ (%{expand(\"%:~:h\")})%)%(\ %a%)\ -\ %{v:servername} if &term == "screen" set t_ts=^[k @@ -187,36 +208,20 @@ if &term == "screen" || &term == "xterm" set title endif +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +" Plugin activation +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " vim-addon-manager " -fun SetupVAM() - let addons_base = expand('$HOME') . '/.vim/addons' - exec 'set runtimepath+='.addons_base.'/vim-addon-manager' - - " unix based os users may want to use this code checking out VAM - " if !isdirectory(addons_base.'/vim-addon-manager') - " exec '!p='.shellescape(addons_base).'; mkdir -p "$p" && cd "$p" && git clone --depth 1 git://github.com/MarcWeber/vim-addon-manager.git' - " endif - - " commenting try .. endtry because trace is lost if you use it. - " There should be no exception anyway - try - - let g:solarized_termcolors=256 - call vam#ActivateAddons(['github:altercation/vim-colors-solarized']) - call vam#ActivateAddons(['surround','checksyntax','snipmate','snipmate-snippets','gnupg','LargeFile','taglist-plus'], {'auto_install' : 0}) - " pluginA could be github:YourName see vam#install#RewriteName() - catch /.*/ - echoe v:exception - endtry -endf -call SetupVAM() - +let vam_install_path = expand('$HOME') . '/.vim/addons' +exec 'set runtimepath+='.vam_install_path.'/vim-addon-manager' +" Enable addons with vim-addon-manager using file type recognition let ft_addons = { - \ '^\%(R\|r\)$': [ 'Screen_vim__gnu_screentmux', 'Vim-R-plugin' ], -\ } + \ 'always': ['surround', 'checksyntax', 'LargeFile', 'snipmate', 'snipmate-snippets', 'The_NERD_tree'], + \ 'r': [ 'Screen_vim__gnu_screentmux', 'Vim-R-plugin' ], + \ '^\%(c\|cpp\|javascript\|python\|php\|html\|xml\|r\|sh\|css\|java\|make\|xslt\|vim\)$': [ 'taglist-plus' ], + \ 'python': ['pythoncomplete', 'pydoc', 'python%790'], + \ 'gpg': ['gnupg'], + \ } +call vam#ActivateAddons(ft_addons['always'], {'auto_install': 1}) au FileType * for l in values(filter(copy(ft_addons), string(expand('')).' =~ v:key')) | call vam#ActivateAddons(l, {'force_loading_plugins_now':1}) | endfor -" experimental: run after gui has been started (gvim) [3] -" option1: au VimEnter * call SetupVAM() -" option2: au GUIEnter * call SetupVAM() -" See BUGS sections below [*]