-
Notifications
You must be signed in to change notification settings - Fork 9
/
Copy pathinit.vim
177 lines (143 loc) · 3.7 KB
/
init.vim
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
" GENERAL SETTINGS
set ruler
set secure
set hidden
set nonumber numberwidth=3 relativenumber
set wrap linebreak
set tabstop=4 softtabstop=4 shiftwidth=4 expandtab
set breakindent
" set a more ergonomic escape
inoremap jk <ESC>
xnoremap jk <ESC>
cnoremap jk <ESC>
set timeoutlen=300
" switch semi-colon and colon
nnoremap ; :
vnoremap ; :
nnoremap : ;
vnoremap : ;
" set a more ergonomic leader key
let mapleader = ","
" insert the very magic reg-ex mode every time
set hlsearch incsearch
nnoremap / /\v
nnoremap ? ?\v
" quickly clear search highlighting
nnoremap <silent> <leader>/ :noh<CR>
" disable Ex mode
nnoremap Q <nop>
vnoremap Q <nop>
" easier window switching
nnoremap <C-j> <C-w>j
nnoremap <C-k> <C-w>k
nnoremap <C-h> <C-w>h
nnoremap <C-l> <C-w>l
tnoremap <C-j> <C-\><C-N><C-w>j
tnoremap <C-k> <C-\><C-N><C-w>k
tnoremap <C-h> <C-\><C-N><C-w>h
tnoremap <C-l> <C-\><C-N><C-w>l
" make terminal use my bash config
set shellcmdflag=-ic
" highlight trailing whitespace
nnoremap <leader>w :/\s\+$<CR>
" remove trailing whitespace
nnoremap <leader>W :%s/\s\+$//e<CR><silent>:noh<CR>
" move between editor lines (instead of actual lines)
vnoremap j gj
vnoremap k gk
vnoremap $ g$
vnoremap ^ g^
vnoremap 0 g0
nnoremap j gj
nnoremap k gk
nnoremap $ g$
nnoremap ^ g^
nnoremap 0 g0
" quickly edit and source the vimrc
nnoremap <leader>ev :vsplit $MYVIMRC<CR>
nnoremap <leader>sv :source $MYVIMRC<CR>
" focus mode
nnoremap <silent> <leader>f :call FocusMode()<CR>
let g:focus_mode=0
function! FocusMode()
if g:focus_mode
let g:focus_mode=0
set showmode
set ruler
set laststatus=2
set showcmd
set number
set relativenumber
execute "normal! zE"
else
let g:focus_mode=1
set noshowmode
set noruler
set laststatus=0
set noshowcmd
set nonumber
set norelativenumber
end
endfunction
" toggle spell checking
nnoremap <silent> <leader>s :set spell!<CR>
" configure spell check language
set spelllang=en_us
" PLUGINS
call plug#begin(stdpath('data') . '/plugged')
" use git inside vim easily
Plug 'tpope/vim-fugitive'
Plug 'tpope/vim-git'
" file browsing
Plug 'scrooloose/nerdtree'
noremap <silent> <leader>1 :NERDTreeToggle<CR>
" buffer browsers/switcher
Plug 'jlanzarotta/bufexplorer'
let g:bufExplorerDefaultHelp=0
noremap <silent> <leader>3 :BufExplorer<CR>
" branching undo plugin
Plug 'simnalamburt/vim-mundo'
let g:mundo_right = 1
nnoremap <silent> <leader>4 :MundoToggle<CR>
" ripgrep search integration
Plug 'jremmen/vim-ripgrep'
nnoremap <silent> <leader>g yaw:Rg <C-R>0<CR>
" make more commands work with repeat
Plug 'tpope/vim-repeat'
" handle word variants
Plug 'tpope/vim-abolish'
" visual selection search with # and *
Plug 'nelstrom/vim-visual-star-search'
" various mappings related to pairs
Plug 'tpope/vim-unimpaired'
" highlight colors
Plug 'chrisbra/Colorizer'
nnoremap <leader>c :ColorToggle<CR>
" vime tmux
Plug 'christoomey/vim-tmux-navigator'
" typescript
Plug 'leafgarland/typescript-vim'
Plug 'peitalin/vim-jsx-typescript'
" fuzzy-file finding
Plug 'junegunn/fzf', { 'do': { -> fzf#install() } }
Plug 'junegunn/fzf.vim'
let $FZF_DEFAULT_COMMAND = 'rg --files --hidden'
nnoremap <C-p> :FZF<CR>
" github copilot
Plug 'github/copilot.vim'
" status line
Plug 'vim-airline/vim-airline'
let g:airline_section_b = '' " hide git branch
let g:airline_section_y = '' " hide encoding
if !exists("g:airline_symbols")
let g:airline_symbols = {}
end
let g:airline_symbols.colnr = ' '
let g:airline_symbols.linenr = ' '
let g:airline_symbols.maxlinenr = ''
call plug#end()
" disable matching parenthesise when on a network file
autocmd BufReadPre //* :NoMatchParen
" color scheme
set t_Co=256
colorscheme betterblack