125 lines
2.8 KiB
VimL
Executable file
125 lines
2.8 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
|
|
" Monokai background
|
|
highlight NonText ctermbg=235
|
|
|
|
"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()
|