.vimrc是什么
.vimrc是Vim配置文件配置,Vim显示行号、支持utf8中文不乱码、突出显示Vim当前行,设置高亮显示括号匹配和tab缩进,解决Vim粘贴时多出缩进和空格问题
.vimrc配置文件分系统配置和用户配置两种
- 系统vimrc配置文件存放在Vim的安装目录,默认路径为/usr/share/vim/vim74/vimrc_example.vim,其中 74 是版本号(不同系统版本可能存在差异)
- 用户vimrc文件,存放在用户主目录下~/.vimrc。可以使用命令echo $HOME确定用户主目录。
- 注意:用户配置文件优先于系统配置文件,Vim启动时会优先读取当前用户根目录下的.vimrc文件。所以与个人用户相关的个性化配置一般都放在~/.vimrc中
Vim基本配置
如果想自己配置,可以先将安装vim后现成的配置拷贝到用户目录下,具体命令:(注意,cp之后会导致xshell鼠标右键无法插入和选择复制,需设置 set mouse=(空的)鼠标才能右键复制)
yum install vim
cp ~/.vimrc ~/.vimrc_bak
cp /usr/share/vim/vim74/vimrc_example.vim ~/.vimrc
如上,语法高亮、代码缩进 这些喜闻乐见的特性,立刻就自动生效
基本的Vim配置选项
自己添加只要加在配置文件最后的endif之前就好,要注意的是,配置乱了的话可能会影响自己的使用习惯,所以还是那句话,这个配置适合自己的才是最好的
支持中文不乱码
#设置编码
set fileencodings=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936
set termencoding=utf-8
set encoding=utf-8
与Vim编码有关的变量包括:encoding、fileencoding、termencoding。
- encoding选项用于缓存的文本、寄存器、Vim 脚本文件等;
- fileencoding选项是Vim写入文件时采用的编码类型;
- termencoding选项表示输出到终端时采用的编码类型。
显示行号
#显示行号
set nu
set number
nu是number的缩写,所以上面两个配置命令是完全等效的。
突出显示当前行
set cursorline
set cul #cursorline的缩写形式
突出显示当前列
set cursorcolumn
set cuc #cursorcolumn的缩写形式
启用鼠标
#set mouse的详细解释如下,留空可以不影响原本的鼠标右键操作
set mouse=a
set selection=exclusive
set selectmode=mouse,key
The mouse can be enabled for different modes:
n Normal mode
v Visual mode
i Insert mode
c Command-line mode
h all previous modes when editing a help file
a all previous modes
r for |hit-enter| and |more-prompt| prompt Normally you would enable the mouse in all four modes with:
:set mouse=a
When the mouse is not enabled, the GUI will still use the mousefor modeless selection. This doesn't move the textcursor.
Vim编辑器里默认是不启用鼠标的,也就是说不管你鼠标点击哪个位置,光标都不会移动。通过以上设置就可以启动鼠标,不过对于高级玩家来说,用Vim就是为了解放双方不用鼠标,所以这个设置可以根据个人爱好选择。
显示括号匹配
set showmatch
设置缩进
#设置Tab长度为4空格
set tabstop=4
#设置自动缩进长度为4空格
set shiftwidth=4
#继承前一行的缩进方式,适用于多行注释
set autoindent
Vim缩进还有更多的设置,大家可以再自行上网查找,这里不做过多叙述。
设置粘贴模式
set paste
在Vim中通过鼠标右键粘贴时会在行首多出许多缩进和空格,通过set paste可以在插入模式下粘贴内容时不会有任何格式变形、胡乱缩进等问题。
显示空格和tab键
set list
set listchars=tab:>-,trail:-
Vim编辑器中默认不显示文件中的tab和空格符,通过上面的配置可以获得以下的显示效果,方便定位输入错误。
显示状态栏和光标当前位置
#总是显示状态栏
set laststatus=2
#显示光标当前位置
set ruler
打开文件类型检测
filetype plugin indent on
一份vimrc文件仅供参考
#设置编码
set encoding=utf-8
#语法高亮 syntax on
#设置ruler会在右下角显示光标所在的行号和列号,不方便查看,改成设置状态栏显示内容 set ruler
#设置状态行显示的内容. %F: 显示当前文件的完整路径. %r: 如果readonly,会显示[RO]
#%B: 显示光标下字符的编码值,十六进制. %l:光标所在的行号. %v:光标所在的虚拟列号.
#%P: 显示当前内容在整个文件中的百分比. %H和%M是strftime()函数的参数,获取时间.
set statusline=%F%r\ [HEX=%B][%l,%v,%P]\ %{strftime(\#%H:%M\#)}
#显示行号
set nu #等同于 set number
#突出显示当前行
set cursorline #等同于 set cul
#突出显示当前列
set cursorcolumn #等同于 set cuc
#自动保存 set autowrite
#隐藏工具栏
set guioptions-=T
#隐藏菜单栏
set guioptions-=m
#光标立刻跳转到搜索到内容
set incsearch
#去掉输入错误时的提示声音
set noeb
# 默认按下Esc后,需要等待1秒才生效,设置Esc超时时间为100ms,尽快生效
set ttimeout set ttimeoutlen=100
#在处理未保存或只读文件的时候,弹出确认
set confirm
#去掉有关vi一致性模式,避免操作习惯上的局限.
set nocompatible
# mouse=留空
set mouse= set selection=exclusive set selectmode=mouse,key
#高亮显示括号匹配
set showmatch
#设置Tab长度为5空格 set tabstop=5
#设置自动缩进长度为5空格 set shiftwidth=5
#不要用空格代替制表符 set noexpandtab
#显示空格和tab键 set listchars=tab:>-,trail:-
#1=启动显示状态行, 2=总是显示状态行.设置总是显示状态行,方便看到当前文件名 set laststatus=2
#打开文件类型检测,并载入文件类型插件,为特定文件类型载入相关缩进文 filetype plugin indent on