summaryrefslogtreecommitdiff
path: root/.vimrc
blob: df751524eb4e93864a12acee436e7831cd921952 (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
set nocompatible
filetype off

set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()

" Bundles
" Actual plugins
Plugin 'VundleVim/Vundle.vim'
Plugin 'tpope/vim-fugitive'
Plugin 'ctrlpvim/ctrlp.vim'
Plugin 'tpope/vim-surround'
Plugin 'tpope/vim-repeat'
Plugin 'editorconfig/editorconfig-vim'
Plugin 'gerw/vim-HiLinkTrace'
" Meta plugins
Plugin 'vim-scripts/ingo-library'
Plugin 'vim-scripts/SyntaxRange'
" Syntax highlighting
Plugin 'jparise/vim-graphql'
Plugin 'plasticboy/vim-markdown'
Plugin 'cespare/vim-toml'
Plugin 'rust-lang/rust.vim'
Plugin 'mxw/vim-jsx'
Plugin 'pangloss/vim-javascript'
Plugin 'kchmck/vim-coffee-script'
Plugin 'google/vim-jsonnet'
Plugin 'sirtaj/vim-openscad'
Plugin 'leafgarland/typescript-vim'
Plugin 'beyondmarc/glsl.vim'
Plugin 'vim-scripts/scons.vim'
Plugin 'calviken/vim-gdscript3'
Plugin 'wannesm/wmgraphviz.vim'
Plugin 'sotte/presenting.vim'
Plugin 'ziglang/zig.vim'
Plugin 'gpanders/vim-scdoc'
Plugin 'https://tildegit.org/sloum/gemini-vim-syntax'
" /Bundles

call vundle#end()

filetype plugin indent on  

set laststatus=2
set t_Co=256

syntax enable

set expandtab
set tabstop=4
set softtabstop=4
set shiftwidth=4
set autoindent
set encoding=utf-8
set magic " unbreak vim's regex implementation

set ruler
set cc=80
set nowrap

set ignorecase
set smartcase

set splitbelow
set hidden
set notimeout

set number
set cursorline
set wildmenu
set lazyredraw
set showmatch
set nofoldenable

set incsearch
set showmatch
set hlsearch

set listchars=tab:>ยท,trail:~
set list


" Resize windows and move tabs and such with the mouse
"set mouse=a

" Don't litter swp files everywhere
set backupdir=~/.cache
set directory=~/.cache


syntax on
let mapleader = "\<space>"
nnoremap \\ :noh<cr> " Clear higlighting
nnoremap <silent> <F5> :let _s=@/<Bar>:%s/\s\+$//e<Bar>:let @/=_s<Bar>:nohl<CR> " Trim trailing spaces
nnoremap Y y$
nnoremap cc :center<cr>
inoremap <C-c> <ESC>
" no Ex mode 
nnoremap Q <Nop>

" Preferences for various file formats
autocmd FileType c setlocal noet ts=8 sw=8 tw=80
autocmd FileType h setlocal noet ts=8 sw=8 tw=80
autocmd FileType cpp setlocal noet ts=8 sw=8 tw=80
autocmd FileType s setlocal noet ts=8 sw=8
autocmd FileType go setlocal noet ts=4 sw=4
autocmd FileType hy setlocal filetype=lisp
autocmd FileType sh setlocal noet ts=4 sw=4
autocmd BufRead,BufNewFile *.js setlocal et ts=2 sw=2
autocmd FileType html setlocal et ts=2 sw=2
autocmd FileType htmldjango setlocal et ts=2 sw=2
autocmd FileType ruby setlocal et ts=2 sw=2
autocmd FileType scss setlocal et ts=2 sw=2
autocmd FileType yaml setlocal et ts=2 sw=2
autocmd FileType markdown setlocal tw=80 et ts=2 sw=2
autocmd FileType text setlocal tw=80
autocmd FileType meson setlocal noet ts=2 sw=2
autocmd FileType bzl setlocal et ts=2 sw=2
autocmd FileType typescript setlocal et ts=2 sw=2
autocmd FileType python setlocal et ts=4 sw=4
autocmd BufNewFile,BufRead *.ms set syntax=python ts=4 sw=4 noet
autocmd FileType tex hi Error ctermbg=NONE
autocmd FileType mail setlocal noautoindent
autocmd FileType gmi set wrap linebreak
augroup filetypedetect
  autocmd BufRead,BufNewFile *mutt-*              setfiletype mail
augroup filetypedetect
  autocmd BufRead,BufNewFile *qutebrowser-editor-* set ts=4 sw=4 et
autocmd BufNewFile,BufRead * if expand('%:t') == 'APKBUILD' | set ft=sh | endif
autocmd BufNewFile,BufRead * if expand('%:t') == 'PKGBUILD' | set ft=sh | endif

let g:presenting_top_margin = 2

set wildignore+=*/node_modules/*     " MacOSX/Linux

command Wq wq
command WQ wq
command W w
command Q q
nnoremap Q <nop>