Permalink
Cannot retrieve contributors at this time
Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.
Sign up
Fetching contributors…
| "***************************************************************************** | |
| "" Vim-PLug core | |
| "***************************************************************************** | |
| if empty(glob('~/.config/nvim/autoload/plug.vim')) | |
| if !executable("curl") | |
| echoerr "You have to install curl or first install vim-plug yourself!" | |
| execute "q!" | |
| endif | |
| silent execute "!curl -fLo ~/.config/nvim/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim" | |
| autocmd VimEnter * PlugInstall | source $MYVIMRC | |
| endif | |
| " Required: | |
| call plug#begin(expand('~/.config/nvim/plugged')) | |
| "***************************************************************************** | |
| "" Plug install packages | |
| "***************************************************************************** | |
| Plug 'tpope/vim-commentary' | |
| Plug 'tpope/vim-fugitive' | |
| Plug 'tpope/vim-unimpaired' | |
| Plug 'vim-airline/vim-airline' | |
| Plug 'vim-airline/vim-airline-themes' | |
| Plug 'airblade/vim-gitgutter' | |
| Plug 'vim-scripts/CSApprox' | |
| Plug 'Yggdroot/indentLine' | |
| Plug 'sheerun/vim-polyglot' | |
| Plug 'thaerkh/vim-workspace' | |
| Plug 'vim-latex/vim-latex' | |
| Plug 'airblade/vim-rooter' | |
| if !executable('sk') | |
| Plug 'lotabout/skim', { 'dir': '~/.skim', 'do': './install --bin' } | |
| endif | |
| Plug 'lotabout/skim.vim' | |
| let g:make = 'gmake' | |
| if exists('make') | |
| let g:make = 'make' | |
| endif | |
| " language server and autocompletion | |
| Plug 'autozimu/LanguageClient-neovim', { 'branch': 'next', 'do': 'bash install.sh', } | |
| Plug 'roxma/nvim-yarp' | |
| Plug 'ncm2/ncm2' | |
| " Completion plugins | |
| Plug 'ncm2/ncm2-bufword' | |
| Plug 'ncm2/ncm2-tmux' | |
| Plug 'ncm2/ncm2-path' | |
| "" Color | |
| Plug 'rakr/vim-one' | |
| Plug 'ayu-theme/ayu-vim' | |
| " Rust.vim | |
| Plug 'rust-lang/rust.vim' | |
| "***************************************************************************** | |
| "***************************************************************************** | |
| "" Include user's extra bundle | |
| if filereadable(expand("~/.config/nvim/local_bundles.vim")) | |
| source ~/.config/nvim/local_bundles.vim | |
| endif | |
| call plug#end() | |
| " Required: | |
| filetype plugin indent on | |
| "***************************************************************************** | |
| "" Basic Setup | |
| "*****************************************************************************" | |
| "" Encoding | |
| set encoding=utf-8 | |
| set fileencoding=utf-8 | |
| set fileencodings=utf-8 | |
| "" Fix backspace indent | |
| set backspace=indent,eol,start | |
| set autoindent | |
| "" Tabs. May be overriten by autocmd rules | |
| set tabstop=4 | |
| set softtabstop=0 | |
| set shiftwidth=4 | |
| set expandtab | |
| "" Map leader to , | |
| let mapleader=',' | |
| "" Enable hidden buffers | |
| set hidden | |
| "" Searching | |
| set hlsearch | |
| set incsearch | |
| set ignorecase | |
| set smartcase | |
| "" Directories for swp files | |
| set nobackup | |
| set noswapfile | |
| " Sane splits | |
| set splitbelow | |
| set splitright | |
| set diffopt+=vertical | |
| " Enable mouse support | |
| set mouse=a | |
| set fileformats=unix,dos,mac | |
| if exists('$SHELL') | |
| set shell=$SHELL | |
| else | |
| set shell=/bin/sh | |
| endif | |
| " workspace management | |
| let g:workspace_autosave = 1 | |
| "***************************************************************************** | |
| "" Visual Settings | |
| "***************************************************************************** | |
| syntax on | |
| set ruler | |
| set number | |
| " Relative number | |
| set number relativenumber | |
| " Wrapping | |
| set nowrap | |
| let no_buffers_menu=1 | |
| colorscheme one | |
| set background=dark | |
| let g:one_allow_italics = 1 | |
| call one#highlight('rustCommentLineDoc', '639656', '', 'italic') | |
| call one#highlight('rustCommentBlockDoc', '639656', '', 'italic') | |
| " always show sign column | |
| set signcolumn=yes | |
| set mousemodel=popup | |
| set t_Co=256 | |
| set termguicolors | |
| let g:CSApprox_loaded = 1 | |
| " IndentLine | |
| let g:indentLine_enabled = 1 | |
| let g:indentLine_concealcursor = 0 | |
| let g:indentLine_char = '┆' | |
| let g:indentLine_faster = 1 | |
| "" Disable the blinking cursor. | |
| set gcr=a:blinkon0 | |
| set scrolloff=3 | |
| "" Status bar | |
| set laststatus=2 | |
| "" Use modeline overrides | |
| set modeline | |
| set modelines=10 | |
| set title | |
| set titleold="Terminal" | |
| set titlestring=%F | |
| set statusline=%F%m%r%h%w%=(%{&ff}/%Y)\ (line\ %l\/%L,\ col\ %c)\ | |
| " Search mappings: These will make it so that going to the next one in a | |
| " search will center on the line it's found in. | |
| nnoremap n nzzzv | |
| nnoremap N Nzzzv | |
| if exists("*fugitive#statusline") | |
| set statusline+=%{fugitive#statusline()} | |
| endif | |
| " vim-airline | |
| let g:airline_theme = 'one' | |
| let g:airline#extensions#syntastic#enabled = 1 | |
| let g:airline#extensions#branch#enabled = 1 | |
| let g:airline#extensions#tabline#enabled = 1 | |
| let g:airline#extensions#tagbar#enabled = 1 | |
| let g:airline_skip_empty_sections = 1 | |
| "***************************************************************************** | |
| "" Abbreviations | |
| "***************************************************************************** | |
| "" no one is really happy until you have this shortcuts | |
| cnoreabbrev W! w! | |
| cnoreabbrev Q! q! | |
| cnoreabbrev Qall! qall! | |
| cnoreabbrev Wq wq | |
| cnoreabbrev Wa wa | |
| cnoreabbrev wQ wq | |
| cnoreabbrev WQ wq | |
| cnoreabbrev W w | |
| cnoreabbrev Q q | |
| cnoreabbrev Qall qall | |
| "***************************************************************************** | |
| "" Functions | |
| "***************************************************************************** | |
| if !exists('*s:setupWrapping') | |
| function s:setupWrapping() | |
| set wrap | |
| set wm=2 | |
| set textwidth=79 | |
| " set linebreak | |
| endfunction | |
| endif | |
| "***************************************************************************** | |
| "" Autocmd Rules | |
| "***************************************************************************** | |
| "" The PC is fast enough, do syntax highlight syncing from start unless 200 lines | |
| augroup vimrc-sync-fromstart | |
| autocmd! | |
| autocmd BufEnter * :syntax sync maxlines=200 | |
| augroup END | |
| "" Remember cursor position | |
| augroup vimrc-remember-cursor-position | |
| autocmd! | |
| autocmd BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g`\"" | endif | |
| augroup END | |
| "" txt | |
| augroup vimrc-wrapping | |
| autocmd! | |
| autocmd FileType tex,latex,context,plaintex,txt call s:setupWrapping() | |
| augroup END | |
| "" make/cmake | |
| augroup vimrc-make-cmake | |
| autocmd! | |
| autocmd FileType make setlocal noexpandtab | |
| autocmd BufNewFile,BufRead CMakeLists.txt setlocal filetype=cmake | |
| augroup END | |
| set autoread | |
| "***************************************************************************** | |
| "" Mappings | |
| "***************************************************************************** | |
| "" Split | |
| noremap <Leader>h :<C-u>split<CR> | |
| noremap <Leader>v :<C-u>vsplit<CR> | |
| " workspace management | |
| nnoremap <leader>s :ToggleWorkspace<CR> | |
| "" fzf.vim | |
| set wildmode=list:longest,list:full | |
| set wildignore+=*.o,*.obj,.git,*.rbc,*.pyc,__pycache__ | |
| let $FZF_DEFAULT_COMMAND = "find * -path '*/\.*' -prune -o -path 'node_modules/**' -prune -o -path 'target/**' -prune -o -path 'dist/**' -prune -o -type f -print -o -type l -print 2> /dev/null" | |
| " The Silver Searcher | |
| if executable('ag') | |
| let $FZF_DEFAULT_COMMAND = 'ag --hidden --ignore .git -g ""' | |
| set grepprg=ag\ --nogroup\ --nocolor | |
| endif | |
| " ripgrep | |
| if executable('rg') | |
| let $FZF_DEFAULT_COMMAND = 'rg --files --hidden --follow --glob "!.git/*"' | |
| let $SKIM_DEFAULT_COMMAND = 'rg --files --hidden --follow --glob "!.git/*"' | |
| set grepprg=rg\ --vimgrep | |
| command! -bang -nargs=* Find call fzf#vim#grep('rg --column --line-number --no-heading --fixed-strings --ignore-case --hidden --follow --glob "!.git/*" --color "always" '.shellescape(<q-args>).'| tr -d "\017"', 1, <bang>0) | |
| endif | |
| nnoremap <silent> <leader>b :Buffers<CR> | |
| nnoremap <silent> <leader>e :SK -m<CR> | |
| " Disable visualbell | |
| set noerrorbells visualbell t_vb= | |
| if has('autocmd') | |
| autocmd GUIEnter * set visualbell t_vb= | |
| endif | |
| "" Copy/Paste/Cut | |
| if has('unnamedplus') | |
| set clipboard=unnamed,unnamedplus | |
| endif | |
| noremap YY "+y<CR> | |
| noremap <leader>p "+gP<CR> | |
| noremap XX "+x<CR> | |
| "" Buffer nav | |
| nnoremap <C-N> :bnext<CR> | |
| nnoremap <C-P> :bprev<CR> | |
| "" Close buffer | |
| noremap <leader>c :bd<CR> | |
| "" Clean search (highlight) | |
| nnoremap <silent> <esc> :noh<cr> | |
| "" Vmap for maintain Visual Mode after shifting > and < | |
| vmap < <gv | |
| vmap > >gv | |
| "" Move visual block | |
| vnoremap J :m '>+1<CR>gv=gv | |
| vnoremap K :m '<-2<CR>gv=gv | |
| "" Open current line on GitHub | |
| nnoremap <Leader>o :.Gbrowse<CR> | |
| "***************************************************************************** | |
| "" Custom configs | |
| "***************************************************************************** | |
| " rooter | |
| let g:rooter_patterns = ['.git', '.git/', 'Cargo.toml'] | |
| " get rid of netrw | |
| let loaded_netrwPlugin = 1 | |
| " rust | |
| " rls integration | |
| let g:LanguageClient_serverCommands = { | |
| \ 'rust': ['rustup', 'run', 'nightly', 'rls'], | |
| \ } | |
| let g:LanguageClient_autoStart = 1 | |
| " LanguageClient | |
| nnoremap <silent> K :call LanguageClient#textDocument_hover()<CR> | |
| nnoremap <silent> gd :call LanguageClient#textDocument_definition()<CR> | |
| nnoremap <silent> <F2> :call LanguageClient#textDocument_rename()<CR> | |
| nnoremap <silent> <C-l> :call LanguageClient#textDocument_formatting()<CR> | |
| " Completion | |
| autocmd BufEnter * call ncm2#enable_for_buffer() | |
| set completeopt=noinsert,menuone,noselect | |
| " tab to select | |
| " and don't hijack my enter key | |
| inoremap <expr><Tab> (pumvisible()?(empty(v:completed_item)?"\<C-n>":"\<C-y>"):"\<Tab>") | |
| inoremap <expr><CR> (pumvisible()?(empty(v:completed_item)?"\<CR>\<CR>":"\<C-y>"):"\<CR>") | |
| "***************************************************************************** | |
| "***************************************************************************** | |
| "" Include user's local vim config | |
| if filereadable(expand("~/.config/nvim/local_init.vim")) | |
| source ~/.config/nvim/local_init.vim | |
| endif | |
| "***************************************************************************** | |
| "" Convenience variables | |
| "***************************************************************************** | |
| " vim-airline | |
| if !exists('g:airline_symbols') | |
| let g:airline_symbols = {} | |
| endif | |
| if !exists('g:airline_powerline_fonts') | |
| let g:airline#extensions#tabline#left_sep = ' ' | |
| let g:airline#extensions#tabline#left_alt_sep = '|' | |
| let g:airline_left_sep = '▶' | |
| let g:airline_left_alt_sep = '»' | |
| let g:airline_right_sep = '◀' | |
| let g:airline_right_alt_sep = '«' | |
| let g:airline#extensions#branch#prefix = '⤴' "➔, ➥, ⎇ | |
| let g:airline#extensions#readonly#symbol = '⊘' | |
| let g:airline#extensions#linecolumn#prefix = '¶' | |
| let g:airline#extensions#paste#symbol = 'ρ' | |
| let g:airline_symbols.linenr = '␊' | |
| let g:airline_symbols.branch = '⎇' | |
| let g:airline_symbols.paste = 'ρ' | |
| let g:airline_symbols.paste = 'Þ' | |
| let g:airline_symbols.paste = '∥' | |
| let g:airline_symbols.whitespace = 'Ξ' | |
| else | |
| let g:airline#extensions#tabline#left_sep = '' | |
| let g:airline#extensions#tabline#left_alt_sep = '' | |
| " powerline symbols | |
| let g:airline_left_sep = '' | |
| let g:airline_left_alt_sep = '' | |
| let g:airline_right_sep = '' | |
| let g:airline_right_alt_sep = '' | |
| let g:airline_symbols.branch = '' | |
| let g:airline_symbols.readonly = '' | |
| let g:airline_symbols.linenr = '' | |
| endif |