Created
August 16, 2017 13:25
-
-
Save telamon/8d1f79e52cb8b1d7871c8dd5a089c37d to your computer and use it in GitHub Desktop.
My amazing 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
" 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