Skip to content

Instantly share code, notes, and snippets.

@SolarLiner
Created March 6, 2018 19:15
Show Gist options
  • Save SolarLiner/66b3ff2ee853af549fb8c0c41fd8820e to your computer and use it in GitHub Desktop.
Save SolarLiner/66b3ff2ee853af549fb8c0c41fd8820e to your computer and use it in GitHub Desktop.
My NVIM configuration

Configuration uses Vundle and XDG_DESKTOP compliant paths - macOS users, change the RTP and bundle paths.

" Spaces & Tabs {{{
set tabstop=4
set shiftwidth=4
set softtabstop=4
set expandtab
" }}}
" Searching {{{
set incsearch " Search as characters are entered
set hlsearch " Redundant on NVIM? - Highlight matches
" Turn off search highlighting
nnoremap <leader><space> :nohlsearch<CR>
set foldenable " Enable folding
set foldlevelstart=3 " Fold nest level to be closed by default
set foldmethod=indent " Fold recognization method
" }}}
" Movement {{{
" Move by visual lines
nnoremap <DOWN> gj
nnoremap <UP> gk
" Hightlight last inserted text
nnoremap gV `[v`]
" }}}
" }}}
" Shortcuts {{{
" Toggle Gundo
nnoremap <leader>u :GundoToggle<CR>
" Save session
nnoremap <leader>s :mksession<CR>
" }}}
" Backups {{{
"set backup
"set writebackup
"set backupdir=~/.cache/nvim,/tmp
"set backupskip=/tmp,/tmp/*
" }}}
" Vundle {{{
set nocompatible
filetype off
set rtp+=~/.config/nvim/bundle/Vundle.vim
" Plugins {{{
call vundle#begin('~/.config/nvim/bundle')
Plugin 'VundleVim/Vundle.vim'
Plugin 'tpope/vim-fugitive'
Plugin 'vim-syntastic/syntastic'
Plugin 'kien/ctrlp.vim'
Plugin 'Valloric/YouCompleteMe'
Plugin 'autozimu/LanguageClient-neovim', {
\ 'branch': 'next',
\ 'do': './install.sh',
\ }
Plugin 'chriskempson/base16-vim'
Plugin 'vim-airline/vim-airline'
Plugin 'vim-airline/vim-airline-themes'
Plugin 'scrooloose/nerdtree'
Plugin 'mattn/emmet-vim'
Plugin 'tpope/vim-surround'
Plugin 'sjl/gundo.vim'
Plugin 'wakatime/vim-wakatime'
Plugin 'vim-scripts/vim-auto-save'
Plugin 'pangloss/vim-javascript'
Plugin 'leafgarland/typescript-vim'
Plugin 'maxmellon/vim-jsx-pretty'
Plugin 'ianks/vim-tsx'
call vundle#end()
" }}}
" Plugin Settings {{{
" CtrlP Settings {{{
let g:ctrlp_match_window = 'bottom,order:ttb'
let g:ctrlp_switch_buffer = 0
let g:ctrlp_working_path_mode = 0
let g:ctrlp_custom_ignore = {
\ 'dir': '\v[\/]\.(git|hg|svn)$',
\ 'file': '\v\.(exe|so|dll)$',
\ 'link': 'some_bad_symbolic_links',
\ }
" }}}
" Vim Airline Settings {{{
let g:airline#extensions#tabline#enabled = 1
let g:airline_powerline_fonts = 1
let g:airline_theme='base16_monokai'
let g:airline#extensions#tabline#formatter = 'unique_tail_improved'
let g:airline_extensions = ['ctrlp', 'virtualenv']
" }}}
" LanguageClient Settings {{{
set hidden
let g:LanguageClient_serverCommands = {
\ 'rust': ['rustup', 'run', 'nightly', 'rls'],
\ 'javascript': ['javascript-typescript-stdio'],
\ 'javascript.jsx': ['javascript-typescript-stdio'],
\ }
nnoremap <silent> K :call LanguageClient_textDocument_hover()<CR>
nnoremap <silent> gd :call LanguageClient_textDocument_definition()<CR>
nnoremap <silent> <F2> :call LanguageClient_textDocument_rename()<CR>
" }}}
" AutoSave Settings {{{
let g:auto_save = 1
let g:auto_save_in_insert_mode= 0
" }}}
" }}}
" }}}
" UI {{{
set number " Show numbers
set relativenumber " Show numbers relative to edited line
set showcmd " Show command in bottom bar
set cursorline " Hightlight edited line
" Auto toggle relative numbers
:augroup numbertoggle
: autocmd!
: autocmd BufEnter,FocusGained,InsertLeave * set relativenumber
: autocmd BufLeave,FocusLost,InsertEnter * set norelativenumber
:augroup END
" Color scheme
set termguicolors
colorscheme base16-monokai
set showmatch " Hightlight matching brace
" Searching {{{
set incsearch " Search as characters are entered
set hlsearch " Redundant on NVIM? - Highlight matches
" Turn off search highlighting
nnoremap <leader><space> :nohlsearch<CR>
set foldenable " Enable folding
set foldlevelstart=3 " Fold nest level to be closed by default
set foldmethod=indent " Fold recognization method
" }}}
" Movement {{{
" Move by visual lines
nnoremap <DOWN> gj
nnoremap <UP> gk
" Hightlight last inserted text
nnoremap gV `[v`]
" }}}
" }}}
" Shortcuts {{{
" Toggle Gundo
nnoremap <leader>u :GundoToggle<CR>
" Save session
nnoremap <leader>s :mksession<CR>
" }}}
" Backups {{{
set backup
set writebackup
set backupdir=~/.cache/nvim,/tmp
set backupskip=/tmp,/tmp/*
" }}}
filetype plugin indent on
" vim:foldmethod=marker:foldlevel=0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment