summaryrefslogtreecommitdiff
path: root/.vimrc
blob: a6e0644c719935690f42853111c065de2cd0c329 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
" General options
set ruler 			" show the cursor position all the time
set showcmd 			" display incomplete commands
set ttimeout 			" time out for key codes
set ttimeoutlen=100 		" wait up to 100ms after Esc for special key
set display=truncate 		" show @@@ in the last line if it is truncated
set scrolloff=5 		" show a few lines around the cursor
set relativenumber 		" relative line numbering
set tabstop=4 			" 4-space tabs
set softtabstop=4 		" 4-space tabs
set shiftwidth=4 		" 4-space shiftwidth
set backspace=indent,eol,start 	" backspace over everything in insert
set directory=$HOME/.vim/swapfiles// " common swap directory
set fillchars+=vert:\ 
syntax on 			" switch syntax highlighting on

" Matching and key mappings
:match ErrorMsg '\%>80v.\+' " right-hand drift warning
"" automatically finish closing tags
:inoremap <lt>/ </<C-x><C-o><Esc>==gi

" only do this if autocommands enabled
if has("autocmd")
	" enable file type detection and load indent files
	filetype plugin indent on

	augroup vimStartup
		au!

		"at startup, jump to last cursor position if valid
		autocmd BufReadPost *
		\ 	if line("'\"") >= 1 && line("'\"") <= line("$") && &ft !~# 'commit'
		\ 	| exe "normal! g`\""
		\ 	| endif
	augroup END
endif



if empty(glob('~/.vim/autoload/plug.vim'))
  silent !curl -fLo ~/.vim/autoload/plug.vim --create-dirs
    \ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
  autocmd VimEnter * PlugInstall --sync | source $MYVIMRC
endif

call plug#begin('~/.vim/plugged')
"Plug 'dense-analysis/ale'
Plug 'neoclide/coc.nvim', {'do': 'yarn install --frozen-lockfile'}
call plug#end()

"" ALE
"let g:ale_linter_aliases = {
"\	'vue': ['vue', 'javascript'],
"\	'liquid': ['liquid', 'html'],
"\}
"let g:ale_linters = {
"\	'vue':			['eslint', 'vls'],
"\ 	'javascript':	['eslint'],
"\	'html':			['htmlhint'],
"\	'rust':			[]
"\}
"let g:ale_fixers = {
"\	'css':			['prettier'],
"\	'html':			['prettier'],
"\	'javascript':	['eslint'],
"\	'json':			['prettier'],
"\	'liquid':		['prettier'],
"\	'markdown':		['prettier'],
"\	'vue':			['eslint'],
"\ 	'scss':			['prettier'],
"\	'*':			['remove_trailing_lines', 'trim_whitespace'],
"\	'rust':			[]
"\}
"let g:ale_fix_on_save = 1

" COC.VIM
inoremap <silent><expr> <TAB>
\	pumvisible() ? "\<C-n>" :
\	<SID>check_back_space() ? "\<TAB>" :
\	coc#refresh()
inoremap <expr><S-TAB> pumvisible() ? "\<C-p>" : "\<C-h>"

function! s:check_back_space() abort
	let col = col('.') - 1
	return !col || getline('.')[col - 1] =~# '\s'
endfunction

highlight CocFloating ctermbg=black

" Auto-reloading scripts
autocmd BufWritePost i3.base !themer.sh -r
autocmd BufWritePost */i3blocks/config !i3-msg reload