Files
df/tree/.config/nvim/init.vim.tpl

195 lines
4.7 KiB
Smarty

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'
Plug 'rhysd/vim-grammarous'
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 <up> <nop>
nnoremap <down> <nop>
nnoremap <left> <nop>
nnoremap <right> <nop>
inoremap <up> <nop>
inoremap <down> <nop>
inoremap <left> <nop>
inoremap <right> <nop>
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 <leader> to space
let mapleader = " "
" Map to fuzzy file search
noremap <leader>f :FZF<Enter>
" Clear highlights
noremap <leader>h :noh<Enter>
" trigger vim-rooter
noremap <c-r> :Rooter<Enter>
let g:rooter_manual_only = 1
" Toggle between buffers
nnoremap <leader><leader> <c-^>
" Managing tabs
nnoremap <leader>n :tabe<Enter>:FZF<Enter>
nnoremap <c-j> gt
nnoremap <c-k> gT
" undo-redo
nnoremap U :redo<Enter>
" language server shortcuts
nnoremap <leader>a :CocAction<Enter>
nnoremap <leader>r :CocCommand document.renameCurrentWord<Enter>
" vim-smooth-scroll hotkey overrides
noremap <silent> <c-u> :call smooth_scroll#up(&scroll, 0, 3)<CR>
noremap <silent> <c-d> :call smooth_scroll#down(&scroll, 0, 3)<CR>
noremap <silent> <c-b> :call smooth_scroll#up(&scroll*2, 0, 4)<CR>
noremap <silent> <c-f> :call smooth_scroll#down(&scroll*2, 0, 4)<CR>
" ==================== "