-"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
-" General
-"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
-set nocompatible " get out of horrible vi-compatible mode
-filetype indent plugin on | syn on
-set history=1000 " How many lines of history to remember
-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
-
-"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
-" Theme/Colors
-"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
-syntax on " syntax highlighting on
-
-set background=dark
-set t_Co=256
-colorscheme desert
-"colorscheme xoria256
-"let g:solarized_termcolors=256
-
-"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
-" Vim UI
-"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
-set wildmenu " turn on wild menu
-set ruler " Always show current positions along the bottom
-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 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
-set fillchars=vert:\ ,stl:\ ,stlnc:\
-
-"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
-" Visual Cues
-"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
-set showmatch " show matching brackets
-set mat=5 " how many tenths of a second to blink matching brackets for
-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]\ [POS=%04l,%04v][%p%%]
-set laststatus=2 " always show the status line
-
-"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
-" Text Formatting/Layout
-"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
-set fo=tcrqn " See Help (complex)
-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
-set smarttab "Use the "shiftwidth" setting for inserting <TAB>s instead of the "tabstop" setting, when at the beginning of a line.
-set nowrap " do not wrap lines
-
-"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
-" Folding
-" Enable folding, but by default make it act like folding is off, because folding is annoying in anything but a few rare cases
-"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
-set foldenable " Turn on folding
-set foldmethod=indent " Make folding indent sensitive
-set foldlevel=100 " Don't autofold anything (but I can still fold manually)
-set foldopen-=search " don't open folds when you search into them
-set foldopen-=undo " don't open folds when you undo stuff
-
-"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
-" Mouse Settings
-"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
-set mouse=a " mouse support in all modes
-set mousehide " hide the mouse when typing text
-
-" ,p and shift-insert will paste the X buffer, even on the command line
-nmap <LocalLeader>p i<S-MiddleMouse><ESC>
-imap <S-Insert> <S-MiddleMouse>
-cmap <S-Insert> <S-MiddleMouse>
-
-" map <C-k> to clear search
-nmap <silent><C-k> :nohlsearch<CR>
-
-" this makes the mouse paste a block of text without formatting it
-" (good for code)
-map <MouseMiddle> <esc>"*p
-
-" Convenient for non italian keyboard
-map ò :
-
-"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
-" Matchit
-"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
-let b:match_ignorecase = 1
-
-" make tab in v mode ident code
-vmap <tab> >gv
-vmap <s-tab> <gv
-
-" make tab in normal mode ident code
-nmap <tab> I<tab><esc>
-nmap <s-tab> ^i<bs><esc>
-
-"Easy to access esc key
-map! <C-h> <Esc>
-map <C-h> <Esc>
-
-" paste mode - this will avoid unexpected effects when you
-" cut or copy some text from one window and paste it in Vim.
-set pastetoggle=<F6>
-
-"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
-" Perl
-"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
-let perl_extended_vars=1 " highlight advanced perl vars inside strings
-
-"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
-" Custom Functions
-"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
-"switch spellcheck languages
-let g:myLangList = [ "none", "it", "en_us" ]
-function! MySpellLang()
-"loop through languages
-if !exists( "b:myLang" )
- let b:myLang=0
-endif
-let b:myLang = b:myLang + 1
-if b:myLang >= len(g:myLangList) | let b:myLang = 0 | endif
-
-if b:myLang== 0 | setlocal spell nospell | endif
-if b:myLang== 1 | setlocal spell spelllang=it | endif
-if b:myLang== 2 | setlocal spell spelllang=en_us | endif
-
-echo "language spell:" g:myLangList[b:myLang]
-endfunction
-
-"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
-" Mappings
-"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
-" alt-i (normal mode) inserts a single char, and then switches back to normal
-map <A-i> i <ESC>r
-" set F4 to toogle number/nonumber
-map <silent><F4> :set invnumber<CR>
-" encypt the file (toggle)
-map <F12> ggVGg?
-map <F8> :call MySpellLang()<CR>
-" Map NERDTree show and hide
-map <F2> :NERDTreeToggle<CR>
-imap <F2> <Esc>:NERDTreeToggle<CR>
-" Taglist toggle
-map <F3> :TlistOpen<CR>
-imap <F3> <Esc>:TlistClose<CR>
-
-
-"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
-" Autocommands
-"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
-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 <c-r>=strftime("%d/%m/%y %H:%M:%S")<cr>
-
-"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
-" General configs
-"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
-set titlestring=%t%(\ %M%)%(\ (%{expand(\"%:~:h\")})%)%(\ %a%)\ -\ %{v:servername}
-if &term == "screen"
- set t_ts=^[k
- set t_fs=^[\
-endif
-if &term == "screen" || &term == "xterm"
- set title
-endif
-
-"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
-" Plugin activation
-"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
-" vim-addon-manager
-"
-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 = {
- \ '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('<amatch>')).' =~ v:key')) | call vam#ActivateAddons(l, {'force_loading_plugins_now':1}) | endfor