195 lines
4.7 KiB
Smarty
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>
|
|
" ==================== "
|