" All system-wide defaults are set in $VIMRUNTIME/debian.vim (usually just
" /usr/share/vim/vimcurrent/debian.vim) and sourced by the call to :runtime
" you can find below. If you wish to change any of those settings, you should
" do it in this file (/etc/vim/vimrc), since debian.vim will be overwritten
" everytime an upgrade of the vim packages is performed. It is recommended to
" make changes after sourcing debian.vim since it alters the value of the
" 'compatible' option.
" This line should not be removed as it ensures that various options are
" properly set to work with the Vim-related packages available in Debian.
set nocompatible " be iMproved, required
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
"call vundle#begin('~/some/path/here')
" let Vundle manage Vundle, required
Plugin 'VundleVim/Vundle.vim'
Plugin 'Lokaltog/powerline', {'rtp': 'powerline/bindings/vim/'}
Plugin 'tpope/vim-fugitive'
Plugin 'kien/ctrlp.vim'
Plugin 'nvie/vim-flake8'
Plugin 'vim-syntastic/syntastic'
Bundle 'Valloric/YouCompleteMe'
Plugin 'editorconfig/editorconfig-vim'
" Plugin 'osfameron/perl-tags-vim'
" 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/'}
" Install L9 and avoid a Naming conflict if you've already installed a
" different version somewhere else.
" Plugin 'ascenator/L9', {'name': 'newL9'}
" All of your Plugins must be added before the following line
call vundle#end() " required
filetype plugin indent on " required
"python with virtualenv support
py << EOF
import os
import sys
if 'VIRTUAL_ENV' in os.environ:
project_base_dir = os.environ['VIRTUAL_ENV']
activate_this = os.path.join(project_base_dir, 'bin/activate_this.py')
execfile(activate_this, dict(__file__=activate_this))
EOF
let g:ycm_autoclose_preview_window_after_completion=1
map g :YcmCompleter GoToDefinitionElseDeclaration
" 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
" source $VIMRUNTIME/mswin.vim
" Use CTRL-S for saving, also in Insert mode
noremap :update
vnoremap :update
inoremap :update
map
map!
set enc=UTF-8
" Uncomment the next line to make Vim more Vi-compatible
" NOTE: debian.vim sets 'nocompatible'. Setting 'compatible' changes numerous
" options, so any other options should be set AFTER setting 'compatible'.
"set compatible
" Vim5 and later versions support syntax highlighting. Uncommenting the next
" line enables syntax highlighting by default.
syntax on
"This will look in the current directory for "tags", and work up the tree towards root
"until one is found. IOW, you can be anywhere in your source tree instead of just the root of it.
set tags=tags;/
"set statusline=%F%m%r%h%w\ [%L]\ [%{&ff}]\ %y\ [%p%%]\ [POS=%04l,%04v]\ %{\"[\".(&fenc==\"\"?&enc:&fenc).((exists(\"+bomb\")\ &&\ &bomb)?\",B\":\"\").\"]\ \"}%k
" | | | | | | | | | | | |
" | | | | | | | | | | | + Show encoding
" | | | | | | | | | | + current
" | | | | | | | | | | column
" | | | | | | | | | +-- current line
" | | | | | | | | +-- current % into file
" | | | | | | | +-- current syntax in
" | | | | | | | square brackets
" | | | | | | +-- current fileformat
" | | | | | +-- number of lines
" | | | | +-- preview flag in square brackets
" | | | +-- help flag in square brackets
" | | +-- readonly flag in square brackets
" | +-- rodified flag in square brackets
" +-- full path to file in the buffer
" this make the status line to 2 lines hight
set laststatus=2
set smartindent
" If using a dark background within the editing area and syntax highlighting
" turn on this option as well
"set background=dark
" Uncomment the following to have Vim jump to the last position when
" reopening a file
if has("autocmd")
au BufReadPost * if line("'\"") > 0 && line("'\"") <= line("$")
\| exe "normal g'\"" | endif
endif
" Uncomment the following to have Vim load indentation rules according to the
" detected filetype. Per default Debian Vim only load filetype specific
" plugins.
if has("autocmd")
filetype indent on
endif
" The following are commented out as they cause vim to behave a lot
" differently from regular Vi. They are highly recommended though.
"set showcmd " Show (partial) command in status line.
"set showmatch " Show matching brackets.
"set ignorecase " Do case insensitive matching
"set smartcase " Do smart case matching
"set incsearch " Incremental search
"set autowrite " Automatically save before commands like :next and :make
"set hidden " Hide buffers when they are abandoned
set mouse=a " Enable mouse usage (all modes) in terminals
set showmatch
set showmode
set shiftwidth=4
set tabstop=8
set softtabstop=4
"set noexpandtab
set expandtab
set noautoindent
set nowrap
set colorcolumn=80
set wildmode=longest,list " list all possible files|directorys if you open a file with :e or :view or :tabnew
syntax on
" Press F4 to toggle highlighting on/off, and show current value.
:noremap :set hlsearch! hlsearch?
:nnoremap :let @/='\<=expand("")\>':set hls
:nnoremap :TagbarToggle
:nmap :ts
" schaltet die Darstellung von Leerzeichen, TABs und Zeilenenden an/aus:
" " Interessante Zeichen: ^$¬|÷°~·¨¯_¢¤¥©®<>«»±¶¡¿þÞøæÐרø
" " Zuerst muss man die Zeichen angeben, die einbezogen werden sollen.
" set listchars=tab:>-,trail:·,eol:¶,extends:»,precedes:«
" map :if &listset nolistelseset listendif
set listchars=tab:>-,trail:·,eol:¶,extends:»,precedes:«
map :if &listset nolistelseset listendif
cmap :if &listset nolistelseset listendif:
imap :if &listset nolistelseset listendifa
" spell checking
if version >= 700
"let loaded_matchparen = 1
" turn spelling on by default
set nospell
set spellfile="~/.vim/user.add"
" change to german
set spelllang=en
let spellst = ["en"]
" toggle spelling with F2 key
map :set spell!:echo "Spell Check: " . strpart("OffOn", 3 * &spell, 3) *]S*
" they were using white on white
highlight PmenuSel ctermfg=black ctermbg=lightgray
" limit it to just the top 10 items
set sps=best,5
" highlighting
hi SpellBad ctermfg=Red cterm=underline
hi SpellCap ctermfg=blue cterm=underline
imap z=i
nmap z=
imap zgi
nmap zg
endif
map "+y
"map "+p
set nocp
filetype plugin on
au FileType haskell,vhdl,ada let b:comment_leader = '-- '
au FileType vim let b:comment_leader = '" '
au FileType c,cpp,java let b:comment_leader = '// '
au FileType sh,make let b:comment_leader = '# '
au FileType tex let b:comment_leader = '% '
au BufNewFile,BufRead *.wts set filetype=wlantest
noremap ,c :sil s/^/=escape(b:comment_leader,'\/')/:noh
noremap ,u :sil s/^\V=escape(b:comment_leader,'\/')//e:noh
"Map ;tf to This Function , :;tf followed by a command like %s/// replaces
"only in the current function!!
:cmap ;tf ?^{??(?,/^}/
" Find file in current directory and edit it.
function! Find(...)
if a:0==2
let path=a:1
let query=a:2
else
let path="./"
let query=a:1
endif
let ignore = " | egrep -v '.git|.svn|CVS|.swp'"
let l:list=system("find ".path." -type f -iname '*".query."*'".ignore)
let l:num=strlen(substitute(l:list, "[^\n]", "", "g"))
if l:num < 1
echo "'".query."' not found"
return
endif
if l:num == 1
exe "open " . substitute(l:list, "\n", "", "g")
else
let tmpfile = tempname()
exe "redir! > " . tmpfile
silent echon l:list
redir END
let old_efm = &efm
set efm=%f
if exists(":cgetfile")
execute "silent! cgetfile " . tmpfile
else
execute "silent! cfile " . tmpfile
endif
let &efm = old_efm
" Open the quickfix window below the current window
botright copen
call delete(tmpfile)
endif
endfunction
command! -nargs=* Find :call Find()
"colorscheme habiLight
"colorscheme eclipse
set clipboard=unnamedplus
"execute pathogen#infect()
"
autocmd BufWritePre * %s/\s\+$//e
====== Install ======
git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim
vim +PluginInstall +qall
Install YCM https://github.com/ycm-core/YouCompleteMe#linux-64-bit
sudo apt install build-essential cmake python3-dev
cd ~/.vim/bundle/YouCompleteMe
python3 install.py --clang-completer
====== Alias Helpers ======
alias ctags-perl="ctags -f tags --recurse --totals \
--exclude='.*.swp' --exclude=.svn \
--exclude=.git --exclude='*~' \
--extras=+q \
--languages=Perl \
--langmap=Perl:+.t"
alias ctags-c++="ctags -R \
--exclude='.*.swp' --exclude=.svn \
--exclude=.git --exclude='*~' \
--c++-kinds=+p \
--fields=+iaS \
--extras=+q \
--langmap=c++:.ino.c.h.cpp.hpp"
alias ctags-python="ctags -R \
--exclude='.*.swp' --exclude=.svn \
--exclude=.git --exclude='*~' \
--fields=+l \
--extras=+q \
--languages=python \
--python-kinds=-iv"
alias grn="grep -rn --exclude tags"
alias git-show-files="git log --pretty=format: --name-only -n1"
alias git-hist="git log --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"