2015-12-04 16:43:45 +01:00
|
|
|
" hack to lock vim into py3
|
|
|
|
|
if has("python3")
|
|
|
|
|
py3 pass
|
|
|
|
|
endif
|
2015-12-04 02:47:24 +01:00
|
|
|
" No Compatibility. That just sucks
|
|
|
|
|
" especially annoying on redhat/windows/osx
|
|
|
|
|
set nocompatible
|
2015-12-04 10:17:07 +01:00
|
|
|
|
|
|
|
|
filetype off " required
|
|
|
|
|
|
|
|
|
|
" set the runtime path to include Vundle and initialize
|
|
|
|
|
set rtp+=~/.vim/bundle/Vundle.vim
|
|
|
|
|
call vundle#begin()
|
|
|
|
|
" alternatively, pass a path where Vundle should install plugins
|
2015-12-18 03:04:13 +01:00
|
|
|
" call vundle#begin('~/some/path/here')
|
2015-12-04 10:17:07 +01:00
|
|
|
|
|
|
|
|
" let Vundle manage Vundle, required
|
|
|
|
|
Plugin 'VundleVim/Vundle.vim'
|
|
|
|
|
|
2015-12-04 14:34:42 +01:00
|
|
|
" Python Mode "
|
|
|
|
|
Plugin 'klen/python-mode'
|
|
|
|
|
|
2015-12-04 16:43:45 +01:00
|
|
|
" Edit files using sudo/su
|
|
|
|
|
Plugin 'chrisbra/SudoEdit.vim'
|
|
|
|
|
|
2015-12-04 11:30:52 +01:00
|
|
|
" Fuzzy finder (files, mru, etc)
|
|
|
|
|
Plugin 'ctrlpvim/ctrlp.vim'
|
2015-12-04 16:43:45 +01:00
|
|
|
Plugin 'fisadev/vim-ctrlp-cmdpalette'
|
2015-12-04 11:30:52 +01:00
|
|
|
|
2015-12-04 14:34:42 +01:00
|
|
|
Plugin 'YankRing.vim'
|
2015-12-04 16:43:45 +01:00
|
|
|
Plugin 'scrooloose/nerdtree'
|
2015-12-04 12:16:49 +01:00
|
|
|
|
2017-02-24 13:26:09 +01:00
|
|
|
Plugin 'stephanlukasczyk/vim-syntax-specautomata'
|
|
|
|
|
|
2017-04-02 07:57:56 +02:00
|
|
|
Plugin 'rust-lang/rust.vim'
|
|
|
|
|
|
2015-12-04 10:17:07 +01:00
|
|
|
" The following are examples of different formats supported.
|
|
|
|
|
" Keep Plugin commands between vundle#begin/end.
|
|
|
|
|
" plugin on GitHub repo
|
|
|
|
|
"Plugin 'tpope/vim-fugitive'
|
|
|
|
|
" plugin from http://vim-scripts.org/vim/scripts.html
|
|
|
|
|
"Plugin 'L9'
|
|
|
|
|
" Git plugin not hosted on GitHub
|
|
|
|
|
"Plugin 'git://git.wincent.com/command-t.git'
|
|
|
|
|
" git repos on your local machine (i.e. when working on your own plugin)
|
|
|
|
|
"Plugin 'file:///home/gmarik/path/to/plugin'
|
|
|
|
|
" The sparkup vim script is in a subdirectory of this repo called vim.
|
|
|
|
|
" Pass the path to set the runtimepath properly.
|
|
|
|
|
"Plugin 'rstacruz/sparkup', {'rtp': 'vim/'}
|
|
|
|
|
" Avoid a name conflict with L9
|
|
|
|
|
"Plugin 'user/L9', {'name': 'newL9'}
|
|
|
|
|
|
|
|
|
|
" All of your Plugins must be added before the following line
|
|
|
|
|
call vundle#end() " required
|
|
|
|
|
filetype plugin indent on " required
|
|
|
|
|
" To ignore plugin indent changes, instead use:
|
|
|
|
|
"filetype plugin on
|
|
|
|
|
"
|
|
|
|
|
" Brief help
|
|
|
|
|
" :PluginList - lists configured plugins
|
|
|
|
|
" :PluginInstall - installs plugins; append `!` to update or just :PluginUpdate
|
|
|
|
|
" :PluginSearch foo - searches for foo; append `!` to refresh local cache
|
|
|
|
|
" :PluginClean - confirms removal of unused plugins; append `!` to auto-approve removal
|
|
|
|
|
"
|
|
|
|
|
" see :h vundle for more details or wiki for FAQ
|
|
|
|
|
" Put your non-Plugin stuff after this line
|
|
|
|
|
|
|
|
|
|
|
2015-12-04 11:30:52 +01:00
|
|
|
" ---------- Plugin conf ----------- "
|
|
|
|
|
|
|
|
|
|
" Ctrl-P"
|
|
|
|
|
" 'c' - the directory of the current file.
|
|
|
|
|
" 'a' - the directory of the current file, unless it is a subdirectory of the
|
|
|
|
|
" cwd
|
|
|
|
|
" 'r' - the nearest ancestor of the current file that contains one of these
|
|
|
|
|
" directories or files: .git .hg .svn .bzr _darcs
|
|
|
|
|
let g:ctrlp_working_path_mode = 'ra'
|
|
|
|
|
" gitignore ignore
|
|
|
|
|
let g:ctrlp_user_command = ['.git/', 'git --git-dir=%s/.git ls-files -oc --exclude-standard']
|
|
|
|
|
" ignore scm dirs
|
|
|
|
|
let g:ctrlp_custom_ignore = '\v[\/]\.(git|hg|svn)$'
|
|
|
|
|
" some more ignores
|
|
|
|
|
set wildignore+=*/tmp/*,*.so,*.swp,*.zip,*.tar.*,*.tar " MacOSX/Linux
|
|
|
|
|
set wildignore+=*\\tmp\\*,*.swp,*.zip,*.exe " Windows
|
2015-12-04 16:43:45 +01:00
|
|
|
let g:ctrlp_cmdpalette_execute = 1
|
|
|
|
|
nnoremap <silent> <F10> :CtrlPBuffer<CR>
|
2015-12-04 11:30:52 +01:00
|
|
|
|
2015-12-04 10:17:07 +01:00
|
|
|
|
|
|
|
|
" chrisbra/SudoEdit.vim
|
|
|
|
|
:let g:sudo_no_gui=1
|
|
|
|
|
|
2015-12-04 12:16:49 +01:00
|
|
|
" Python mode
|
|
|
|
|
" Enable colorcolumn display at max_line_length *'g:pymode_options_colorcolumn'*
|
|
|
|
|
let g:pymode_options_colorcolumn = 1
|
2016-07-10 14:24:05 +02:00
|
|
|
" let g:pymode_options_max_line_length = 100
|
2016-02-08 04:28:13 +01:00
|
|
|
let g:pymode_rope = 0
|
|
|
|
|
|
2015-12-04 16:43:45 +01:00
|
|
|
if has("python3")
|
|
|
|
|
let g:pymode_python = 'python3'
|
|
|
|
|
endif
|
2015-12-04 14:34:42 +01:00
|
|
|
|
|
|
|
|
" yankring
|
|
|
|
|
let g:yankring_replace_n_pkey = '<m-p>'
|
|
|
|
|
let g:yankring_replace_n_nkey = '<m-n>'
|
|
|
|
|
nnoremap <silent> <F11> :YRShow<CR>
|
2015-12-04 16:43:45 +01:00
|
|
|
|
|
|
|
|
" NERDTree
|
|
|
|
|
nnoremap <silent> <F9> :NERDTreeToggle<CR>
|
|
|
|
|
|
2015-12-04 11:30:52 +01:00
|
|
|
" -------------------------------------------"
|
|
|
|
|
|
2015-12-04 02:47:24 +01:00
|
|
|
set backspace=indent,eol,start
|
|
|
|
|
|
|
|
|
|
" My PC is fast enough, do syntax highlight syncing from start
|
|
|
|
|
autocmd BufEnter * :syntax sync fromstart
|
|
|
|
|
|
|
|
|
|
" Some File Type Stuff
|
|
|
|
|
" --------------------
|
|
|
|
|
" Enable filetype plugins and indention
|
|
|
|
|
filetype on
|
|
|
|
|
|
|
|
|
|
" Enable Syntax Colors
|
|
|
|
|
" --------------------
|
|
|
|
|
" in GUI mode we go with fruity and Monaco 12
|
|
|
|
|
" in CLI mode desert looks better (fruity is GUI only)
|
|
|
|
|
syntax on
|
|
|
|
|
if has("gui_running")
|
|
|
|
|
colorscheme industry
|
|
|
|
|
" set guifont=Monaco:h12
|
|
|
|
|
else
|
|
|
|
|
colorscheme desert
|
|
|
|
|
endif
|
|
|
|
|
|
2015-12-04 10:17:07 +01:00
|
|
|
|
2015-12-23 01:39:12 +01:00
|
|
|
set showcmd " Show (partial) command in status line.
|
|
|
|
|
set showmatch " Show matching brackets.
|
|
|
|
|
|
|
|
|
|
set wildmenu " command-line completion operates in an enhanced mode
|
2015-12-04 10:17:07 +01:00
|
|
|
set scrolloff=3 " scroll lines above/below cursor
|
|
|
|
|
set history=1000 " default 20
|
|
|
|
|
set incsearch " "live"-search
|
2015-12-04 11:30:52 +01:00
|
|
|
" set ignorecase "ignore case when searching"
|
|
|
|
|
" set smartcase " sensitive with uppercase
|
|
|
|
|
set nrformats+=alpha " incr/decr letters C-a/-x
|
2015-12-04 10:17:07 +01:00
|
|
|
|
2015-12-04 02:47:24 +01:00
|
|
|
" Automatische Einrückung (Globale Konfiguration)
|
|
|
|
|
set smartindent
|
|
|
|
|
set smarttab
|
|
|
|
|
|
2015-12-04 12:16:49 +01:00
|
|
|
set nofoldenable " unfold by default
|
2015-12-04 11:30:52 +01:00
|
|
|
|
2015-12-04 02:47:24 +01:00
|
|
|
" UTF-8 als Default-Encoding
|
|
|
|
|
set enc=utf-8
|
|
|
|
|
|
|
|
|
|
" Ein Tab entspricht vier Leerzeichen (wie in PEP 8 definiert)
|
|
|
|
|
" Dies aber nur für python, damit es nicht mit anderen (ruby, c, Makefiles) kollidiert
|
|
|
|
|
autocmd FileType python setlocal expandtab shiftwidth=4 tabstop=4 softtabstop=4
|
|
|
|
|
|
2015-12-21 23:03:19 +01:00
|
|
|
"
|
|
|
|
|
autocmd FileType json setlocal expandtab shiftwidth=3 tabstop=3 softtabstop=3
|
|
|
|
|
|
2016-07-10 13:06:48 +02:00
|
|
|
autocmd FileType c setlocal expandtab shiftwidth=4 tabstop=4 softtabstop=4
|
2015-12-23 01:39:12 +01:00
|
|
|
|
2015-12-04 02:47:24 +01:00
|
|
|
" enable mouse
|
|
|
|
|
set mouse=nvc
|
|
|
|
|
|
|
|
|
|
" systags
|
|
|
|
|
set ofu=syntaxcomplete#Complete
|
|
|
|
|
set tags+=~/.vim/systags
|
|
|
|
|
|
|
|
|
|
" relativenumber
|
|
|
|
|
set relativenumber
|
|
|
|
|
set number
|
2015-12-04 10:17:07 +01:00
|
|
|
|
2015-12-17 22:04:00 +01:00
|
|
|
" gvim without toolbar
|
|
|
|
|
set guioptions-=T
|
|
|
|
|
|
2015-12-04 10:17:07 +01:00
|
|
|
""" Return to last edit position when opening files {{{
|
|
|
|
|
augroup LastPosition
|
|
|
|
|
autocmd! BufReadPost *
|
|
|
|
|
\ if line("'\"") > 0 && line("'\"") <= line("$") |
|
|
|
|
|
\ exe "normal! g`\"" |
|
|
|
|
|
\ endif
|
|
|
|
|
augroup END
|
|
|
|
|
|
2015-12-17 22:04:00 +01:00
|
|
|
|
|
|
|
|
|
2015-12-04 10:41:11 +01:00
|
|
|
" Keep undo history across sessions by storing it in a file
|
|
|
|
|
let vimDir = '$HOME/.vim'
|
|
|
|
|
if has('persistent_undo')
|
|
|
|
|
let myUndoDir = expand(vimDir . '/undodir')
|
|
|
|
|
" Create dirs
|
|
|
|
|
call system('mkdir ' . vimDir)
|
|
|
|
|
call system('mkdir ' . myUndoDir)
|
|
|
|
|
let &undodir = myUndoDir
|
|
|
|
|
set undofile
|
2015-12-04 10:17:07 +01:00
|
|
|
set undolevels=500 " max undos stored
|
|
|
|
|
set undoreload=10000 " buffer stored undos
|
|
|
|
|
endif
|
|
|
|
|
|
2015-12-04 11:30:52 +01:00
|
|
|
" --- Keybindings ---- "
|
|
|
|
|
|
2015-12-04 18:43:03 +01:00
|
|
|
set pastetoggle=<F2>
|