232 lines
5.3 KiB
VimL
232 lines
5.3 KiB
VimL
if &compatible
|
|
set nocompatible
|
|
set modelines=1
|
|
endif
|
|
|
|
call plug#begin('~/.vim/bundle')
|
|
|
|
Plug 'svermeulen/vim-yoink'
|
|
Plug 'will133/vim-dirdiff'
|
|
Plug 'jaredgorski/spacecamp'
|
|
|
|
call plug#end() " required
|
|
|
|
set tabstop=4
|
|
set shiftwidth=4
|
|
set softtabstop=4
|
|
set expandtab
|
|
|
|
set encoding=utf-8
|
|
set scrolloff=10
|
|
set autoindent
|
|
set cino=l1,:0
|
|
set showmode
|
|
set showcmd
|
|
" do not force write on buffer switch
|
|
set hidden
|
|
" set visualbell
|
|
set nowrapscan
|
|
|
|
set cursorline
|
|
set ttyfast
|
|
set lazyredraw
|
|
set ruler
|
|
set backspace=eol,indent,start
|
|
" statusline {{{
|
|
set statusline=%<%f%h%m%r%=%b\ 0x%B\ \ %l,%c%V\ %P
|
|
set laststatus=2
|
|
|
|
set statusline+=\ "comment to remove trailing space
|
|
set number
|
|
set relativenumber
|
|
" Make Vim to handle long lines nicely.
|
|
set wrap
|
|
set textwidth=79
|
|
set formatoptions=cqrnb1j
|
|
|
|
syntax on
|
|
|
|
set showmatch
|
|
"set matchtime=3
|
|
"Control it with %/s///i - ignore and I - sens
|
|
set ignorecase
|
|
set smartcase
|
|
" %s///g not needed
|
|
set gdefault
|
|
set hlsearch
|
|
set incsearch
|
|
|
|
set shell=/bin/bash
|
|
set path+=**
|
|
set updatetime=100
|
|
set nospell
|
|
set spelllang=en
|
|
" Dictionary path, from which the words are being looked up.
|
|
set dictionary+=/usr/share/dict/words
|
|
set clipboard=unnamed
|
|
|
|
"set exrc
|
|
|
|
if exists("+undofile")
|
|
if isdirectory($HOME . '/.vim/undo') == 0
|
|
:silent !mkdir -p ~/.vim/undo > /dev/null 2>&1
|
|
endif
|
|
set undodir=~/.vim/undo/
|
|
set undofile
|
|
endif
|
|
|
|
let mapleader = "\\"
|
|
|
|
"nnoremap j gj
|
|
"nnoremap k gk
|
|
|
|
" Get Rid of stupid Goddamned help keys
|
|
inoremap <F1> <ESC>
|
|
nnoremap <F1> <ESC>
|
|
vnoremap <F1> <ESC>
|
|
" jj For Quicker Escaping between normal and editing mode
|
|
inoremap jj <ESC>
|
|
inoremap jk <ESC>
|
|
inoremap :w<CR> <Esc>:w<CR>i
|
|
|
|
" space one line, home,end globally increase/decrease
|
|
nnoremap <Home> zc
|
|
nnoremap <End> zo
|
|
|
|
" Map : to ; also in command mode
|
|
"nnoremap ; :
|
|
|
|
" Reselect visual block after incrementing/decrementing
|
|
vnoremap <c-a> <c-a>gv
|
|
vnoremap <c-x> <c-x>gv
|
|
|
|
nnoremap <leader>2 <esc>:set tabstop=2 softtabstop=2 shiftwidth=2<cr>
|
|
nnoremap <leader>4 <esc>:set tabstop=4 softtabstop=4 shiftwidth=4<cr>
|
|
nnoremap <leader>8 <esc>:set tabstop=8 softtabstop=8 shiftwidth=8<cr>
|
|
|
|
map <F12> :colorscheme random<CR>
|
|
|
|
nnoremap S :%s//g<LEFT><LEFT>
|
|
xnoremap S :s//g<LEFT><LEFT>
|
|
xmap <BS> x
|
|
|
|
" Make pasting done without any indentation break
|
|
set pastetoggle=<F3>
|
|
|
|
" leader Command to remove white space from a file
|
|
""nnoremap <leader>W :%s/\s\+$//<cr>:let @/=''<CR>
|
|
|
|
" This causes issues with FZF
|
|
"tnoremap <Esc> <C-W><C-W>
|
|
|
|
nnoremap <leader><space> :nohlsearch<cr>
|
|
|
|
" yoink configuration
|
|
nmap <leader>yp <plug>(YoinkPostPasteSwapBack)
|
|
nmap <leader>yn <plug>(YoinkPostPasteSwapForward)
|
|
nmap p <plug>(YoinkPaste_p)
|
|
nmap P <plug>(YoinkPaste_P)
|
|
|
|
" Wildmenu completion {{{
|
|
set wildmenu
|
|
set wildmode=list:longest
|
|
set wildignore+=.hg,.git,.svn " Version Controls"
|
|
set wildignore+=*.aux,*.out,*.toc "Latex Indermediate files"
|
|
set wildignore+=*.jpg,*.bmp,*.gif,*.png,*.jpeg "Binary Imgs"
|
|
set wildignore+=*.o,*.obj,*.exe,*.dll,*.manifest "Compiled Object files"
|
|
set wildignore+=*.spl "Compiled spelling world list"
|
|
set wildignore+=*.sw? "Vim swap files"
|
|
set wildignore+=*.DS_Store "OSX SHIT"
|
|
set wildignore+=*.luac "Lua byte code"
|
|
set wildignore+=migrations "Django migrations"
|
|
set wildignore+=*.pyc "Python Object codes"
|
|
set wildignore+=*.orig "Merge resolution files"
|
|
" }}}
|
|
|
|
match Error /\s\+$\|DU\cPA/
|
|
|
|
" Removing scrollbars
|
|
if !has("gui_running")
|
|
set background=dark
|
|
colorscheme spacecamp
|
|
" To show special characters in Vim
|
|
set listchars=tab:▸\ ,trail:¬
|
|
set list
|
|
hi clear SpellBad
|
|
hi SpellBad cterm=underline
|
|
"hi Normal ctermbg=None
|
|
endif
|
|
|
|
if &term =~ '256color'
|
|
" Disable Background Color Erase (BCE) so that color schemes
|
|
" work properly when Vim is used inside tmux and GNU screen.
|
|
" set t_ut=
|
|
endif
|
|
|
|
if has("autocmd")
|
|
"restore cursor position
|
|
autocmd BufReadPost * if line("'\"") > 0|if line("'\"") <= line("$")|exe("norm '\"")|else|exe "norm $"|endif|endif
|
|
autocmd FileType helpfile set nonumber
|
|
|
|
autocmd WinLeave * set nocursorline
|
|
autocmd WinEnter * set cursorline
|
|
|
|
" Set vim to save the file on focus out
|
|
"au FocusLost * :wa
|
|
|
|
" Resize Split When the window is resized
|
|
au VimResized * :wincmd =
|
|
endif
|
|
|
|
set foldenable
|
|
set foldlevelstart=999
|
|
set foldnestmax=5
|
|
set foldtext=FoldFormat()
|
|
set fillchars=fold:\ " comment just to remove trailing
|
|
set foldmethod=syntax
|
|
if has('folding')
|
|
setglobal foldopen+=jump
|
|
endif
|
|
|
|
function! FindAlternate()
|
|
let l:ext = 'h'
|
|
let l:curr_ext = expand('%:e')
|
|
if (l:curr_ext == 'c')
|
|
let l:ext = 'h'
|
|
elseif (l:curr_ext == 'cpp')
|
|
let l:ext = 'h'
|
|
elseif (l:curr_ext == 'h')
|
|
let l:ext = 'c'
|
|
elseif (l:curr_ext == 'hpp')
|
|
let l:ext = 'cpp'
|
|
endif
|
|
let l:file = expand('%:t:r') . '.' . l:ext
|
|
:exec 'find ' . l:file
|
|
endfunction
|
|
|
|
nnoremap <F6> :call FindAlternate()<CR>
|
|
|
|
setglobal complete-=i
|
|
setglobal virtualedit=block
|
|
setglobal shiftround
|
|
|
|
set shortmess+=c
|
|
set signcolumn=yes
|
|
set cmdheight=2
|
|
|
|
function! s:check_back_space() abort
|
|
let col = col('.') - 1
|
|
return !col || getline('.')[col - 1] =~# '\s'
|
|
endfunction
|
|
|
|
"hi None ctermbg=None ctermfg=None
|
|
|
|
let g:vim_search_pulse_mode = 'pattern'
|
|
let g:vim_search_pulse_duration = 400
|
|
|
|
"Taken from 256_noir readme:
|
|
set cursorline
|
|
highlight CursorLine cterm=NONE ctermfg=NONE ctermbg=233 guifg=NONE guibg=#121212
|
|
autocmd InsertEnter * highlight CursorLine cterm=NONE ctermfg=NONE ctermbg=234 guifg=NONE guibg=#1c1c1c
|
|
autocmd InsertLeave * highlight CursorLine cterm=NONE ctermfg=NONE ctermbg=233 guifg=NONE guibg=#121212
|