-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path_vimrc
136 lines (114 loc) · 3.24 KB
/
_vimrc
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
cd ~/Code/
" Spaces & tabs
set tabstop=4 " number of visual spaces per TAB
set softtabstop=4 " number of spaces in tab when editing
set expandtab " tabs are spaces
" Ui config
set number " show line numbers
set cursorline " highlight current line
set wildmenu " visual autocomplete for command menu
set shiftwidth=4 " automatic indent space
set laststatus=2 " for lightline
" set modeline=1
filetype indent on " load filetype-specific indent files
" Leader Shortcut
let mapleader=',' " leader is comma
inoremap jj <esc>
" Searching
set incsearch " search as characters are entered
set hlsearch " highlight matches
" turn off search highlight
nnoremap <leader><space> :nohlsearch<CR>
" Folding
set foldenable " enablefolding
set foldlevelstart=10 " open most folds by default
set foldnestmax=10 " 10 nested fold max
" space open/closes folds
nnoremap <space> za
set foldmethod=indent " fold based on indent level
" Key Bindings
" move vertically by visual line
nnoremap j gj
nnoremap k gk
" move to beginning/end of line
nnoremap B ^
nnoremap E $
" $/^ doesn't do anything
nnoremap $ <nop>
nnoremap ^ <nop>
" move windows
nnoremap <space> <c-w>
" highlight last inserted text
nnoremap gV `[v`]
" toggle gundo
nnoremap <leader>u :GundoToggle<CR>
" open ag.vim
nnoremap <leader>a :Ag
" open NerdTree.vim
nnoremap <C-o> :NERDTreeToggle<CR>
" jump to declaraion feature
nnoremap <leader>g :YcmCompleter GoToDefinitionElseDeclaration<CR>
" BackUps
set backup
set backupdir=~/.vim-tmp,~/.tmp,~/tmp,/var/tmp,/tmp
set backupskip=/tmp/*,/private/tmp/*
set directory=~/.vim-tmp,~/.tmp,~/tmp,/var/tmp,/tmp
set writebackup
" CtrlP settings
let g:ctrlp_match_window = 'bottom,order:ttb'
let g:ctrlp_switch_buffer = 0
let g:ctrlp_working_path_mode = 0
let g:ctrlp_user_command = 'ag %s -l --nocolor --hidden -g ""'
" Lightline settings
let g:lightline = {
\ 'active': {
\ 'left': [['mode', 'paste' ], ['readonly', 'filename', 'modified']],
\ 'right': [['lineinfo'], ['percent'], ['fileformat', 'fileencoding']]
\ }
\ }
" Set Colors
colorscheme molokai " https://github.com/sjl/badwolf/blob/master/colors/badwolf.vim
syntax enable " enable syntax processing
" vim:foldmethod=marker:foldlevel=0
"
"
" Functions
function Compile()
if &filetype ==# 'cpp'
exec "!g++ % -o %< -g -Wall -Wextra -Wconversion -std=c++11"
elseif &filetype ==# 'c'
exec "!gcc % -o %< -g -Wall -Wextra -Wconversion"
elseif &filetype ==# 'tex'
exec "!xelatex '%'"
elseif &filetype ==# 'java'
exec "!javac %"
endif
endfunction
function Debug()
if &filetype ==# 'cpp'
exec "!lldb ./%<"
elseif &filetype ==# 'tex'
exec "!open './%<.pdf'"
elseif &filetype ==# 'java'
exec "!jdb %<"
endif
endfunction
function Run()
if &filetype ==# 'cpp'
exec "!time ./%<"
elseif &filetype ==# 'tex'
exec "!open -a Preview.app './%<.pdf'"
elseif &filetype ==# 'java'
exec "!java %<"
elseif &filetype ==# 'html'
exec "!firefox %"
elseif &filetype ==# 'php'
exec "!php %"
elseif &filetype ==# 'sh'
exec "!bash %"
endif
endfunction
map <F9> : call Compile() <CR>
map <F5> : call Debug() <CR>
map <F6> : call Run() <CR>
map <F2> : ! python3 % <CR>