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>
|