Created
December 16, 2017 16:31
-
-
Save greister/067e94041b8b027dd1e9d9fc6844a7d1 to your computer and use it in GitHub Desktop.
neovim configuration
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
" vim:foldmethod=marker:foldlevel=0 | |
" vim-plug {{{ | |
call plug#begin() | |
" color scheme | |
Plug 'chriskempson/base16-vim' | |
" syntax highlighting | |
Plug 'peterhoeg/vim-qml' | |
Plug 'artoj/qmake-syntax-vim' | |
Plug 'octol/vim-cpp-enhanced-highlight' | |
Plug 'rust-lang/rust.vim' | |
Plug 'tikhomirov/vim-glsl' | |
" auto complete | |
Plug 'Valloric/YouCompleteMe', { 'do': './install.py --clang-completer --racer-completer --omnisharp-completer --tern-completer' } | |
Plug 'rdnetto/YCM-Generator', { 'branch': 'stable' } | |
"Plug 'fatih/vim-go' | |
Plug 'nvie/vim-flake8' | |
Plug 'davidhalter/jedi-vim' | |
Plug 'ervandew/supertab' | |
Plug 'SirVer/ultisnips' | |
Plug 'honza/vim-snippets' | |
" navigation/search file | |
Plug 'scrooloose/nerdtree' | |
Plug 'junegunn/fzf', { 'dir': '~/.fzf', 'do': './install --all' } | |
Plug 'rking/ag.vim' | |
Plug 'dkprice/vim-easygrep' | |
" note | |
Plug 'xolox/vim-misc' | |
Plug 'xolox/vim-notes' | |
" editing | |
Plug 'scrooloose/nerdcommenter' | |
Plug 'tpope/vim-surround' | |
Plug 'godlygeek/tabular' | |
Plug 'tpope/vim-repeat' | |
" better statusline | |
Plug 'vim-airline/vim-airline' | |
Plug 'vim-airline/vim-airline-themes' | |
" git management plugin | |
Plug 'tpope/vim-fugitive' | |
Plug 'airblade/vim-gitgutter' | |
call plug#end() | |
" }}} vim-plug | |
" Colors {{{ | |
let $NVIM_TUI_ENABLE_TRUE_COLOR=1 | |
syntax enable " enable syntax processing | |
colorscheme base16-default | |
set background=dark | |
" }}} Colors | |
" Spaces & Tabs {{{ | |
set tabstop=4 " number of visual spaces per TAB | |
set softtabstop=4 " number of spaces in tab when editing | |
set shiftwidth=4 " number of spaces to use for autoindent | |
set expandtab " tabs are space | |
set autoindent | |
set copyindent " copy indent from the previous line | |
" }}} Spaces & Tabs | |
" Clipboard {{{ | |
set clipboard+=unnamedplus | |
" }}} Clipboard | |
" UI Config {{{ | |
set hidden | |
set number " show line number | |
set showcmd " show command in bottom bar | |
set cursorline " highlight current line | |
set wildmenu " visual autocomplete for command menu | |
set showmatch " highlight matching brace | |
set laststatus=2 " window will always have a status line | |
set nobackup | |
set noswapfile | |
let &colorcolumn="80,".join(range(119,999),",") | |
" }}} UI Config | |
" Search {{{ | |
set incsearch " search as characters are entered | |
set hlsearch " highlight matche | |
set ignorecase " ignore case when searching | |
set smartcase " ignore case if search pattern is lower case | |
" case-sensitive otherwise | |
" set Ag as the grep command | |
if executable('ag') | |
" Note we extract the column as well as the file and line number | |
set grepprg=ag\ --nogroup\ --nocolor\ --column | |
set grepformat=%f:%l:%c%m | |
endif | |
" }}} Search | |
" Folding {{{ | |
set foldenable | |
set foldlevelstart=10 " default folding level when buffer is opened | |
set foldnestmax=10 " maximum nested fold | |
set foldmethod=syntax " fold based on indentation | |
" }}} Folding | |
" Leader & Mappings {{{ | |
let mapleader="," " leader is comma | |
" edit/reload vimrc | |
nmap <leader>ev :e $MYVIMRC<CR> | |
nmap <leader>sv :so $MYVIMRC<CR> | |
" better ESC | |
inoremap jj <esc> | |
" fast save and close | |
nmap <leader>w :w<CR> | |
nmap <leader>x :x<CR> | |
nmap <leader>q :q<CR> | |
" insert blank line before current line without leaving insert mode | |
imap <leader>o <c-o><s-o> | |
" move up/down consider wrapped lines | |
nnoremap j gj | |
nnoremap k gk | |
" fix indentation | |
nnoremap <leader>i mzgg=G`z<CR> | |
" turn off search highlights | |
nnoremap <leader><space> :nohlsearch<CR> | |
" move through grep results | |
nmap <silent> <right> :cnext<CR> | |
nmap <silent> <left> :cprev<CR> | |
" buffers | |
nnoremap <tab> :bn<CR> | |
nnoremap <s-tab> :bp<CR> | |
nnoremap <leader>bd :bd<CR> | |
" split navigation | |
nnoremap <c-j> <c-w><c-j> | |
nnoremap <c-k> <c-w><c-k> | |
nnoremap <c-l> <c-w><c-l> | |
nnoremap <c-h> <c-w><c-h> | |
" fast header source switch | |
map <F4> :e %:p:s,.h$,.X123X,:s,.cpp$,.h,:s,.X123X$,.cpp,<CR> | |
" fzf | |
nnoremap <c-p> :FZF<CR> | |
" NERDTree mappings {{{ | |
map <C-n> :NERDTreeToggle<CR> | |
" }}} | |
" YCM mappings {{{ | |
nnoremap <leader>g :YcmCompleter GoTo<CR> | |
" }}} | |
" }}} | |
" NERDTree {{{ | |
let NERDTreeShowHidden=1 | |
let NERDTreeIgnore = ['\.pyc$', '__pycache__'] | |
" }}} | |
" Cpp Enhanced Highlighting {{{ | |
let g:cpp_class_scope_highlight = 1 | |
" }}} | |
" Airline {{{ | |
let g:airline_powerline_fonts = 1 | |
let g:airline#extensions#tabline#enabled = 1 | |
let g:airline#extensions#tabline#buffer_nr_show = 1 | |
" }}} | |
" YCM {{{ | |
"let g:ycm_server_keep_logfiles = 1 | |
"let g:ycm_server_log_level = 'debug' | |
let g:ycm_filetype_specific_completion_to_disable = { | |
\ 'gitcommit': 1, | |
\ 'python': 1 | |
\} | |
let g:ycm_rust_src_path='/home/synasius/workspace/rust/src/' | |
let g:ycm_complete_in_comments = 1 | |
let g:ycm_complete_in_strings = 1 | |
let g:ycm_use_ultisnips_completer = 1 " Default 1, just ensure | |
let g:ycm_seed_identifiers_with_syntax = 1 " Completion for programming language's | |
" }}} | |
" UltiSnips {{{ | |
let g:UltiSnipsExpandTrigger = "<c-j>" | |
let g:UltiSnipsJumpForwardTrigger = "<c-j>" | |
let g:UltiSnipsJumpBackwardTrigger = "<c-p>" | |
let g:UltiSnipsListSnippets = "<c-k>" "List possible snippets based on current file | |
let g:UltiSnipsUsePythonVersion = 2 | |
" }}} | |
" Flake8 {{{ | |
let g:flake8_show_in_gutter=1 | |
let g:flake8_show_in_file=1 | |
" }}} | |
" Functions {{{ | |
" trailing whitespace | |
match ErrorMsg '\s\+$' | |
function! TrimWhiteSpace() | |
%s/\s\+$//e | |
endfunction | |
autocmd BufWritePre * :call TrimWhiteSpace() | |
" }}} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment