You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
282 lines
6.7 KiB
282 lines
6.7 KiB
" vim: set fdm=marker fdc=3 :
|
|
|
|
" vim config dir path
|
|
if has("win32")
|
|
let g:vimdir=expand('~/vimfiles/')
|
|
else
|
|
let g:vimdir=expand('~/.vim/')
|
|
endif
|
|
|
|
" load plugins using vundle {{{
|
|
if has("win32")
|
|
source ~/vimfiles/plug.vim
|
|
else
|
|
source ~/.vim/plug.vim
|
|
endif
|
|
" }}}
|
|
" set colorscheme {{{
|
|
if &term =~# '^\(screen\|xterm\)'
|
|
set t_Co=256
|
|
let g:solarized_termcolors=256
|
|
endif
|
|
if (&t_Co >= 255 && &term !~ '^linux$') || has("gui_running")
|
|
colorscheme wombat256_thomasba
|
|
else
|
|
colorscheme elflord2
|
|
endif
|
|
" }}}
|
|
" GUI settings {{{
|
|
if has('gui_running')
|
|
" Make shift-insert work like in Xterm
|
|
map <S-Insert> <MiddleMouse>
|
|
map! <S-Insert> <MiddleMouse>
|
|
set guifont="Monospace 10"
|
|
" Nooo, dont blink!!
|
|
set guicursor=a:blinkon0
|
|
endif
|
|
" }}}
|
|
" editor settings {{{
|
|
syntax on
|
|
filetype plugin indent on
|
|
" delete always on backspace
|
|
set backspace=indent,eol,start
|
|
set hidden
|
|
set number
|
|
set numberwidth=4
|
|
set shiftwidth=4
|
|
set ruler
|
|
set showmode
|
|
set noexrc
|
|
set noerrorbells
|
|
set nobackup
|
|
set wrap
|
|
set ts=4
|
|
set diffopt+=iwhite
|
|
set history=50
|
|
|
|
set showcmd
|
|
set showmatch
|
|
set smartcase
|
|
|
|
set ignorecase
|
|
set title
|
|
set ttyfast
|
|
set hlsearch
|
|
set spelllang=de_de,en
|
|
set copyindent
|
|
" }}}
|
|
" move by screen lines, not by real lines - great for creative writing {{{
|
|
nnoremap j gj
|
|
nnoremap k gk
|
|
nnoremap <Up> gk
|
|
nnoremap <Down> gj
|
|
" also in visual mode
|
|
vnoremap j gj
|
|
vnoremap k gk
|
|
vnoremap <Up> gk
|
|
vnoremap <Down> gj
|
|
" }}}
|
|
" fileencoding {{{
|
|
set encoding=utf-8
|
|
set fileencodings=ucs-bom,utf-8,latin,windows-1252
|
|
" }}}
|
|
" TOhtml settings {{{
|
|
let g:html_prevent_copy = "fn"
|
|
let html_use_xhtml=1
|
|
let html_use_css=1
|
|
" }}}
|
|
" slightly highlight rows and columns {{{
|
|
"set cursorline
|
|
"set cursorcolumn
|
|
" }}}
|
|
" mail {{{
|
|
augroup mail
|
|
autocmd!
|
|
autocmd FileType mail set textwidth=70 wrap fo=tcrq
|
|
augroup END
|
|
" }}}
|
|
" auto completion and menu {{{
|
|
if has("wildmenu")
|
|
set wildignore+=*.a,*.o
|
|
set wildignore+=.DS_Store,.git,.hg,.svn
|
|
set wildignore+=*~,*.swp,*.tmp
|
|
set wildmenu
|
|
set wildmode=list,longest,full
|
|
inoremap <C-f> <C-X><C-F>
|
|
endif " }}}
|
|
" plugins {{{
|
|
" syntastic {{{
|
|
let g:syntastic_always_populate_loc_list = 1
|
|
let g:syntastic_auto_loc_list = 1
|
|
let g:syntastic_check_on_open = 1
|
|
let g:syntastic_check_on_wq = 0
|
|
|
|
let g:syntastic_perl_checkers = ['perl']
|
|
let g:syntastic_enable_perl_checker = 1
|
|
let g:syntastic_python_checkers = ['pylint']
|
|
let g:syntastic_python_pylint_args = '--indent-string="\t"'
|
|
let g:syntastic_php_checkers = ['php']
|
|
let g:syntastic_html_tidy_ignore_errors = ['warning: <div> proprietary attribute "data-role"', '<input> proprietary attribute "required"', '<input> proprietary attribute "pattern"', '<select> proprietary attribute "required"']
|
|
" }}}
|
|
" github {{{
|
|
let g:github_dashboard = { 'username': $GITHUB_USERNAME, 'password': $GITHUB_TOKEN }
|
|
let g:github_access_token = $GITHUB_TOKEN
|
|
" }}}
|
|
" CtrlP {{{
|
|
nmap <C-b> :CtrlPBuffer<cr>
|
|
" }}}
|
|
" Move {{{
|
|
let g:move_key_modifier = 'C'
|
|
" }}}
|
|
" vimux {{{
|
|
" Set tmux pane percentage
|
|
let g:VimuxHeight = "30"
|
|
" Split tmux pane horizontally
|
|
let g:VimuxOrientation = "h"
|
|
" Prompt for a command to run
|
|
noremap <leader>vp :VimuxPromptCommand<CR>
|
|
" }}}
|
|
" NERDTree {{{
|
|
" Hide latex output
|
|
let NERDTreeIgnore=['\~$','\.\(aux\|nav\|out\|snm\|toc\|vrb\|o\)$']
|
|
let g:nerdtree_plugin_open_cmd = "xdg-open"
|
|
" }}}
|
|
" Indent Guide {{{
|
|
let g:indent_guides_start_level = 1
|
|
let g:indent_guides_guide_size = 1
|
|
" }}}
|
|
" /plugins }}}
|
|
" markdown {{{
|
|
let g:vim_markdown_frontmatter=1
|
|
let g:vim_markdown_folding_disabled=1
|
|
" Underline (Markdown Style)
|
|
nnoremap <leader>= YpVr=
|
|
nnoremap <leader>- YpVr-
|
|
" }}}
|
|
let g:mcabber_mention='thomasba'
|
|
|
|
nnoremap , :
|
|
|
|
" hightlight wrapped line
|
|
set showbreak=↪\
|
|
|
|
" Map keys to toggle functions
|
|
function! MapToggle(key, opt)
|
|
let cmd = ':set '.a:opt.'! \| set '.a:opt."?\<CR>"
|
|
exec 'nnoremap '.a:key.' '.cmd
|
|
exec 'inoremap '.a:key." \<C-O>".cmd
|
|
endfunction
|
|
|
|
function! NumberToggle()
|
|
if(&relativenumber == 1)
|
|
set number
|
|
else
|
|
set relativenumber
|
|
endif
|
|
endfunc
|
|
nnoremap <C-n> :call NumberToggle()<cr>
|
|
|
|
command! -nargs=+ MapToggle call MapToggle(<f-args>)
|
|
" Keys & functions {{{
|
|
" Insert timestamp (insert mode)
|
|
if has("win32")
|
|
" to get the +xx:xx form we need to use powershell :-(
|
|
inoremap <expr> <F1> substitute(system("powershell -noprofile -command Get-Date -Format 'yyyy-MM-ddTHH:mm:sszzzz: '"),'[\r\n]*$','','')
|
|
else
|
|
inoremap <expr> <F1> strftime('%Y-%m-%dT%H:%I:%S%z: ')
|
|
endif
|
|
" toggle NERDTree (normal & input-mode)
|
|
inoremap <F2> <esc>:NERDTreeToggle<cr>
|
|
nnoremap <F2> :NERDTreeToggle<cr>
|
|
" toggle Tagbar (normal & input-mode)
|
|
inoremap <F3> <esc>:TagbarToggle<cr>
|
|
nnoremap <F3> :TagbarToggle<cr>
|
|
" toggle different editor settings (normal & input-mode)
|
|
MapToggle <F4> number
|
|
MapToggle <F5> spell
|
|
MapToggle <F6> paste
|
|
MapToggle <F7> hlsearch
|
|
MapToggle <F8> wrap
|
|
" toggle current fold
|
|
inoremap <F9> <C-O>za
|
|
nnoremap <F9> za
|
|
onoremap <F9> <C-C>za
|
|
vnoremap <F9> zf
|
|
" create ctags cache
|
|
nnoremap <F10> :!ctags -R<cr>
|
|
" previous buffer
|
|
nnoremap <F11> :bp<cr>
|
|
" next buffer
|
|
nnoremap <F12> :bn<cr>
|
|
" }}}
|
|
|
|
" make mcabber log pretty readable
|
|
function! Mcabber()
|
|
exec ':%s/[ ]\+$//'
|
|
exec ':%s/^M[IR] \(\d\{4\}\)\(\d\d\)\(\d\d\)T\(\d\d:\d\d:\d\d\)Z \d\{3\}/\1-\2-\3 \4/'
|
|
endfunction
|
|
command! Mcabber call Mcabber()
|
|
|
|
" Mail quote transforming
|
|
nmap ;m :%s/^\(> \)\+>/\=substitute(submatch(0),'> ','>','g')/ge<cr>ggVGgq
|
|
nmap ;h :%s/^\(> \)\+>/\=substitute(submatch(0),'> ','>','g')/ge<cr>gg/^$<cr>VGgq
|
|
nmap ;p ?^$<cr>V/^$<cr>gqk<end>:nohl<cr>
|
|
|
|
" save with sudo
|
|
cmap w!! w !sudo tee % >/dev/null
|
|
|
|
" help deobfuscate code
|
|
function! CleanUpObfuscatedCode()
|
|
exec ':%s/\([{};]\)/\1\r/g'
|
|
exec ':%s/\\x\([0-9a-zA-Z]\{2\}\)/\=nr2char(str2nr(submatch(1),16))/g'
|
|
exec 'normal gg=G'
|
|
endfunction
|
|
command! CleanUpObfuscatedCode call CleanUpObfuscatedCode()
|
|
|
|
let g:airline#extensions#tabline#enabled = 1
|
|
let g:airline_powerline_fonts = 1
|
|
let g:airline_theme = 'badwolf'
|
|
if has("win32")
|
|
" Workaround on windows (bad performance)
|
|
let g:airline_extensions = []
|
|
let g:airline_highlighting_cache = 1
|
|
endif
|
|
set laststatus=2
|
|
|
|
let mapleader = "-"
|
|
let maplocalleader = "\\"
|
|
|
|
noremap <leader>y "+y
|
|
noremap <leader>Y "+Y
|
|
noremap <leader>p "+p
|
|
|
|
"let g:neocomplcache_enable_at_startup = 1
|
|
let g:indent_guides_auto_colors = 0
|
|
|
|
let g:tex_flavor = "latex"
|
|
|
|
" Large files >= 200
|
|
let g:LargeFile = 200
|
|
|
|
set suffixes=.bak,~,.swp,.o,.info,.aux,.log,.dvi,.bbl,.blg,.brf,.cb,.ind,.idx,.ilg,.inx,.out,.toc
|
|
|
|
let g:languagetool_lang = "de"
|
|
let g:languagetool_jar = "/usr/share/java/languagetool/languagetool.jar"
|
|
|
|
set statusline+=%#warningmsg#
|
|
set statusline+=%{SyntasticStatuslineFlag()}
|
|
set statusline+=%*
|
|
|
|
let g:pymode_python = 'python3'
|
|
set modeline
|
|
|
|
com! FormatJSON %!python -m json.tool
|
|
|
|
function! DokuWiki()
|
|
if filereadable($HOME.'/.vimrc.dokuvimki')
|
|
source $HOME/.vimrc.dokuvimki
|
|
endif
|
|
:DokuVimKi
|
|
endfunction
|
|
command! DokuWiki call DokuWiki()
|