Skip to content

Instantly share code, notes, and snippets.

@telamon
Created August 16, 2017 13:25
Show Gist options
  • Save telamon/8d1f79e52cb8b1d7871c8dd5a089c37d to your computer and use it in GitHub Desktop.
Save telamon/8d1f79e52cb8b1d7871c8dd5a089c37d to your computer and use it in GitHub Desktop.
My amazing Neovim configuration.
" Tony's Settings
" Usage:
" Download and install nvim, then install 'dein' the vim-package manager.
" During installation of dein it will output a sample configuration, take the
" two lines that `set runtimepath=PATH` and `dein#begin(PATH)` and replace the
" ones in this file online 14 and 17. Restart nvim and Happy Vimming!
"dein Scripts-----------------------------
if &compatible
set nocompatible " Be iMproved
endif
" Required:
set runtimepath+=/home/telamon/.config/nvim/repos/github.com/Shougo/dein.vim
" Required:
call dein#begin('/home/telamon/.config/nvim/')
" Let dein manage dein
" Required:
call dein#add('Shougo/dein.vim')
" Add or remove your plugins here:
call dein#add('Shougo/neosnippet.vim')
call dein#add('Shougo/neosnippet-snippets')
" Functional utils
call dein#add('tpope/vim-fugitive')
"call dein#add('wbthomason/buildit.nvim') "as a replacement for neomake?
" Look'n'feel
call dein#add('Shougo/vimshell')
call dein#add('scrooloose/nerdtree')
call dein#add('airblade/vim-gitgutter')
call dein#add('ctrlpvim/ctrlp.vim')
call dein#add('itchyny/lightline.vim')
call dein#add('mhinz/vim-startify')
call dein#add('morhetz/gruvbox')
call dein#add('joshdick/onedark.vim')
call dein#add('equalsraf/neovim-gui-shim')
call dein#add('majutsushi/tagbar')
call dein#add('arakashic/chromatica.nvim')
call dein#add('ap/vim-buftabline')
" Lang support
call dein#add('kchmck/vim-coffee-script')
call dein#add('fatih/vim-go') " Need to run :GoInstallBinaries after install
call dein#add('quabug/vim-gdscript')
call dein#add('vim-scripts/openscad.vim')
" Deoplete (autocomplete) & other shitty IDE-like behaviour
call dein#add('Shougo/deoplete.nvim')
call dein#add('Shougo/neoinclude.vim')
call dein#add('Shougo/context_filetype.vim')
call dein#add('zchee/deoplete-clang')
call dein#add('zchee/deoplete-go')
call dein#add('fishbullet/deoplete-ruby')
call dein#add('chiel92/vim-autoformat')
" Required:
call dein#end()
" Required:
filetype plugin indent on
syntax enable
" If you want to install not installed plugins on startup.
if dein#check_install()
call dein#install()
endif
"End dein Scripts-------------------------
" Configure deoplete and subcandidates
let g:deoplete#enable_at_startup = 1
let g:deoplete#enable_smart_case = 1
let g:deoplete#sources#clang#libclang_path="/usr/lib/llvm-4.0/lib/libclang.so"
let g:deoplete#sources#clang#clang_header="/usr/include/clang"
" Let auto-complete take effect on TAB key
inoremap <silent><expr> <TAB>
\ pumvisible() ? "\<C-n>" :
\ <SID>check_back_space() ? "\<TAB>" :
\ deoplete#mappings#manual_complete()
function! s:check_back_space() abort "{{{
let col = col('.') - 1
return !col || getline('.')[col - 1] =~ '\s'
endfunction"}}}
" Close any automatically opened scratch-buffers
" once completion popup the is closed
autocmd CompleteDone * pclose
" Chromatica setup.
let g:chromatica#libclang_path='/usr/lib/llvm-4.0/lib/libclang.so'
let g:chromatica#enable_at_startup=1
" Lightline config
let g:lightline = {
\ 'active': {
\ 'left': [ [ 'mode', 'paste' ],
\ [ 'gitbranch', 'readonly', 'filename', 'modified' ] ]
\ },
\ 'component_function': {
\ 'gitbranch': 'fugitive#head'
\ },
\ }
" Bind exuberant ctags window to F8
nmap <F8> :TagbarToggle<CR>
" Alias ä to Leader
" map ä <leader>
map <C-n> :NERDTreeToggle<CR>
" Alias Ctrl+ö as ESC
imap <C-ö> <ESC>
map <C-ö> <ESC>
" Rebind Command-P to Ctrl-L
"map <C-l> <C-p>
"imap <C-l> <ESC><C-p>
" Ctrl+S save behaviour
nmap <C-s> :w<CR>
imap <C-s> <ESC>:w<CR>
" Kill window plugin
"nmap <C-W>c <Plug>Kwbd
nmap <C-W>c :bdel<CR>
" Configure tabs to be 2-spaces
set expandtab
set shiftwidth=2
set softtabstop=2
set nowrap
" Terminal break to normal remap to ESC
tnoremap <Esc> <C-\><C-n>
"colorscheme gruvbox
set background=dark
colorscheme onedark
" Lightline displays the mode status so we can disable the standard built in
" indicator.
set noshowmode
let g:lightline.colorscheme = 'one'
" Activate line-numbers eveywhere
set number
set numberwidth=3
" Ctrl-C/V behaviour
map <C-c> "+y<CR>
nmap <C-v> "+p<CR>
imap <C-v> <ESC>"+p<CR>i
" Tab navigation like Firefox.
"nnoremap <C-S-tab> :tabprevious<CR>
"nnoremap <C-tab> :tabnext<CR>
nnoremap <C-t> :tabnew<CR>
" Using ctrl tab for buffer switching instead
nnoremap <C-S-tab> :bprevious<CR>
nnoremap <C-tab> :bnext<CR>
au BufReadPost *.vue set syntax=html
au FileType go set shiftwidth=8
au FileType go set softtabstop=8
" vim-autoformat configuration
" enable Autoformat on write
au BufWrite * :Autoformat
" disable stupid autofromat when in doubt
let g:autoformat_autoindent = 0
let g:autoformat_retab = 0
let g:autoformat_remove_trailing_spaces = 0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment