284 lines
7.3 KiB
VimL
284 lines
7.3 KiB
VimL
|
|
execute pathogen#infect()
|
|||
|
|
"set encoding=utf-8
|
|||
|
|
set nocompatible
|
|||
|
|
set hidden " background buffers
|
|||
|
|
set history=1000
|
|||
|
|
set wildmenu " tab complete like bash
|
|||
|
|
" set ignorecase " ignore case for search
|
|||
|
|
" set smartcase " but if capital letter, make case sensitive again
|
|||
|
|
set scrolloff=3 " keep 3 lines before/after
|
|||
|
|
set bs=2 " backspace command, alt: indent,eol,start
|
|||
|
|
set noexpandtab
|
|||
|
|
set tabstop=4
|
|||
|
|
set softtabstop=4 " soft tab, only important if tabstop > than softtabstop
|
|||
|
|
set shiftwidth=4 " if > or < is used
|
|||
|
|
set ruler
|
|||
|
|
syn on
|
|||
|
|
filetype plugin indent on " eg, sets spaces insted of tabs for python
|
|||
|
|
set autoindent
|
|||
|
|
" set smartindent
|
|||
|
|
set laststatus=2 " always show bottom info line
|
|||
|
|
"set cmdheight=2 " bottom info bar hight, keep at 1 for the moment, any
|
|||
|
|
set showtabline=1 " top tab bar, only if tabs are used
|
|||
|
|
set incsearch " show match during search
|
|||
|
|
set showmatch
|
|||
|
|
set showcmd
|
|||
|
|
set showmode
|
|||
|
|
set hlsearch
|
|||
|
|
set pastetoggle=<F11>
|
|||
|
|
set nolbr
|
|||
|
|
set formatoptions+=j
|
|||
|
|
"set cursorline " highlight cursor pos
|
|||
|
|
set ttyfast " smoother changes
|
|||
|
|
"set t_Co=256
|
|||
|
|
set whichwrap=b,s,h,l,<,>,[,] " move freely between files
|
|||
|
|
" keep selected visiual in motion
|
|||
|
|
vnoremap < <gv
|
|||
|
|
vnoremap > >gv
|
|||
|
|
" easymotion search set
|
|||
|
|
let g:EasyMotion_do_mapping = 0
|
|||
|
|
nmap s <Plug>(easymotion-overwin-f2)
|
|||
|
|
map <Leader>j <Plug>(easymotion-j)
|
|||
|
|
map <Leader>k <Plug>(easymotion-k)
|
|||
|
|
"set autoread " auto read file on change
|
|||
|
|
" default listchars
|
|||
|
|
set listchars=tab:\→\ ,trail:▫︎,nbsp:•,eol:¶,extends:»,precedes:«
|
|||
|
|
" show break in no wrap lines
|
|||
|
|
"set showbreak=>\
|
|||
|
|
let &showbreak = '↳ '
|
|||
|
|
let g:bufferline_echo=0
|
|||
|
|
let g:bufferline_solo_highlight=1
|
|||
|
|
" line number column different
|
|||
|
|
autocmd ColorScheme * highlight LineNr ctermfg=grey
|
|||
|
|
"autocmd ColorScheme * highlight CursorLineNr ctermbg=black ctermfg=darkyellow
|
|||
|
|
"autocmd ColorScheme * highlight CursorLine ctermbg=darkgrey
|
|||
|
|
"autocmd ColorScheme * highlight SignColumn ctermbg=black
|
|||
|
|
" better search highlight
|
|||
|
|
autocmd ColorScheme * highlight Search ctermfg=black ctermbg=yellow
|
|||
|
|
" highlight white spaces
|
|||
|
|
autocmd ColorScheme * highlight ExtraWhitespace ctermbg=red
|
|||
|
|
" highlight white spaces at the end of a line
|
|||
|
|
autocmd BufWinEnter * match ExtraWhitespace /\s\+$/
|
|||
|
|
autocmd InsertEnter * match ExtraWhitespace /\s\+\%#\@<!$/
|
|||
|
|
autocmd InsertLeave * match ExtraWhitespace /\s\+$/
|
|||
|
|
autocmd BufWinLeave * call clearmatches()
|
|||
|
|
" git gutter background color
|
|||
|
|
"let g:gitgutter_override_sign_column_highlight=0
|
|||
|
|
" always show sign column
|
|||
|
|
"set signcolumn=yes
|
|||
|
|
let g:NERDTreeMapMenu='M'
|
|||
|
|
let g:SignatureMarkTextHLDynamic=1
|
|||
|
|
|
|||
|
|
if &diff
|
|||
|
|
set t_Co=256
|
|||
|
|
set background=dark
|
|||
|
|
colorscheme peaksea
|
|||
|
|
else
|
|||
|
|
"colorscheme desert
|
|||
|
|
"colorscheme badwolf
|
|||
|
|
colorscheme default
|
|||
|
|
"colorscheme afterglow
|
|||
|
|
"colorscheme Tomorrow
|
|||
|
|
endif
|
|||
|
|
|
|||
|
|
"let g:airline_theme='sol'
|
|||
|
|
let g:airline_theme='light'
|
|||
|
|
"let g:airline_theme='dark'
|
|||
|
|
"let g:airline_solarized_bg='dark'
|
|||
|
|
"let g:airline_tomorrow_bg='light'
|
|||
|
|
let g:airline_powerline_fonts=0
|
|||
|
|
" alternative buffer/tab bar on top
|
|||
|
|
let g:airline#extensions#tabline#enabled = 0
|
|||
|
|
let g:airline#extensions#tabline#tab_nr_type = 2
|
|||
|
|
let g:airline#extensions#tabline#buffer_nr_show = 1
|
|||
|
|
let g:airline#extensions#tabline#buffer_min_count = 2
|
|||
|
|
let g:airline#extensions#tabline#tab_min_count = 1
|
|||
|
|
let g:airline#extensions#tabline#left_sep = '▶'
|
|||
|
|
let g:airline#extensions#tabline#left_alt_sep = '>'
|
|||
|
|
let g:airline#extensions#tabline#right_sep = '◀'
|
|||
|
|
let g:airline#extensions#tabline#right_alt_sep = '<'
|
|||
|
|
" more symbols definers for bottom line
|
|||
|
|
let g:airline_left_sep = '▶'
|
|||
|
|
let g:airline_right_sep = '◀'
|
|||
|
|
if !exists('g:airline_symbols')
|
|||
|
|
let g:airline_symbols = {}
|
|||
|
|
endif
|
|||
|
|
let g:airline_symbols.linenr = ''
|
|||
|
|
let g:airline_symbols.branch = '⎇'
|
|||
|
|
let g:airline_symbols.notexists = '∄'
|
|||
|
|
let g:airline_symbols.whitespace = 'Ξ'
|
|||
|
|
|
|||
|
|
nnoremap <F4> :NERDTreeToggle<cr>
|
|||
|
|
nnoremap <F5> :UndotreeToggle<cr>
|
|||
|
|
|
|||
|
|
" Show Numbers On/Off
|
|||
|
|
map <F9> :call ToggleRelNumber()<CR>
|
|||
|
|
map <F10> :call Number_on_off()<CR>
|
|||
|
|
map <F12> :call List_on_off()<CR>
|
|||
|
|
|
|||
|
|
let number_mode = 0 " 0 = normal, 1 = show number
|
|||
|
|
let list_mode = 0 " 0 = normal, 1 = show tabs
|
|||
|
|
:highlight LineNr ctermfg=grey
|
|||
|
|
|
|||
|
|
function! ToggleRelNumber()
|
|||
|
|
if(&relativenumber == 1)
|
|||
|
|
set norelativenumber
|
|||
|
|
else
|
|||
|
|
set relativenumber
|
|||
|
|
endif
|
|||
|
|
endfunc
|
|||
|
|
|
|||
|
|
func! Number_on_off()
|
|||
|
|
if g:number_mode == 0
|
|||
|
|
set nu
|
|||
|
|
let g:number_mode = 1
|
|||
|
|
else
|
|||
|
|
set nonu
|
|||
|
|
let g:number_mode = 0
|
|||
|
|
endif
|
|||
|
|
return
|
|||
|
|
endfunc
|
|||
|
|
|
|||
|
|
func! List_on_off()
|
|||
|
|
if g:list_mode == 0
|
|||
|
|
set listchars=tab:\→\ ,trail:▫︎,nbsp:•
|
|||
|
|
set list
|
|||
|
|
let g:list_mode = 1
|
|||
|
|
else
|
|||
|
|
set listchars=tab:\→\ ,trail:▫︎,nbsp:•,eol:¶,extends:»,precedes:«
|
|||
|
|
set nolist
|
|||
|
|
let g:list_mode = 0
|
|||
|
|
endif
|
|||
|
|
return
|
|||
|
|
endfunc
|
|||
|
|
|
|||
|
|
" just for testing
|
|||
|
|
function! ShowColors()
|
|||
|
|
let num = 255
|
|||
|
|
while num >= 0
|
|||
|
|
exec 'hi col_'.num.' ctermbg='.num.' ctermfg=white'
|
|||
|
|
exec 'syn match col_'.num.' "ctermbg='.num.':...." containedIn=ALL'
|
|||
|
|
call append(0, 'ctermbg='.num.':....')
|
|||
|
|
let num = num - 1
|
|||
|
|
endwhile
|
|||
|
|
endfunction
|
|||
|
|
|
|||
|
|
" tab keys
|
|||
|
|
map <C-t><up> :tabr<cr>
|
|||
|
|
map <C-t><down> :tabl<cr>
|
|||
|
|
map <C-t><left> :tabp<cr>
|
|||
|
|
map <C-t><right> :tabn<cr>
|
|||
|
|
|
|||
|
|
hi TabLine ctermbg=white
|
|||
|
|
hi TabLineFill ctermfg=black ctermbg=white
|
|||
|
|
hi TabLineSel ctermbg=red ctermfg=white
|
|||
|
|
|
|||
|
|
hi statusline ctermbg=black ctermfg=darkyellow
|
|||
|
|
hi statuslineNC ctermbg=yellow ctermfg=darkgrey
|
|||
|
|
hi ModeMsg cterm=bold ctermfg=yellow ctermbg=red
|
|||
|
|
|
|||
|
|
set statusline=%f\ %#error#%m%*[%{strlen(&fenc)?&fenc:'none'},%{&ff}]%h%#error#%r%*%y%=%-20([%n]\ %c%V,%l/%L%)\ [%o]\ %p%%
|
|||
|
|
"%#error#%{&paste?'[paste]':''}%*
|
|||
|
|
|
|||
|
|
" update curring vim with new vimrc settings
|
|||
|
|
map ,u :source ~/.vimrc<cr>
|
|||
|
|
" turn off search highlighted words
|
|||
|
|
noremap ,<space> :nohlsearch<CR>
|
|||
|
|
" highlight last inserted text
|
|||
|
|
nmap gV `[v`]
|
|||
|
|
|
|||
|
|
if exists("+showtabline")
|
|||
|
|
function! MyTabLine()
|
|||
|
|
let s = ''
|
|||
|
|
let t = tabpagenr()
|
|||
|
|
let i = 1
|
|||
|
|
while i <= tabpagenr('$')
|
|||
|
|
let buflist = tabpagebuflist(i)
|
|||
|
|
let winnr = tabpagewinnr(i)
|
|||
|
|
let s .= '%' . i . 'T'
|
|||
|
|
let s .= (i == t ? '%#TabLineSel#' : '%#TabLine#')
|
|||
|
|
let s .= ' ['
|
|||
|
|
let s .= i . ':'
|
|||
|
|
let s .= winnr . '/' . tabpagewinnr(i,'$')
|
|||
|
|
let s .= ' %*'
|
|||
|
|
let s .= (i == t ? '%#TabLineSel#' : '%#TabLine#')
|
|||
|
|
let file = bufname(buflist[winnr - 1])
|
|||
|
|
let file = fnamemodify(file, ':p:t')
|
|||
|
|
if file == ''
|
|||
|
|
let file = '[No Name]'
|
|||
|
|
endif
|
|||
|
|
let s .= '%m'
|
|||
|
|
let s .= file
|
|||
|
|
let s .= '] '
|
|||
|
|
let i = i + 1
|
|||
|
|
endwhile
|
|||
|
|
let s .= '%T%#TabLineFill#%='
|
|||
|
|
let s .= (tabpagenr('$') > 1 ? '%999XX' : 'X')
|
|||
|
|
return s
|
|||
|
|
endfunction
|
|||
|
|
set stal=1
|
|||
|
|
set tabline=%!MyTabLine()
|
|||
|
|
endif
|
|||
|
|
|
|||
|
|
" folding
|
|||
|
|
" optional set fdm=manual
|
|||
|
|
inoremap <F8> <C-O>za
|
|||
|
|
nnoremap <F8> za
|
|||
|
|
onoremap <F8> <C-C>za
|
|||
|
|
vnoremap <F8> zf
|
|||
|
|
" turn off fold depth side bar (2)
|
|||
|
|
map <F7> :call FoldSideBar_on_off()<CR>
|
|||
|
|
let foldsidebar_mode = 0
|
|||
|
|
|
|||
|
|
func! FoldSideBar_on_off()
|
|||
|
|
if g:foldsidebar_mode == 0
|
|||
|
|
set fdc=2
|
|||
|
|
let g:foldsidebar_mode = 1
|
|||
|
|
else
|
|||
|
|
set fdc=0
|
|||
|
|
let g:foldsidebar_mode = 0
|
|||
|
|
endif
|
|||
|
|
return
|
|||
|
|
endfunc
|
|||
|
|
|
|||
|
|
" set cursorline on off
|
|||
|
|
map <F6> :call Cursorline_on_off()<CR>
|
|||
|
|
let cursorline_mode = 0
|
|||
|
|
|
|||
|
|
func! Cursorline_on_off()
|
|||
|
|
if g:cursorline_mode == 0
|
|||
|
|
set cursorline
|
|||
|
|
let g:cursorline_mode = 1
|
|||
|
|
else
|
|||
|
|
set nocursorline
|
|||
|
|
let g:cursorline_mode = 0
|
|||
|
|
endif
|
|||
|
|
return
|
|||
|
|
endfunc
|
|||
|
|
|
|||
|
|
" turn on off no wrap break char
|
|||
|
|
map <F3> :call ShowBreak_on_off()<CR>
|
|||
|
|
func! ShowBreak_on_off()
|
|||
|
|
if (&showbreak == '')
|
|||
|
|
let &showbreak = '↳ '
|
|||
|
|
else
|
|||
|
|
let &showbreak = ''
|
|||
|
|
endif
|
|||
|
|
return
|
|||
|
|
endfunc
|
|||
|
|
|
|||
|
|
" white space clean up function
|
|||
|
|
fun! TrimWhitespace()
|
|||
|
|
let l:save = winsaveview()
|
|||
|
|
%s/\s\+$//e
|
|||
|
|
call winrestview(l:save)
|
|||
|
|
endfun
|
|||
|
|
" callwith :TrimWhitespace
|
|||
|
|
command! TrimWhitespace call TrimWhitespace()
|
|||
|
|
" and set command
|
|||
|
|
:noremap <Leader>w :call TrimWhitespace()<CR>
|
|||
|
|
|
|||
|
|
" buffer left/right quick
|
|||
|
|
map ]b :bn<cr>
|
|||
|
|
map [b :bp<cr>
|