summaryrefslogtreecommitdiffstats
path: root/vim/vimrc
blob: f060ae74571ba4f0ec8b2e620b0a68cc861f39b4 (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
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
filetype plugin indent on

set encoding=utf-8
set fileencoding=utf-8
set fileencodings=utf-8
set nocompatible
set hidden

set backspace=indent,eol,start
set virtualedit=all

set lazyredraw
set updatetime=250
set ttimeoutlen=10
set timeoutlen=300
set redrawtime=1500

let mapleader = " "
let maplocalleader = " "

syntax enable

set number
set norelativenumber

set showtabline=0
set laststatus=0
set signcolumn=no
set fillchars+=eob:\ 

set guicursor=n-v-c:block-blinkwait300-blinkon200-blinkoff150

set tabstop=2
set softtabstop=2
set shiftwidth=2
set expandtab
set autoindent

set ruler
set title
set titlestring=%F

set termguicolors
set background=dark
set ignorecase
set smartcase
set incsearch

set nowrap
set linebreak
set breakindent
set scrolloff=8
set sidescrolloff=8
set splitright
set splitbelow

set cindent
set cinoptions=l1,g0,t0,(0,ws1,N-s,j1
set copyindent
set preserveindent
set backspace=indent,eol,start

set formatoptions-=c
set formatoptions-=r
set formatoptions-=o

set cinwords+=Assert,PushStruct,internal,arena,Arena

set autoread
set autowrite
set nobackup
set noswapfile
set noundofile

set tags=./tags;,tags;

set mouse=
set clipboard=unnamedplus
set completeopt=menu,menuone,noselect
set shortmess+=c
set iskeyword-=_

nnoremap <C-h> <C-w>h
nnoremap <C-j> <C-w>j
nnoremap <C-k> <C-w>k
nnoremap <C-l> <C-w>l

nnoremap <M-Up> :resize +2<CR>
nnoremap <M-Down> :resize -2<CR>
nnoremap <M-Left> :vertical resize -2<CR>
nnoremap <M-Right> :vertical resize +2<CR>

nnoremap <leader>v :vsplit<CR>
nnoremap <leader>h :split<CR>
nnoremap <leader>to :tabnew<CR>
nnoremap <leader>tc :tabclose<CR>
nnoremap <leader>tl :tabnext<CR>
nnoremap <leader>th :tabprevious<CR>

vnoremap J :m '>+1<CR>gv=gv
vnoremap K :m '<-2<CR>gv=gv

vnoremap < <gv
vnoremap > >gv

nnoremap <C-d> <C-d>zz
nnoremap <C-u> <C-u>zz
nnoremap n nzz
nnoremap N Nzz

nnoremap <leader>p "_dP
xnoremap <leader>p "_dP

nnoremap <leader>R :%s/\v
vnoremap <leader>R :s/\v

nnoremap <leader>w :w<CR>
nnoremap <leader>q :q<CR>
nnoremap <leader>Q :qa!<CR>
nnoremap <C-x><C-f> :Oil<CR>

nnoremap <leader>bn :bnext<CR>
nnoremap <leader>bp :bprevious<CR>
nnoremap <leader>bd :bdelete!<CR>
nnoremap <leader>ba :%bd<bar>e#<bar>bd#<CR>

nnoremap <leader>tr :set invrelativenumber<CR>
nnoremap <leader>tw :set invwrap<CR>
nnoremap <leader>yp :let @+ = expand('%:p')<CR>:echo 'Copied: ' . expand('%:p')<CR>
nnoremap <silent> <leader>sh :terminal<CR>
nnoremap <C-]> g<C-]>

nnoremap <leader><leader> :Files<CR>
nnoremap <leader>fa :Rg<CR>
nnoremap <leader>fb :Buffers<CR>
nnoremap <leader>fr :History<CR>
nnoremap <leader>gs :GFiles?<CR>
nnoremap <leader>sr :History:<CR>
nnoremap <leader>tg :Tags<CR>

if has('nvim')
else
  nnoremap <C-x><C-f> :Explore<CR>
endif

" Disable blinking cursor
set gcr=a:blinkon0

if !exists('g:loaded_matchit')
  runtime macros/matchit.vim
endif

augroup VimGroup
  autocmd!
  autocmd VimLeave * if filereadable('Session.vim') | call writefile(readfile('Session.vim'), 'Session.vim') | endif
augroup END