-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathvimrc.plugin
More file actions
152 lines (121 loc) · 3.79 KB
/
vimrc.plugin
File metadata and controls
152 lines (121 loc) · 3.79 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
146
147
148
149
150
151
152
filetype plugin indent on
set nocompatible " be iMproved
let mapleader = " "
syntax on
set number
set relativenumber
set background=dark
set colorcolumn=100
set backspace=2
set mouse=a
set mousemodel=popup_setpos
set mousehide
set nowrap
set scrolloff=3 "上下滚动时保留头部和尾部3行,方便阅读上下文
set autoindent
set wildmenu
set wildmode=list:longest
"search
set ignorecase smartcase " 搜索时忽略大小写,但在有一个或以上大写字母时仍保持对大小写敏感
set nowrapscan " 禁止在搜索到文件两端时重新搜索
" highlight current line
set nocursorline "cursorcolumn
set hlsearch
nnoremap <leader>hl :nohlsearch<cr>
set splitbelow
set splitright
" 查询到匹配关键字时移到屏幕中间
nnoremap <silent> n nzz
nnoremap <silent> n nzz
nnoremap <silent> * *zz
nnoremap <silent> # #zz
nnoremap <silent> g* g*zz
" make c-c same as esc
imap <c-c> <esc>
nnoremap <leader>p :set invpaste paste?<cr>
map \\ :q<cr>
"缩进时不影响已选取的可视化区域
vnoremap < <gv
vnoremap > >gv
" 通过 w!! 强制保存
cmap w!! w !sudo tee >/dev/null %
" 在命令模式下,可以类似bash下的ctrl+a/e 快速跳转
cnoremap <c-a> <home>
cnoremap <c-h> <left>
cnoremap <c-l> <right>
cnoremap <c-e> <end>
nnoremap <leader>t :terminal<cr>
set termwinsize=10x0
" airline extention.
let g:airline#extensions#ale#enabled = 1 " 提示消息格式
" uncomment the following to have vim jump to the last position when
" reopening a file
if has("autocmd")
au bufreadpost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g'\"" | endif
endif
nmap <leader>q :call togglequickfixlist()<cr>
nmap <leader>l :call togglelocallist()<cr>
"close the preview window
nmap <leader>z :wincmd z<cr>
"split navigations
nnoremap <C-j> :wincmd j<CR>
nnoremap <C-k> :wincmd k<CR>
nnoremap <C-l> :wincmd l<CR>
nnoremap <C-h> :wincmd h<CR>
"INDENT
set shiftwidth=4 " 设定 << 和 >> 命令移动时的宽度为 4
set softtabstop=4 " 使得按退格键时可以一次删掉 4 个空格
set tabstop=4 " 设定 tab 长度为 4
"set expandtab "tab 变成空格
" Yank to system register
"nnoremap y "*y
"set clipboard=unnamed
"------ Plugins Start ------
nnoremap <C-p> :Files<CR>
nnoremap <C-s> :Rg<CR>
" Nerdtree
map <C-n> :NERDTreeToggle<CR>
autocmd bufenter * if (winnr("$") == 1 && exists("b:nerdtree") && b:nerdtree.istabtree()) | q | endif
"tagbar.vim
nnoremap <silent> <C-y> :TagbarToggle<CR>
" Indent Guide
let g:indent_guides_enable_on_vim_startup = 1
call plug#begin('~/.vim/plugged')
Plug 'fatih/vim-go', { 'do': ':GoUpdateBinaries' }
Plug 'junegunn/fzf', { 'do': { -> fzf#install() } }
Plug 'junegunn/fzf.vim'
Plug 'preservim/tagbar'
"Plug 'nathanaelkane/vim-indent-guides'
Plug 'scrooloose/nerdtree', { 'on': 'NERDTreeToggle' }
Plug 'Xuyuanp/nerdtree-git-plugin'
Plug 'Raimondi/delimitMate'
Plug 'ervandew/supertab'
Plug 'vim-airline/vim-airline'
Plug 'milkypostman/vim-togglelist'
Plug 'dense-analysis/ale'
call plug#end()
"------ Plugins End ------
"
" ALE
let g:ale_completion_enabled = 1
set omnifunc=ale#completion#OmniFunc
nnoremap <C-]> :ALEGoToDefinition<CR>
nnoremap <leader>] :ALEGoToDefinition<CR>
nnoremap <leader>[ :ALEFindReferences<CR>
nnoremap <leader>h :ALEHover<CR>
nnoremap <leader>x :ALESymbolSearch <C-r><C-w><CR>
let g:airline#extensions#ale#enabled = 1
let g:ale_lint_on_text_changed = 'never'
let g:ale_lint_on_insert_leave = 0
let g:ale_lint_on_enter = 0
let g:ale_list_vertical = 1
let g:SuperTabDefaultCompletionType = "<c-n>"
"------ Golang -------- Start
autocmd FileType go nmap <leader>b <Plug>(go-build)
autocmd FileType go nmap <leader>r <Plug>(go-run)
autocmd FileType go nmap <leader>f <Plug>(go-fmt)
nnoremap <C-]> :GoDef<CR>
nnoremap <leader>] :GoDef<CR>
nnoremap <leader>[ :GoReferrers<CR>
set autowrite
"------ Golang -------- End