From 06af0989d9a5e58b36019b7644f2321dbf67a337 Mon Sep 17 00:00:00 2001 From: Yann Herklotz Date: Thu, 26 Apr 2018 23:08:41 +0100 Subject: Adding vim config --- vim/.vimrc | 190 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 190 insertions(+) create mode 100644 vim/.vimrc (limited to 'vim') diff --git a/vim/.vimrc b/vim/.vimrc new file mode 100644 index 0000000..2e555fc --- /dev/null +++ b/vim/.vimrc @@ -0,0 +1,190 @@ +"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +" Adapted from " +" https://github.com/amix/vimrc/blob/master/vimrcs/basic.vim " +"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" + +"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +" => General " +"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" + +" Sets how many lines of history vim as to +" remember +set history=500 + +" Enable filetype plugins +filetype plugin on +filetype indent on + +" Automatically update file when it changes +" on disk +set autoread + +" With the mapleader it's possible to write +" commands faster +let mapleader="," + +" Fast saving +nmap w :w! + +" :W sudo saves the file +command W w !sudo tee % > /dev/null + +"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +" => Vim User Interface " +"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" + +" Set 7 lines to the cursor when moving +" vertically +set so=7 + +" Avoid garbled characters in Chinese language windows OS +let $LANG='en' +set langmenu=en +source $VIMRUNTIME/delmenu.vim +source $VIMRUNTIME/menu.vim + +" Turn on wildmenu +set wildmenu + +" Always show current position +set ruler + +" Configure backspace so it acts as it should act +set backspace=eol,start,indent +set whichwrap+=<,>,h,l + +" Ignore case when searching +set ignorecase + +" When searching try to be smart about cases +set smartcase + +" Highlight search results +set hlsearch + +" Makes search act like search in modern browsers +set incsearch + +" Don't redraw while executing macros (good performance config) +set lazyredraw + +" For regular expressions turn magic on +set magic + +" Show matching brackets when text indicator is over them +set showmatch +" How many tenths of a second to blink when matching brackets +set mat=2 + +" No annoying sound on errors +set noerrorbells +set novisualbell +set t_vb= +set tm=500 + +" Add a bit extra margin to the left +set foldcolumn=1 + +"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +" => Colors and Fonts " +"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" + +" Enable syntax highlighting +syntax enable + +try + colorscheme gruvbox +catch +endtry + +set background=dark + +" Set utf8 as standard encoding and en_US as the standard language +set encoding=utf8 + +"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +" => Files, backups and undo " +"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" + +" Turn backup off, since most stuff is in SVN, git et.c anyway... +set nobackup +set nowb +set noswapfile + +"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +" => Text, tab and indent related " +"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" + +" Use spaces instead of tabs +set expandtab + +" Be smart when using tabs ;) +set smarttab + +" 1 tab == 4 spaces +set shiftwidth=4 +set tabstop=4 + +" Linebreak on 500 characters +set lbr +set tw=500 + +set ai "Auto indent +set si "Smart indent +set wrap "Wrap lines + + +"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +" => Moving around, tabs, windows and buffers " +"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +" Map to / (search) and Ctrl- to ? (backwards search) +map / +map ? + +" Disable highlight when is pressed +map :noh + +" Smart way to move between windows +map j +map k +map h +map l + +" Close the current buffer +map bd :Bclose:tabclosegT + +" Close all the buffers +map ba :bufdo bd + +map l :bnext +map h :bprevious + +" Useful mappings for managing tabs +map tn :tabnew +map to :tabonly +map tc :tabclose +map tm :tabmove +map t :tabnext + +" Let 'tl' toggle between this and the last accessed tab +let g:lasttab = 1 +nmap tl :exe "tabn ".g:lasttab +au TabLeave * let g:lasttab=tabpagenr() + + +" Opens a new tab with the current buffer's path +" Super useful when editing files in the same directory +map te :tabedit =expand("%:p:h")/ + +" Switch CWD to the directory of the open buffer +map cd :cd %:p:h:pwd + +" Specify the behavior when switching between buffers +try + set switchbuf=useopen,usetab,newtab + set stal=2 +catch +endtry + +" Return to last edit position when opening files (You want this!) +au BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g'\"" | endif -- cgit