mirror of
https://github.com/tomru/DotfilesOld.git
synced 2026-03-03 06:27:21 +01:00
initial commit
This commit is contained in:
216
vimrc
Normal file
216
vimrc
Normal file
@@ -0,0 +1,216 @@
|
||||
" .vimrc
|
||||
|
||||
" Use Vim not vi settings
|
||||
set nocompatible
|
||||
|
||||
" gui appearence
|
||||
if has("gui_running")
|
||||
colorscheme slate
|
||||
set guifont=Terminus\ 8
|
||||
endif
|
||||
|
||||
" term appearence
|
||||
set background=dark
|
||||
|
||||
" always show ruler
|
||||
set ruler
|
||||
|
||||
" search related settings
|
||||
|
||||
" show parial pattern matches in real time
|
||||
set incsearch
|
||||
" I like highlighted search pattern
|
||||
set hlsearch
|
||||
" search for upper and lowercase
|
||||
set ignorecase
|
||||
" but if user type uppercase - search exaclty
|
||||
set smartcase
|
||||
|
||||
" no backup, we got scm :)
|
||||
set nobackup
|
||||
|
||||
"use a scrollable menu for filename completions
|
||||
set wildmenu
|
||||
|
||||
"ignore class and object files
|
||||
set wildignore=*.class,*.o,*.bak,*.swp,*.pyc
|
||||
|
||||
"of course
|
||||
syntax on
|
||||
|
||||
" I work with buffers, when I open a buffer that is recently open in a window,
|
||||
" don't open this buffer twice: switch to the already open one! Nice for :make, :cn, ... ;-)
|
||||
set switchbuf=useopen
|
||||
" title
|
||||
set titlestring=%<%F\ %M%=%l/%L\ -\ %p%% titlelen=70
|
||||
|
||||
" display linenumber
|
||||
set number
|
||||
|
||||
if version >= 700
|
||||
" spelling files:
|
||||
" http://ftp.vim.org/pub/vim/runtime/spell/
|
||||
" move de.latin1.spl and de.latin1.sug to RUNTIME/spell
|
||||
set spelllang=de
|
||||
set sps=best,10
|
||||
set omnifunc=ccomplete#Complete
|
||||
map <S-h> gT
|
||||
map <S-l> gt
|
||||
else
|
||||
" spell check for the folloging files
|
||||
let spell_auto_type = "tex,mail,text,human"
|
||||
let spell_markup_ft = ",tex,mail,text,human"
|
||||
let spell_guess_language_ft = ""
|
||||
endif
|
||||
|
||||
"maximum mumber of undos
|
||||
set undolevels=1000
|
||||
|
||||
" indent stuff, tab stuff
|
||||
set autoindent
|
||||
set smartindent
|
||||
set tabstop=4
|
||||
set softtabstop=4
|
||||
set shiftwidth=4
|
||||
|
||||
" no swp file cluttering in workdir
|
||||
set directory=~/.vimswp
|
||||
|
||||
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
" TEXT FORMATING
|
||||
|
||||
|
||||
|
||||
|
||||
if has("autocmd")
|
||||
|
||||
filetype on
|
||||
augroup filetype
|
||||
filetype plugin indent on
|
||||
autocmd BufNewFile,BufRead *.txt set filetype=human
|
||||
augroup END
|
||||
|
||||
"vim jumps always to the last edited line, if possible
|
||||
"autocmd BufRead *,.* :normal '"
|
||||
autocmd BufReadPost *
|
||||
\ if line("'\"") > 0 && line("'\"") <= line("$") |
|
||||
\ exe "normal g`\"" |
|
||||
\ endif
|
||||
|
||||
"in human-language files, automatically format everything at 78 chars:
|
||||
autocmd FileType mail,human
|
||||
\ set spelllang=de formatoptions+=t textwidth=78 nocindent dictionary=/usr/share/dict/words
|
||||
|
||||
|
||||
"LaTeX to the fullest! ...dislike overlong lines:
|
||||
autocmd FileType tex set formatoptions+=t textwidth=80 nocindent
|
||||
autocmd FileType tex set makeprg=pdflatex\ %
|
||||
|
||||
"for C-like programming, have automatic indentation:
|
||||
autocmd FileType slang set cindent tabstop=4 shiftwidth=4 tw=78
|
||||
|
||||
|
||||
"for actual C programming where comments have explicit end
|
||||
"characters, if starting a new line in the middle of a comment automatically
|
||||
"insert the comment leader characters:
|
||||
"for a more _weighty_ comments use: comments=sl:/*,mb:**,elx:*/
|
||||
autocmd FileType c,cpp set formatoptions+=ro dictionary=$HOME/.vim/c_dictionary
|
||||
\ tw=78 tabstop=4 shiftwidth=4 noexpandtab cindent
|
||||
|
||||
|
||||
" indent xml code
|
||||
augroup xml
|
||||
map ,mf !xmllint --format --recover - 2>/dev/null<CR>
|
||||
" au!
|
||||
" autocmd BufWrite *xml exe ":silent 1,$!xmllint --format --recover - 2>/dev/null"
|
||||
augroup END
|
||||
|
||||
"for both CSS and HTML, use genuine tab characters for indentation, to make
|
||||
"files a few bytes smaller:
|
||||
autocmd FileType html,css set noexpandtab tabstop=2
|
||||
|
||||
"in makefiles, don't expand tabs to spaces, since actual tab characters are
|
||||
"needed, and have indentation at 8 chars to be sure that all indents are tabs
|
||||
"(despite the mappings later):
|
||||
autocmd FileType make set noexpandtab shiftwidth=8
|
||||
autocmd FileType automake set noexpandtab shiftwidth=8
|
||||
|
||||
endif " has("autocmd")
|
||||
|
||||
|
||||
|
||||
"I need more information
|
||||
set statusline=%<%F%=\ [%1*%M%*%n%R%H%Y]\ \ %-25(%3l,%c%03V\ \ %P\ (%L)%)%12o'%03b''%03B'
|
||||
"always show statusline
|
||||
set laststatus=2
|
||||
|
||||
"modus (insert,visual ...)
|
||||
highlight modeMsg cterm=bold ctermfg=white ctermbg=blue
|
||||
"active statusLine
|
||||
highlight statusLine cterm=bold ctermfg=yellow ctermbg=red
|
||||
"inactive statusLine
|
||||
highlight statusLineNC cterm=bold ctermfg=black ctermbg=white
|
||||
"visual mode
|
||||
highlight visual cterm=bold ctermfg=yellow ctermbg=red
|
||||
"cursor colors
|
||||
highlight cursor cterm=bold
|
||||
"vertical line on split screen
|
||||
highlight VertSplit cterm=bold ctermfg=yellow ctermbg=yellow
|
||||
|
||||
" highlight spell errors
|
||||
highlight SpellErrors ctermfg=Red cterm=underline term=reverse
|
||||
|
||||
|
||||
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
" MAPPINGS
|
||||
|
||||
"" Function Keys Sector
|
||||
|
||||
"write a changelog entry upon pressing F1
|
||||
"nnoremap <silent> <F1> :r !date<CR>Thomas Ruoff <ThomasRuoff@gmail.com><CR><CR>
|
||||
"F2 -> F4 == misc
|
||||
"search the current word under cursor in all files in working directory
|
||||
nnoremap <silent> <F2> vawy:! grep -n -H <C-R>" .* *<CR>
|
||||
|
||||
nnoremap <silent> <F3> :NERDTreeToggle<CR>
|
||||
|
||||
"compile, translate, ...
|
||||
map <F5> :make<CR>
|
||||
|
||||
" F9 F11 Shift-F11 and F12 are used in python mode
|
||||
|
||||
set pastetoggle=<F10>
|
||||
|
||||
"F11 -> F12 == resize window
|
||||
"map <F11> <ESC>:resize -5 <CR>
|
||||
"map <F12> <ESC>:resize +5 <CR>
|
||||
|
||||
python << EOF
|
||||
import os
|
||||
import sys
|
||||
import vim
|
||||
for p in sys.path:
|
||||
if os.path.isdir(p):
|
||||
vim.command(r"set path+=%s" % (p.replace(" ", r"\ ")))
|
||||
EOF
|
||||
"use ctags
|
||||
set tags+=$HOME/.vim/tags/python.ctags
|
||||
"remap tag jumping
|
||||
map <silent><C-Left> <C-T>
|
||||
map <silent><C-Right> <C-]>
|
||||
"Code Completion for python
|
||||
autocmd FileType python set omnifunc=pythoncomplete#Complete
|
||||
"remap code complete to ctrl space
|
||||
inoremap <Nul> <C-x><C-o>
|
||||
"tab nav with alt left or right
|
||||
map <silent><A-Right> :tabnext<CR>
|
||||
map <silent><A-Left> :tabprevious<CR>
|
||||
filetype plugin indent on
|
||||
python << EOL
|
||||
import vim
|
||||
def EvaluateCurrentRange():
|
||||
eval(compile('\n'.join(vim.current.range),'','exec'),globals())
|
||||
EOL
|
||||
map <C-h> :py EvaluateCurrentRange()
|
||||
|
||||
" vim:set ts=2 tw=80:
|
||||
Reference in New Issue
Block a user