You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							157 lines
						
					
					
						
							3.7 KiB
						
					
					
				
			
		
		
	
	
							157 lines
						
					
					
						
							3.7 KiB
						
					
					
				" Disable unused components | 
						|
set nobackup | 
						|
set nocompatible | 
						|
 | 
						|
" Setup paths | 
						|
set backupdir=$XDG_CACHE_HOME/vim,/var/tmp,/tmp | 
						|
set directory=$XDG_CACHE_HOME/vim,/var/tmp,/tmp | 
						|
set packpath^=$XDG_CONFIG_HOME/vim | 
						|
set runtimepath^=$XDG_CONFIG_HOME/vim | 
						|
set viminfo+=n$XDG_CACHE_HOME/vim_history | 
						|
 | 
						|
"" General | 
						|
 | 
						|
filetype plugin on | 
						|
syntax on | 
						|
 | 
						|
" Behavior | 
						|
set clipboard=unnamedplus | 
						|
set encoding=utf-8 | 
						|
set fileencoding=utf-8 | 
						|
set hidden | 
						|
set history=1000 | 
						|
set mouse=a | 
						|
set ttimeoutlen=0 | 
						|
set undolevels=1000 | 
						|
 | 
						|
set suffixes=.bak,~,.swp,.o,.info,.aux,.log,.dvi,.bbl,.blg,.brf,.cb,.ind,.idx,.ilg,.inx,.out,.toc,.png,.jpg | 
						|
set wildignore=*.bak,*.swp,*.o,*.info,*.aux,*.log,*.dvi,*.bbl,*.blg,*.brf,*.cb,*.ind,*.idx,*.ilg,*.inx,*.out,*.toc,*.png,*.jpg | 
						|
 | 
						|
" Editing | 
						|
set number | 
						|
set ruler | 
						|
 | 
						|
set background=dark | 
						|
colorscheme hybrid_reverse | 
						|
 | 
						|
set cursorline | 
						|
highlight clear CursorLine | 
						|
highlight CursorLineNr cterm=bold | 
						|
 | 
						|
highlight clear SpellBad | 
						|
highlight SpellBad ctermbg=8 ctermfg=15 | 
						|
 | 
						|
" Indentation | 
						|
set autoindent | 
						|
filetype indent on | 
						|
 | 
						|
set backspace=indent,eol,start | 
						|
set noexpandtab | 
						|
set shiftround | 
						|
set tabstop=4 | 
						|
set softtabstop=4 | 
						|
set shiftwidth=4 | 
						|
 | 
						|
" UI | 
						|
set laststatus=2 | 
						|
set noshowmode | 
						|
set nowrap | 
						|
 | 
						|
"" Plugin configuration | 
						|
 | 
						|
" lightline.vim | 
						|
let g:lightline = {} | 
						|
let g:lightline.colorscheme  = 'Tomorrow_Night_Bright' | 
						|
let g:lightline.separator    =  {'left': "\ue0b0", 'right': "\ue0b2"} | 
						|
let g:lightline.subseparator =  {'left': "\ue0b1", 'right': "\ue0b3"} | 
						|
 | 
						|
" lightline-bufferline | 
						|
let g:lightline.tabline          = {'left': [['buffers']], 'right': [['text']]} | 
						|
let g:lightline.component_expand = {'buffers': 'lightline#bufferline#buffers'} | 
						|
let g:lightline.component_type   = {'buffers': 'tabsel'} | 
						|
let g:lightline.component        = {'text': 'buffers'} | 
						|
 | 
						|
let g:lightline#bufferline#min_buffer_count = 2 | 
						|
 | 
						|
" NERD Commenter | 
						|
let g:NERDCommentEmptyLines=1 | 
						|
let g:NERDSpaceDelims=1 | 
						|
let g:NERDTrimTrailingWhitespace=1 | 
						|
 | 
						|
" NERD Tree | 
						|
let g:NERDTreeIgnore = ['\.git'] | 
						|
let g:NERDTreeAutoDeleteBuffer=1 | 
						|
let g:NERDTreeDirArrowExpandable = ' ' | 
						|
" let g:NERDTreeDirArrowCollapsible = ' ' | 
						|
let g:NERDTreeMinimalUI=1 | 
						|
let g:NERDTreeShowHidden=1 | 
						|
 | 
						|
" vimtex | 
						|
let g:tex_flavor = 'latex' | 
						|
let g:vimtex_view_method = 'zathura' | 
						|
 | 
						|
"" Autocommands | 
						|
 | 
						|
" Remove trailing whitespace in the following filetypes | 
						|
augroup TrailingWhitespace | 
						|
	autocmd! FileType c,cpp,ino,java,py,php,sh,tex autocmd BufWritePre <buffer> %s/\s\+$//e | 
						|
augroup END | 
						|
 | 
						|
" Close vim if only window is NERD Tree | 
						|
augroup CloseVimTree | 
						|
	autocmd! bufenter * if (winnr("$") == 1 && exists("b:NERDTree") && b:NERDTree.isTabTree()) | q | endif | 
						|
augroup END | 
						|
 | 
						|
augroup PreventBuffer | 
						|
	autocmd FileType nerdtree let t:nerdtree_winnr = bufwinnr('%') | 
						|
	autocmd BufWinEnter * call PreventBuffersInNERDTree() | 
						|
augroup END | 
						|
 | 
						|
"" Functions | 
						|
 | 
						|
function! CloseTab() | 
						|
	let bufNr = bufnr('%') | 
						|
	let nerdTreeStatus = exists('t:NERDTreeBufName') && bufwinnr(t:NERDTreeBufName) != -1 | 
						|
	let currentFile = expand('%:t') | 
						|
 | 
						|
	if nerdTreeStatus | 
						|
		execute "NERDTreeClose" | 
						|
		if currentFile !~# "NERD_tree" | 
						|
			execute "bw "bufNr | 
						|
			execute "NERDTreeToggle" | 
						|
		endif | 
						|
	else | 
						|
		execute "bw "bufNr | 
						|
	endif | 
						|
endfunction | 
						|
 | 
						|
function! PreventBuffersInNERDTree() | 
						|
	if bufname('#') =~ 'NERD_tree' && bufname('%') !~ 'NERD_tree' | 
						|
				\ && exists('t:nerdtree_winnr') && bufwinnr('%') == t:nerdtree_winnr | 
						|
				\ && &buftype == '' | 
						|
		let bufnum = bufnr('%') | 
						|
		close | 
						|
		execute 'b ' . bufnum | 
						|
		execute ':NERDTree' | 
						|
		execute "normal! \<c-w>\<c-w>" | 
						|
	endif | 
						|
endfunction | 
						|
 | 
						|
"" Keybindings | 
						|
 | 
						|
" Tab/Shift+Tab functionality | 
						|
nnoremap <Tab> >>_ | 
						|
nnoremap <S-Tab> <<_ | 
						|
inoremap <S-Tab> <C-D> | 
						|
vnoremap <Tab> >gv | 
						|
vnoremap <S-Tab> <gv | 
						|
 | 
						|
" Buffer switching | 
						|
nnoremap <silent> <C-h> :bprevious<CR> | 
						|
nnoremap <silent> <C-l> :bnext<CR> | 
						|
nnoremap <silent> <C-w> :call CloseTab()<CR> | 
						|
nmap <Leader>1 <Plug>lightline#bufferline#go(1) | 
						|
 | 
						|
" Toggle NERD Tree | 
						|
nnoremap <silent> <C-t> :NERDTreeToggle<CR> | 
						|
 | 
						|
 |