Vim常用命令教程

vim 的配置文件在根目录的 .vimrc 文件中,如果没有,自己创建一个。

打开 .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
set paste " 进入paste模型
set number " 显示行号
set tabstop=4  " 一个tab为4个空格长度
set shiftwidth=4 " 将换行自动缩进设置成4个空格
set expandtab " 输入tab时自动将其转化为空格
set sts=4 " 敲入tab键时实际占有的列数
set autoindent " 设置自动缩进
set smartindent " 智能缩进
set mouse=a " 鼠标可用
syntax on " 语法高亮
set hlsearch " 开启查找匹配的高亮显示, 简写set hls
" set nohlsearch " 关闭查找匹配的高亮显示, 简写set nohls
set encoding=utf-8 " 屏幕显示的编码
set fileencoding=utf-8 " 正在被编辑的文件的编码
set fileencodings=ucs-bom,utf-8,cp936,gbk,gb2312
set termencoding=utf-8
set showmatch " 括号匹配
set ruler " 右下角显示光标状态行
set incsearch " 设置快速搜索
set foldenable " 开启代码折叠
set fdm=manual " 手动折叠
set foldmethod=syntax " 自动语法折叠
set modeline " 自动载入模式行
set cursorline " 开启光亮光标行
set cursorcolumn " 开启光亮光标列
" vundle 环境设置
filetype off
set rtp+=~/.vim/bundle/Vundle.vim
vundle 管理的插件列表必须位于 vundle#begin() 和 vundle#end() 之间
call vundle#begin()
Plugin 'altercation/vim-colors-solarized'
Plugin 'tomasr/molokai'
Plugin 'vim-scripts/phd'
Plugin 'Lokaltog/vim-powerline'
Plugin 'octol/vim-cpp-enhanced-highlight'
Plugin 'Raimondi/delimitMate'
Plugin 'scrooloose/nerdtree'
Plugin 'vim-scripts/indentpython.vim'
Plugin 'davidhalter/jedi-vim'
"Plugin 'w0rp/ale'
Plugin 'Shougo/neocomplete.vim'
Plugin 'majutsushi/tagbar'
" 插件列表结束
call vundle#end()
filetype plugin indent on
map <F3> :nohlsearch<CR> " 绑定快捷键来去掉当前显示的高亮(一次性)
:set pastetoggle=<F10> " 绑定快捷键来激活/取消 paste模式
nnoremap <silent> <F11> :AV<CR>
map <F12> :q<CR> " 绑定快捷键来退出当前vim编辑:

设置说明:

set shiftwidth(简写:sw)

这个是用于程序中自动缩进所使用的空白长度。一般来说为了保持程序的美观,和下面的参数最好一致。同时它也是符号移位长度的制定者。

set tabstop(简写:ts)

定义tab所等同的空格长度,linux 内核代码建议每个tab占用8列,因为如果是其它值的话,可能引起文件在打印之类的场合中看起来很别扭。

set expandtab(简写:et)

输入tab时自动将其转化为空格,这样的话就不会一起混淆,不过毕竟制表符为8是最常用最普遍的设置,所以一般还是不要改。
举个例子,在多人一起开发项目时,为了使代码风格尽量保持一致,一般不允许在代码使用TAB符,而以4个空格代之。

set softtabstop(简写:sts)

敲入tab键时实际占有的列数。如果我们希望改变程序中的缩进怎么办?shiftwidth和tabstop不一样的话,你会发现程序比较难看的。这时候,softtabstop就起作用了。可以从vim的说明中看到,一旦设置了softtabstop的值时,你按下tab键,插入的是空格和tab制表符的混合,具体如何混合取决于你设定的softtabstop,举个例子,如果设定softtabstop=8, 那么按下tab键,插入的就是正常的一个制表符;如果设定 softtabstop=16,那么插入的就是两个制表符;如果softtabstop=12,那么插入的就是一个制表符加上4个空格;如果softtabstop=4呢?那么一开始,插入的就是4个空格,此时一旦你再按下一次tab,这次的四个空格就会和上次的四个空格组合起来变成一个制表符。换句话说,softtabstop是“逢8空格进1制表符”,前提是你tabstop=8。

set number(简写:nu)

显示行号

set nonumber(简写:nonu)

关闭行号显示

set ruler

设置在窗口右下角显示行号,与上面的好处是,节省空间

set autoindent(简写:ai)

设置自动缩进

syntax on

语法高亮

set smartindent

智能缩进

set encoding

屏幕显示的编码,目前大部分Linux系统已经将utf-8作为默认locale,encoding就应是utf-8以方便显示。该选项使用于缓冲的文本(你正在编辑的文件),寄存器,Vim 脚本文件等等。你可以把 ‘encoding’ 选项当作是对 Vim 内部运行机制的设定。

set fileencoding

正在被编辑的文件的编码,它也决定新文件的编码。如果为空,表示与encoding相同。如果与encoding不同,vi将会在保存和读取时做二者之间的转换。

set fileencodings

供vim尝试的编码列表,vi会逐个尝试每一项,如果没有发生错误,就设置当前的fileencoding为与该项相同的值。如果均失败,fileencoding将为空。

set termencoding

输出到客户终端(Term)采用的编码类型,默认空值,也就是输出到终端不进行编码转换。

set showmatch

括号匹配

set ruler

右下角显示光标状态行

set incsearch

设置快速搜索

set foldenable

开启代码折叠

set fdm=manual

手动折叠

set foldmethod=syntax

自动语法折叠

set modeline

自动载入模式行

set ignorecase

大小写无关

set noignorecase

大小写敏感

set hlsearch

开启查找匹配的高亮显示, 简写set hls

set nohlsearch

关闭查找匹配的高亮显示, 简写set nohls

:nohlsearch

去掉当前显示的高亮(一次性)

:set paste

进入paste模型,进入 paste 模式后,按 i 键进入插入模式,然后再粘帖,文本格式不会错乱了。但粘帖后还需要按

进入普通模式并执行如下命令结束 paste 模式:

:set nopaste

结束 paste 模式

:set pastetoggle=

paste有一个切换paste开关的选项,这就是pastetoggle。通过它可以绑定快捷键来激活/取消 paste模式

vim 的插件使用 vundle 管理:

安装 vundle:

1
git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim

安装插件,先找到其在 github.com 的地址,再将配置信息加入 .vimrc 中的call vundle#begin() 和 call vundle#end() 之间,如我的配置文件所示,Plugin ‘插件地址’ 即为添加插件,例如:

1
Plugin 'majutsushi/tagbar'

最后进入 vim 执行:

1
:PluginInstall

便安装完成插件。

如需删除插件,只需将 Plugin ‘插件地址’ 删除或者注释掉,再进入 vim 执行:

1
:PluginClean

便将插件删除。

如需升级插件,进入 vim 执行:

1
:PluginUpdate

便完成升级。

-------------本文结束感谢您的阅读-------------
坚持整理学习笔记,您的支持将鼓励我继续整理下去!