From: stack Date: Wed, 17 Oct 2012 20:53:26 +0000 (+0200) Subject: moved .vimrc to vimrc X-Git-Url: https://v.licheni.net/stack/conf/vim.git/commitdiff_plain/dcb11c1c29c57db025d616ff3bd08d2de54ff0d5 moved .vimrc to vimrc --- diff --git a/vimrc b/vimrc new file mode 100644 index 0000000..4364483 --- /dev/null +++ b/vimrc @@ -0,0 +1,227 @@ +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +" 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 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 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 + +" Convenient for non italian keyboard +map ò : + +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +" Matchit +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +let b:match_ignorecase = 1 + +" make tab in v mode ident code +vmap >gv +vmap I +nmap ^i + +"Easy to access esc key +map! +map + +" paste mode - this will avoid unexpected effects when you +" cut or copy some text from one window and paste it in Vim. +set pastetoggle= + +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +" 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 i r +" set F4 to toogle number/nonumber +map :set invnumber +" encypt the file (toggle) +map ggVGg? +map :call MySpellLang() +" Map NERDTree show and hide +map :NERDTreeToggle +imap :NERDTreeToggle +" Taglist toggle +map :TlistOpen +imap :TlistClose + + +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +" 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 =strftime("%d/%m/%y %H:%M:%S") + +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +" 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('')).' =~ v:key')) | call vam#ActivateAddons(l, {'force_loading_plugins_now':1}) | endfor