-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathvimrc
More file actions
executable file
·145 lines (123 loc) · 2.92 KB
/
vimrc
File metadata and controls
executable file
·145 lines (123 loc) · 2.92 KB
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
" AutoSave {{{
let g:auto_save = 1
let g:auto_save_silent = 0
let g:auto_save_events = ["TextChanged", "FocusLost", "InsertLeave"]
" }}}
" File management & Git {{{
let g:eunuch_no_maps = 1
" }}}
" Msc languages {{{
let g:vim_json_conceal=0
let g:go_def_mode='gopls'
let g:go_info_mode='gopls'
" }}}
" tmux and testing {{{
let g:VimuxOrientation = "v"
let g:VimuxHeight = "33"
let g:test#preserve_screen = 1
let g:test#echo_command = 0
let test#strategy = "vimux"
nnoremap <silent> <leader><space> :VimuxPromptCommand<cr>
nnoremap <silent> <leader>x :TestNearest<CR>
nnoremap <silent> <leader>X :TestFile<CR>
nnoremap <silent> <leader>q :TestLast<CR>
" UI {{{
set termguicolors
if filereadable(expand("~/.darkmode"))
set background=dark
colorscheme solarized-osaka
else
set background=light
colorscheme solarized-osaka
endif
set number
set colorcolumn=90
set synmaxcol=140
set scrolloff=5
set splitbelow
set splitright
" Resize splits when the win is resized
au VimResized * wincmd =
augroup autoRead
autocmd!
autocmd FocusGained,BufEnter * silent! checktime
augroup END
" Text Formatting
set tabstop=2
set shiftwidth=2
set expandtab
set nowrap
set textwidth=90
" set list listchars=tab:»·,trail:·
"}}}
" Settings {{{
set undofile
set undodir=~/.tmp,/tmp
" }}}
" Folding {{{
set foldenable
set foldnestmax=10
set foldlevelstart=10
set foldmethod=indent
nnoremap f1 :set foldlevel=0<cr>
nnoremap f2 :set foldlevel=1<cr>
nnoremap f3 :set foldlevel=2<cr>
nnoremap fa :set foldlevel=99<cr>
" }}}
" Key mappings {{{
" Buffer management
nnoremap <tab> :bn<CR>
nnoremap <S-tab> :bp<CR>
"}}}
" Msc annoyances {{{
nnoremap K <nop>
" reselect visual lock after indent/outdent
vnoremap < <gv
vnoremap > >gv
" }}}
" Searching {{{
set smartcase
set showmatch
set wildignore+=node_modules/*
set wildignore+=app/assets/images/**/*
set wildignore+=vendor/cache/**/*
nnoremap <leader>, :noh<cr>
nnoremap <leader>f :%s///<left><left>
nnoremap <Leader>s :%s/\<<C-r><C-w>\>//g<Left><Left>
" }}}
augroup MyAutoCmds
autocmd!
autocmd FileType javascript.jsx setlocal commentstring={/*\ %s\ */}
autocmd FileType ruby setlocal indentkeys-=.
autocmd BufReadPost *.html* setlocal formatoptions-=t
autocmd BufRead,BufNewFile COMMIT_EDITMSG setlocal ft=diff spell!
autocmd BufRead,BufNewFile *.md setlocal nolist
augroup END
" Spell checking {{{
set spellfile+=~/.config/nvim/spell/en.utf-8.add
set dict+=~/.config/nvim/spell/en.utf-8.add
noremap <leader>ss :setlocal spell!<cr>
noremap <leader>sn ]s
noremap <leader>sp [s
noremap <leader>sa zg
noremap <leader>sd z=
"}}}
" Edit .vimrc {{{
command! -bar Ev :e ~/.vimrc
augroup vimrc
autocmd!
au bufwritepost .vimrc source $MYVIMRC
au bufread .vimrc set foldmethod=marker
augroup END
" }}}
" Ruby {{{
nnoremap <Leader>m :Emodel<space>
nnoremap <Leader>c :Econtroller<space>
" }}}
" New stuff {{{
noremap <f1> <Nop>
nnoremap <silent> gx :!xdg-open '<cWORD>'<cr>
vnoremap Y "+y
nnoremap Y "+Y
set mousescroll=ver:1
" }}}