summaryrefslogtreecommitdiff
path: root/.config/vim/vimrc
blob: 6c6ad4905df800d1df5164dbf12c150afccef1a2 (plain)
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
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
runtime! archlinux.vim
set nocompatible
scriptencoding utf-8

set directory=$XDG_CACHE_HOME/vim,/tmp
set backupdir=$XDG_CACHE_HOME/vim,/tmp
set viminfo=%,<800,'10,/50,:100,h,f0,n$XDG_CACHE_HOME/vim/.viminfo
let $MYVIMRC="$XDG_CONFIG_HOME/vim/vimrc"
set runtimepath=$XDG_CONFIG_HOME/vim,$XDG_CONFIG_HOME/vim/after,$VIM,$VIMRUNTIME,$VIM/vimfiles,$VIM/vimfiles/after

" Check if the backup/swap dir exists
if !isdirectory($XDG_CACHE_HOME)
  !mkdir $XDG_CACHE_HOME
endif

" behaviour
set history=200
set wildmenu
set ruler
set cursorline
set showmatch
set hlsearch
set backspace=2
set incsearch
set formatoptions+=tcroqn2bmj
set number
set nowrap
set splitright

" Fix shift-tab
exe 'set t_kB=' . nr2char(27) . '[Z'

" Enable mouse support
set mouse=a

set clipboard=unnamedplus

" tabs
set expandtab
set tabstop=2
set softtabstop=2
set shiftwidth=2
set smartindent
set textwidth=80

" netrw settings
let g:netrw_banner=0
let g:netrw_browse_split=1
let g:netrw_altv=4

set bg=dark

" theme
syntax enable

" thematics
set background=dark
set colorcolumn=81


"let &t_8f = "\<Esc>[38:2:%lu:%lu:%lum"
"let &t_8b = "\<Esc>[48:2:%lu:%lu:%lum"

" Colorscheme overrides, for transparency
let g:moonflyTransparent = 1
let g:moonflyCursorColor = 1
let g:moonflyTerminalColors = 1
let g:moonflyUndercurls = 1

let g:jellybeans_overrides = { 'background': {
\ 'guibg':      'none',
\ 'ctermbg':    'none',
\ '256ctermbg': 'none',
\}}
let g:jellybeans_use_term_italics = 1

" Enable termguicolors
if exists('+termguicolors')
  let &t_8f = "\<Esc>[38;2;%lu;%lu;%lum"
  let &t_8b = "\<Esc>[48;2;%lu;%lu;%lum"
  set termguicolors
endif

"colorscheme jellybeans
colorscheme moonfly

set listchars=tab:\ \ >,extends:…,precedes:…
set list
set tags+=./tags
set tags+=../tags


" adding pathogen
execute pathogen#infect('bundle/{}')
filetype plugin indent on

" encodings
set fileencoding=utf-8
set encoding=utf-8
set fileformats=unix

set grepprg=grep\ -nH\ $*

"set statusline+=%#warningmsg#
"set statusline+=%{SyntasticStatuslineFlag()}
"set statusline+=%*

let g:syntastic_always_populate_loc_list = 1
let g:syntastic_auto_loc_list            = 1
let g:syntastic_check_on_open            = 1
let g:syntastic_check_on_wq              = 0

" filetypes
let g:syntastic_disabled_filetypes=['asm', 's', 'latex', 'tex', 'javac', 'java']

""" LATEX STUFFS
let g:tex_flavor='latex'
let g:vimtex_view_method='zathura'
let g:vimtex_quickfix_mode=0
set conceallevel=2
let g:tex_conceal='abdmg'
let g:vimtex_compiler_method = 'latexrun'
let g:vimtex_compiler_latexrun = {
            \ 'backend' : 'jobs',
            \ 'background' : 1,
            \ 'build_dir' : 'latex.out',
            \ 'options' : [
            \   '-verbose-cmds',
            \   '--latex-args="-synctex=1"',
            \ ],
            \}

let g:latex_view_general_viewer = 'zathura'
let g:vimtex_view_method = 'zathura'

" Remove trailing cancer on write
autocmd BufWritePre * %s/\s\+$//e

" Set tmp-file default type to `sh` (used when editing command line)
autocmd BufNewFile,BufRead /tmp/[a-zA-Z0-9]\+/ setlocal ft=sh

autocmd BufReadPre *.asm !set ft=nasm

set makeprg=GCC_COLORS=\ make

vmap     // y/\V<C-R>"<CR>
vnoremap <leader>( <ESC>`>a)<ESC>`<i(<ESC>
vnoremap <leader>[ <ESC>`>a]<ESC>`<i[<ESC>
vnoremap <leader>{ <ESC>`>a}<ESC>`<i{<ESC>

match ErrorMsg '\%>80v.\+'
match ErrorMsg '\( \|	\)\+$'

map <F5> :make<CR>

map! <ESC>[1;5A <C-Up>
map! <ESC>[1;5B <C-Down>
map! <ESC>[1;5C <C-Right>
map! <ESC>[1;5D <C-Left>
map  <ESC>[1;5A <C-Up>
map  <ESC>[1;5B <C-Down>
map  <ESC>[1;5C <C-Right>
map  <ESC>[1;5D <C-Left>

map <ScrollWheelUp> <C-Y>
"map <ScrollWheelDown> <C-E>

imap <C-E> <ESC>A
imap <C-A> <ESC>I

"autocmd VimEnter * silent !echo -ne "\e[1 q"
"autocmd VimResume * silent !echo -ne "\e[1 q"

" Preserve clipboard
autocmd VimLeave * call system("xsel -ib", getreg())
autocmd VimSuspend * call system("xsel -ib", getreg())

"if has("autocmd")
"  augroup templates
"    autocmd BufNewFile *.h 0r $XDG_CONFIG_HOME/vim/templates/skeleton.h
"    autocmd BufNewFile *.h "s/<++DEF++>/" toupper(expand('%:t:r') . "_" . expand('%:e')))
"  augroup END
"endif


" Change cursor to block
"   1 -> solid underscore
"   2 -> block
"   4 -> underline
"   5 -> blinking vertical bar
"   6 -> solid vertical bar
"   7 -> snowman
autocmd VimEnter    * silent execute "!echo -e '\e[2 q'"
autocmd VimLeave    * silent execute "!echo -e '\e[6 q'"
autocmd InsertEnter * silent execute "!echo -ne '\e[6 q'"
autocmd InsertLeave * silent execute "!echo -ne '\e[2 q'"

" Undercurls
let &t_Cs = "\e[4:3m"
let &t_Ce = "\e[4:0m"
hi SpellBad   guisp=red    gui=undercurl guifg=NONE guibg=NONE ctermfg=NONE ctermbg=NONE term=underline cterm=undercurl ctermul=red
hi SpellCap   guisp=yellow    gui=undercurl guifg=NONE guibg=NONE ctermfg=NONE ctermbg=NONE term=underline cterm=undercurl ctermul=yellow