245 lines
6.1 KiB
VimL
245 lines
6.1 KiB
VimL
set nocompatible
|
|
filetype off
|
|
|
|
" Plugins
|
|
set rtp+=~/.config/nvim/bundle/Vundle.vim
|
|
call vundle#begin("~/.config/nvim/bundle")
|
|
|
|
Plugin 'VundleVim/Vundle.vim'
|
|
|
|
" Powerline replacement
|
|
Plugin 'vim-airline/vim-airline'
|
|
Plugin 'vim-airline/vim-airline-themes'
|
|
|
|
" Tags
|
|
Plugin 'xolox/vim-misc'
|
|
Plugin 'ludovicchabant/vim-gutentags'
|
|
Plugin 'majutsushi/tagbar'
|
|
|
|
" Templates
|
|
Plugin 'aperezdc/vim-template'
|
|
|
|
" Selection expand
|
|
Plugin 'terryma/vim-expand-region'
|
|
Plugin 'kana/vim-textobj-user'
|
|
Plugin 'kana/vim-textobj-line'
|
|
Plugin 'kana/vim-submode'
|
|
|
|
" Better Pasting
|
|
Plugin 'ConradIrwin/vim-bracketed-paste'
|
|
|
|
" Tmux navigation
|
|
Plugin 'christoomey/vim-tmux-navigator'
|
|
|
|
" YouCompleteMe
|
|
Plugin 'Valloric/YouCompleteMe'
|
|
Plugin 'rdnetto/YCM-Generator'
|
|
|
|
" Git
|
|
Plugin 'tpope/vim-fugitive'
|
|
|
|
" Comments
|
|
Plugin 'scrooloose/nerdcommenter'
|
|
|
|
" Surround
|
|
Plugin 'tpope/vim-surround'
|
|
|
|
" Snippets
|
|
" Track the engine.
|
|
Plugin 'SirVer/ultisnips'
|
|
" Snippets are separated from the engine. Add this if you want them:
|
|
Plugin 'honza/vim-snippets'
|
|
Plugin 'ervandew/supertab'
|
|
|
|
"Buftabeline
|
|
"Plugin 'ap/vim-buftabline'
|
|
|
|
" Highlight matching xml tags
|
|
Plugin 'Valloric/MatchTagAlways'
|
|
|
|
"Javascript
|
|
Plugin 'pangloss/vim-javascript'
|
|
|
|
" Tex
|
|
Plugin 'lervag/vimtex'
|
|
|
|
"Go
|
|
Plugin 'fatih/vim-go'
|
|
|
|
call vundle#end()
|
|
filetype plugin indent on
|
|
set cinkeys-=0#
|
|
|
|
" Terminal emulator settings
|
|
set t_Co=256
|
|
"set term=screen-256color
|
|
|
|
" Color configuration
|
|
colorscheme badwolf " some color ..
|
|
syntax enable " enable syntax processing
|
|
|
|
" Disable annoying bell
|
|
set noerrorbells
|
|
|
|
" Allow modelines at the beginning and end of a file
|
|
set modeline
|
|
|
|
" Key configuration
|
|
let mapleader = "\<Space>" " Make space the leader key
|
|
nnoremap <Leader>w :w<CR>| " Write file
|
|
nnoremap <Leader>q :q<CR>| " Close file
|
|
nnoremap <Leader>s :w !sudo tee %<CR>L<CR>
|
|
|
|
nmap <Leader><Leader> V| " Change to visual line mode
|
|
map q: :q| " No command history
|
|
nmap <Leader><CR> O<ESC> | " Add line above
|
|
nmap <CR> o<ESC>| " Add line below
|
|
nmap <Leader>f gq}| " Format paragraph
|
|
" Window management
|
|
nmap <Leader>mt :tab sp<CR> | " maximize window to new tab
|
|
nmap <Leader>. <C-w>= | " Split windows equally
|
|
map gb :bnext<CR>
|
|
map gB :bNext<CR>
|
|
call submode#enter_with('grow/shrink', 'n', '', '<Leader>r', '<Nop>')
|
|
call submode#map('grow/shrink', 'n', '', '+', '<C-w>+')
|
|
call submode#map('grow/shrink', 'n', '', '-', '<C-w>-')
|
|
call submode#map('grow/shrink', 'n', '', '<', '<C-w><')
|
|
call submode#map('grow/shrink', 'n', '', '>', '<C-w>>')
|
|
set splitbelow
|
|
set splitright
|
|
|
|
"disable submode timeouts:
|
|
let g:submode_timeout = 0
|
|
" don't consume submode-leaving key
|
|
let g:submode_keep_leaving_key = 1
|
|
|
|
" Configuration of spaces and tabs
|
|
set tabstop=4 " show 4 spaces per TAB
|
|
set softtabstop=4 " insert 4 spaces per TAB
|
|
set smarttab
|
|
set expandtab " tabs are spaces
|
|
set shiftwidth=4
|
|
|
|
" UI
|
|
set number " show line numbers
|
|
set relativenumber "relative line numbers
|
|
set showcmd " show last command in bottom bar
|
|
set cursorline " highlight current line
|
|
|
|
" Statusline
|
|
set statusline+=%f\ " show Filepath
|
|
set statusline+=[%{strlen(&fenc)?&fenc:'none'}] "file encoding
|
|
set statusline+=%m%r " Modified and read only flag
|
|
set statusline+=%= " align left
|
|
set statusline+=%y " show Filetype
|
|
set statusline+=[%{&fo}] " Show format options
|
|
set laststatus=2 " always show statusline
|
|
|
|
" Filetypes
|
|
filetype on " filetype detection on
|
|
filetype indent on " filetype-specific indent .vim/indent/
|
|
filetype plugin on " filteype plugins in .vim/ftplugins
|
|
|
|
set smartindent
|
|
set wildmenu " visual autocomplete for command menu
|
|
set lazyredraw " redraw only when necessary
|
|
set showmatch " highlight matching brackets
|
|
set mouse=a " Mouse control
|
|
|
|
" Searching
|
|
set incsearch " search while entering
|
|
set hlsearch " highlight matches
|
|
nnoremap <Leader>h :set hlsearch!<CR>
|
|
set ignorecase
|
|
set smartcase
|
|
|
|
" Line wrapping
|
|
set tw=100 " set textwidth of 100 characters
|
|
set formatoptions-=t " Don't wrap code
|
|
set formatoptions+=c " Wrap comments
|
|
set formatoptions+=mB " Don't break multibyte characters
|
|
set formatoptions+=j " Remove multiple comment markers
|
|
function TextWrapToggle()
|
|
if &fo =~'t'
|
|
setlocal fo-=t
|
|
else
|
|
setlocal fo+=t
|
|
endif
|
|
let formatoptions = &formatoptions
|
|
echom formatoptions
|
|
endfunction
|
|
nmap <Leader>t :call TextWrapToggle()<CR>
|
|
|
|
" Highlight characters past 80
|
|
"augroup vimrc_autocmds
|
|
"autocmd BufEnter * highlight OverLength ctermbg=88 guibg=#592929
|
|
"autocmd BufEnter * match OverLength /\%81v.*/
|
|
"augroup END
|
|
|
|
"Copying
|
|
set clipboard=unnamedplus,unnamed " Copy/Paste
|
|
|
|
" Airline
|
|
let g:airline_powerline_fonts = 1
|
|
|
|
" TagBar
|
|
nmap <F8> :TagbarToggle<CR>
|
|
imap <F8> <ESC>:TagbarToggle<CR>gi
|
|
nmap <C-]> <C-w><C-]><C-w>T
|
|
|
|
" YouCompleteMe
|
|
let g:ycm_collect_identifiers_from_tags_files = 1 " Read from tag files
|
|
let g:ycm_global_ycm_extra_conf = '~/.config/nvim/.ycm_extra_conf.py' " Standard conf
|
|
let g:ycm_enable_diagnostic_signs = 0 " Do not show semantic error bar
|
|
let g:ycm_server_python_interpreter = '/usr/bin/python3'
|
|
let g:ycm_key_list_select_completion = ['<C-j>', '<C-n>', '<Down>']
|
|
let g:ycm_key_list_previous_completion = ['<C-k>', '<C-p>', '<Up>']
|
|
|
|
"Tags
|
|
let g:easytags_async = 1
|
|
|
|
" make
|
|
autocmd QuickFixCmdPre make set cmdheight=2
|
|
"autocmd QuickFixCmdPost make nested cwindow "Open the quickfix window
|
|
"autocmd QuickFixCmdPost make nested lwindow "Change to the quickfix window
|
|
set switchbuf=split
|
|
nmap <F9> :silent! make<CR>:redraw!<CR>
|
|
nmap <Leader>m :silent! make<CR>:redraw!<CR>
|
|
nmap <Leader>x :silent! make ex<CR>:redraw!<CR>
|
|
imap <F9> <ESC>:make<CR>:redraw!<CR>i
|
|
|
|
" vim-templates config-file
|
|
try
|
|
source ~/.config/nvim/.vimrc_config_template
|
|
catch
|
|
" Ignore non existing file
|
|
endtry
|
|
|
|
" Expand region
|
|
vmap v <Plug>(expand_region_expand)
|
|
vmap <C-v> <Plug>(expand_region_shrink)
|
|
|
|
" Snippets
|
|
let g:SuperTabDefaultCompletionType = '<C-n>'
|
|
let g:SuperTabCrMapping = 0
|
|
|
|
let g:UltiSnipsExpandTrigger="<tab>"
|
|
let g:UltiSnipsJumpForwardTrigger="<tab>"
|
|
let g:UltiSnipsJumpBackwardTrigger="<s-tab>"
|
|
let g:UltiSnipsEditSplit="vertical"
|
|
set rtp+=~/.config/nvim/my-snippets
|
|
|
|
try
|
|
source ~/.config/nvim/.vimrc_config_expand_region
|
|
catch
|
|
" Ignore non existing file
|
|
endtry
|
|
|
|
" Extra stuff
|
|
try
|
|
source ~/.config/nvim/.vimrc_config_extra_stuff
|
|
catch
|
|
" Ignore non existing file
|
|
endtry
|
|
let g:tex_flavor = "latex"
|