跟我一起学习Vim--Vim配置

Vim基本配置

刚刚安装或者系统默认的Vim是非常丑陋的,如:没有语法高亮、不显示行号……当然了功能也不是很完善,根本不像网上说的那样神奇,这是因为没有对Vim进行一些配置,现在我们就来配置一下,让其发挥神器的功能,编辑vim ~/.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
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
178
179
180
181
182
183
184
185
186
187
188
189
190
191
" 关闭与vi的兼容模式
set nocompatible
filetype off
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
Plugin 'VundleVim/Vundle.vim'
" Plugin 'Lokaltog/vim-powerline'
Plugin 'bling/vim-airline'
Plugin 'altercation/vim-colors-solarized'
Plugin 'tomasr/molokai'
Plugin 'scrooloose/nerdcommenter'
Plugin 'kien/ctrlp.vim'
Plugin 'elzr/vim-json'
Plugin 'godlygeek/tabular'
Plugin 'plasticboy/vim-markdown'
Plugin 'iamcco/mathjax-support-for-mkdp'
Plugin 'iamcco/markdown-preview.vim'
" Plugin 'suan/vim-instant-markdown'
call vundle#end()
filetype plugin indent on

let g:vim_markdown_folding_disabled=1
let g:vim_markdown_frontmatter=1
let g:vim_markdown_folding_style_pythonic=1
let g:vim_markdown_folding_level=6
let g:vim_markdown_conceal=0

let g:mkdp_path_to_chrome='google-chrome'
" let g:mkdp_auto_start=1
" let g:mkdp_auto_open=0
nmap <silent> <F8> <plug>MarkdownPreview
imap <silent> <F8> <plug>MarkdownPreview
nmap <silent> <F9> <plug>StopMarkdownPreview
imap <silent> <F9> <plug>StopMarkdownPreview


""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 自定义配置
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 启动Vim时,不显示援助乌干达儿童的提示
set shortmess=atI
" 开启语法高亮
syntax on
set t_Co=256
set background=dark
" colorscheme solarized
" colorscheme molokai
" 设置配色方案
colorscheme murphy
" 显示行号
set number
" 设置行号宽度
set numberwidth=4
" 启动显示状态行(1),总是显示状态行(2)
set laststatus=2
" 状态行显示的高度
set cmdheight=3
" 显示执行的命令
set showcmd
" 打开状态栏标尺,显示光标当前的位置
set ruler
" 突出显示当前行/列
" set cursorline
" set cursorcolumn
" 隐藏工具栏
set guioptions-=T
" 隐藏菜单栏
set guioptions-=m
" 从不备份
set nobackup
" 不生成临时文件
set noswapfile
" 查找时,在输入字符时就进行查找
set incsearch
" 高亮匹配
set hlsearch
" 忽略大小写
set ignorecase
" TAB键的宽度
set tabstop=4
" 在行和段开始处使用制表符
set smarttab
" 统一缩进为4个空格,softtabstop表示让\t转换成4个空格,
" shiftwidth 表示一次shift缩进,比如 > 表示向右shift的空格数
set softtabstop=4
set shiftwidth=4
" 智能缩进
set autoindent
set cindent
set smartindent
" 显示所处的模式
set showmode
" 在右侧设置一条竖线来表示字符数不要超过该竖线
set colorcolumn=81
" 设置超过某个字符时自动换行
set textwidth=80
" m表示允许在两个汉字中间换行,B表示将两行为一行的时候不要在两个汉字之间加入空格
set fo+=mB
" 增强模式中的命令行自动完成操作,行模式下使用tab键即可补全
set wildmenu
" 共享剪贴板
set clipboard+=unnamed


" 光标移动到buffer的顶部和底部时保持3行的距离
set scrolloff=3
" 代码补全
set completeopt=preview,menu
" 设置魔术
set magic
" 在处理未保存或只读文件的时候,弹出确认
set confirm
" 自动保存
set autowrite
" 设置当文件被改动时自动载入
set autoread
" 查找到文件头部或者尾部之后停止查找,默认是折回继续查找
" set nowrapscan
" 禁止长行自动回绕
set nowrap
" 长行,右移动到不能显示的文字上,Vim会自动让你看到后面的10个字符
set sidescroll=10
" 高亮显示匹配的括号
set showmatch
" 匹配括号高亮的时间
set matchtime=1
" 用空格代替制表符
set expandtab
" 使回格键(backspace)正常处理indent,eol,start等
set backspace=2
" 可以在buffer的任何地方使用鼠标(类似office中在工作区双击鼠标定位)
" set selection=exclusive
" set selectmode=mouse,key
set mouse=v
if version >= 603
set helplang=cn
set encoding=utf-8
endif
" iskeyword 指定哪儿些字母可以出现在一个单词中,
" @ 表示所有字母,48-57表示0-9,192-255是可以显示的拉丁字符
" 可以添加其他字符,例如,set iskeyword+=-,
set iskeyword+=@,48-57,_,192-255
" 移动命令换行,很多命令只能在行内移动,whichwrap可以改变这一规则,whichwrap的默
" 认值是b,s <BS>键可以回到前一行的结尾,<Space> 可以移动到下一行的行首
" 允许backspace和光标键跨越行边界
" set whichwrap+=<,>,h,l
" 字符间插入的像素行数目
set linespace=0
" 通过使用: commands命令,告诉我们文件的哪一行被改过
set report=0
" 在被分割的窗口间显示空白,便于阅读
set fillchars=vert:\ ,stl:\ ,stlnc:\
" set cuc

" 去掉输入错误的提示声音
set noerrorbells

""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 自定义快捷键
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
let mapleader=";"
" jk 键代替ESC键
" inoremap jk <Esc>
" H 代替 ^ 表示跳转到行首
noremap H ^
" L 代替 $ 表示跳转到行尾
noremap L $
" 空格键代替:
noremap <space> :
" 表示全选
noremap <C-a> ggVG
" 禁用方向键
noremap <UP> <NOP>
noremap <DOWN> <NOP>
noremap <LEFT> <NOP>
noremap <RIGHT> <NOP>
inoremap <UP> <NOP>
inoremap <DOWN> <NOP>
inoremap <LEFT> <NOP>
inoremap <RIGHT> <NOP>


""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 插件配置
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" NERDCommenter的配置
" 添加注释时,添加一个空格
let g:NERDSpaceDelims=1

" 让配置立即生效
" autocmd BufWritePost $MYVIMRC source $MYVIMRC
坚持原创技术分享,您的支持将鼓励我的继续创作