runtime! archlinux.vim if empty(glob('~/.local/share/nvim/site/autoload/plug.vim')) silent !curl -fLo ~/.local/share/nvim/site/autoload/plug.vim --create-dirs \ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim autocmd VimEnter * PlugInstall --sync | source $MYVIMRC endif " plugins call plug#begin('~/.local/share/nvim/plugged') Plug 'tpope/vim-fugitive' Plug 'easymotion/vim-easymotion' Plug 'roxma/vim-hug-neovim-rpc' Plug 'roxma/nvim-yarp' Plug 'airblade/vim-rooter' Plug 'junegunn/fzf' Plug 'Shougo/deoplete.nvim', { 'do': ':UpdateRemotePlugins' } Plug 'neutaaaaan/iosvkem' Plug 'vimwiki/vimwiki' " themes Plug 'chriskempson/base16-vim' " gui stuff Plug 'itchyny/lightline.vim' Plug 'machakann/vim-highlightedyank' Plug 'terryma/vim-smooth-scroll' " Language support Plug 'neoclide/coc.nvim', {'branch': 'release'} Plug 'rust-lang/rust.vim' Plug 'cespare/vim-toml' Plug 'dag/vim-fish' call plug#end() set nocompatible set backspace=indent,eol,start set tabstop=4 set shiftwidth=4 set noet " preview substitute (%s/a/b) set inccommand=nosplit " use unicode set encoding=utf-8 " show whitespace set listchars=nbsp:¬,trail:·,precedes:«,extends:▸,tab:»\ set list " highlight column 80 "highlight ColorColumn ctermbg=darkgray highlight ColorColumn ctermbg=16 set colorcolumn=100 " colors and themes set background = "dark" if !has('gui_running') set t_Co=256 endif if (match($TERM, "-256color") != -1) && (match($TERM, "screen-256color") == -1) " screen does not (yet) support truecolor set termguicolors endif let base16colorspace=256 {% if light %} colorscheme base16-gruvbox-light-hard {% else %} colorscheme base16-gruvbox-dark-hard {% end %} " brighter comments call Base16hi("Comment", g:base16_gui09, "", g:base16_cterm09, "", "", "") " Lightline let g:lightline = { \ 'active': { \ 'left': [ [ 'mode', 'paste' ], \ [ 'cocstatus', 'readonly', 'filename', 'modified' ] ] \ }, \ 'component_function': { \ 'filename': 'LightlineFilename', \ 'cocstatus': 'coc#status' \ }, \ } function! LightlineFilename() return expand('%:t') !=# '' ? @% : '[No Name]' endfunction " Use auocmd to force lightline update. autocmd User CocStatusChange,CocDiagnosticChange call lightline#update() " vimwiki let g:vimwiki_list = [{'path': '~/wiki/text/', 'path_html': '~/wiki/html/'}] " misc set mouse=a set history=50 set ruler set wildmode=longest,full set wildmenu set suffixes=.bak,~,.swp,.o,.info,.aux,.log,.dvi,.bbl,.blg,.brf,.cb,.ind,.idx,.ilg,.inx,.out,.toc,.png,.jpg set number set relativenumber set clipboard+=unnamedplus " No arrow keys --- force yourself to use the home row nnoremap nnoremap nnoremap nnoremap inoremap inoremap inoremap inoremap syntax enable filetype plugin indent on " Handlebars -> HTML autocmd BufNewFile,BufRead *.hbs set syntax=html " Config template files autocmd BufNewFile,BufRead *.vim.tpl set syntax=vim autocmd BufNewFile,BufRead *.yml.tpl set syntax=yaml autocmd BufNewFile,BufRead *.toml.tpl set syntax=toml autocmd BufNewFile,BufRead *.fish.tpl set syntax=fish " Rust syntax highlighting for rust-ish files autocmd BufNewFile,BufRead *.ron set syntax=rust autocmd BufNewFile,BufRead *.lalrpop set syntax=rust autocmd BufNewFile,BufRead *.pest set syntax=rust " Word-wrapping for latex files autocmd BufNewFile,BufRead *.tex set linebreak " rust-stuff let g:rustfmt_autosave = 1 let g:rustfmt_emit_files = 1 let g:rustfmt_fail_silently = 0 let g:rust_clip_command = 'xclip -selection clipboard' " === FISH CONFIGURATION === " " Use fish for compiling fish-files autocmd FileType fish compiler fish " Code block folding "autocmd FileType fish setlocal foldmethod=expr " === ================== === " " === KEY BINDINGS === " " Map to space let mapleader = " " " Map to fuzzy file search noremap f :FZF " Clear highlights noremap h :noh " trigger vim-rooter noremap :Rooter let g:rooter_manual_only = 1 " Toggle between buffers nnoremap " Managing tabs nnoremap n :tabe:FZF nnoremap gt nnoremap gT " undo-redo nnoremap U :redo " language server shortcuts nnoremap a :CocAction nnoremap r :CocCommand document.renameCurrentWord " vim-smooth-scroll hotkey overrides noremap :call smooth_scroll#up(&scroll, 0, 3) noremap :call smooth_scroll#down(&scroll, 0, 3) noremap :call smooth_scroll#up(&scroll*2, 0, 4) noremap :call smooth_scroll#down(&scroll*2, 0, 4) " ==================== "