dotfiles/vim/.vimrc
2017-05-22 16:05:55 +02:00

123 lines
2.7 KiB
VimL
Executable file

call plug#begin('~/.vim/plugged')
Plug 'https://github.com/scrooloose/nerdtree.git'
Plug 'https://github.com/vim-airline/vim-airline'
Plug 'https://github.com/vim-airline/vim-airline-themes'
Plug 'https://github.com/powerline/fonts'
Plug 'https://github.com/tpope/vim-fugitive'
Plug 'https://github.com/Yggdroot/indentLine'
"Indent automiatically depending on filetype
filetype plugin on
set autoindent
filetype indent on
"Set syntax on
syntax enable
" Create the `tags` file (may need to install ctags first)
command! MakeTags !ctags -R .
" 4 spaces instead of tabs indentation
set shiftwidth=4 tabstop=4 softtabstop=4 expandtab
" Fold methods based on indents
" zo to open folds, zc to close
set foldmethod=indent
set foldlevel=99
" FINDING FILES
" Search down into subfolders
" Provides tab-completion for all file-related tasks
" " - Hit tab to :find by partial match
" - Use * to make it fuzzy
set path+=**
" Display all matching files when we tab complete
set wildmenu
set backspace=2
set background=dark
" Vim & Tmux background color fix
set t_ut=
" Terminal colors
"Colorscheme
colorscheme monokai
"Automatically source vimrc on save.
autocmd! bufwritepost $MYVIMRC source $MYVIMRC
"Line numbers
set number
"Changes to current directory when creating new files
set autochdir
"Higlhight search
set hls
"Search as characters are entered
set incsearch
"Line for linewrapping
set colorcolumn=80
set textwidth=80
"Remove temporary swap file
set nobackup
set noswapfile
"Wrap text instead of being on one line
set lbr
"Paste mode toggle
set pastetoggle=<F2>
:map <F5> :e <CR>
"Default Colors for CursorLine
set cursorline
"Activate statusbar
set laststatus=2
"Copy to clipboard
vnoremap y "+y
vnoremap x "+x
vnoremap c "+c
"Built-in completion
function! Smart_TabComplete()
let line = getline('.') " current line
let substr = strpart(line, -1, col('.')+1) " from the start of the current
" of the cursor
let substr = matchstr(substr, "[^ \t]*$") " word till cursor
if (strlen(substr)==0) " nothing to match on empty string
return "\<tab>"
endif
let has_period = match(substr, '\.') != -1 " position of period, if any
let has_slash = match(substr, '\/') != -1 " position of slash, if any
if (!has_period && !has_slash)
return "\<C-X>\<C-P>" " existing text matching
elseif ( has_slash )
return "\<C-X>\<C-F>" " file matching
else
return "\<C-X>\<C-O>" " plugin matching
endif
endfunction
inoremap <tab> <c-r>=Smart_TabComplete()<CR>
" Plugins
" Nerdtree
map <C-e> :NERDTreeToggle<CR>
" Airline
let g:airline_theme = 'distinguished'
let g:airline_section_y = '%{hostname()}'
let g:airline_section_b = '%{fugitive#statusline()}'
let g:airline_powerline_fonts = 1
call plug#end()