Prety F2E

We tell browsers how to do better

0%

macOS 中 Vim 基本配置

Vim的初始化配置 .vimrc

存放位置

macOS 环境下 vim 的初始化配置文件为 .vimrc , 通常有两个(系统版本和用户版本),一个位于 /usr/share/vim/vimrc,是整个系统vim的默认配置;另一个位于 ~/.vimrc,是当前用户的 vim 配置,会覆盖系统配置。可进入 vim,在命令模式下键入

1
2
3
:version       " 查看版本号
:echo $VIM " 查看vim具体路径
:echo $HOME " 用户主目录

~/.vimrc 有时并不存在,此时可以建立一个 .vimrc,放入用户主目录以实现当前用户的 vim 配置

主要命令参数

.vimrc 通常用于指定 vim 的编辑参数和外观环境。下面列出常用的命令参数及其含义:

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
"打开语法高亮
syntax on

"使用配色方案
colorscheme desert

"打开文件类型检测功能
filetype on

"不同文件类型采用不同缩进
filetype indent on

"允许使用插件
filetype plugin on
filetype plugin indent on

"关闭vi模式
set nocp

"与windows共享剪贴板
set clipboard+=unnamed

"取消VI兼容,VI键盘模式不易用
set nocompatible

"显示行号, 或set number
set nu

"历史命令保存行数
set history=100

"当文件被外部改变时自动读取
set autoread

"取消自动备份及产生swp文件
set nobackup
set nowb
set noswapfile

"允许使用鼠标点击定位
set mouse=a

"允许区域选择
set selection=exclusive
set selectmode=mouse,key

"高亮光标所在行
set cursorline

"取消光标闪烁
set novisualbell

"总是显示状态行
set laststatus=2

"状态栏显示当前执行的命令
set showcmd

"标尺功能,显示当前光标所在行列号
set ruler

"设置命令行高度为3
set cmdheight=3

"粘贴时保持格式
set paste

"高亮显示匹配的括号
set showmatch

"在搜索的时候忽略大小写
set ignorecase

"高亮被搜索的句子
set hlsearch

"在搜索时,输入的词句的逐字符高亮(类似firefox的搜索)
set incsearch

"继承前一行的缩进方式,特别适用于多行注释
set autoindent

"为C程序提供自动缩进
set smartindent

"使用C样式的缩进
set cindent

"制表符为4
set tabstop=4

"统一缩进为4
set softtabstop=4
set shiftwidth=4

"允许使用退格键,或set backspace=2
set backspace=eol,start,indent
set whichwrap+=<,>,h,l

"取消换行
set nowrap

Vim 的语法高亮/配色方案

vim 的配色分两部分:编辑环境配色和文本区域配色

1) 编辑环境配色:比如 vim 编辑区的前景背景色、状态栏颜色、错误提示颜色、查找、光标、圈选区、行号、折叠等的颜色

这里列出几个配色组名及其含义(全部的详细信息查看帮助文件 :help hi 查找 highlight-group 即可):

1
2
3
4
5
6
7
8
9
Cursor        # 光标下的字符颜色  
CursorLine # 光标所在行颜色
ErrorMsg # 命令行出现的错误信息提示
IncSearcg # 被搜索字符的颜色
Normal # 普通字符
Pmenu # 弹出的提示条目颜色
PmenuSel # 弹出的提示条目中被选中条目的颜色
SpellBad # 拼写错误字符颜色
Visual # 可视化模式下选中字符的颜色

2) 文本区域配色:可编辑的文本区域的字符配色(全部的详细信息查看帮助文件 :help hi 查找 *comment

由于配色种类较多,vim 默认分了几大类(帮助信息中带*的):

1
2
3
4
5
*Comment        # 注释
*Constant # 常量
*statement # 常用关键字标示符
*PrePoc # 预处理符号
*Type # 数据类型

下面是较为详细的组别:

1
2
3
4
5
6
7
8
9
String          # 字符串常量: "string abc\n"
Character # 单个字符常量: 'c', '\n'
Number # 数字常量: 234, 0xff
Boolean # 布尔常量: TRUE, false
Function # 函数名
Conditional # 条件关键字: if, then, else, endif, switch, etc.
Repeat # 循环关键字: for, do, while, etc.
Operator # 操作符: "sizeof", "+", "*", etc.
Exception # 异常关键字: try, catch, throw

这样便可以更为详细的为每一个组别进行配色

查看当前的 vim 配色情况 :hi/highlight

另外,文本区域的配色可以关闭,但环境配色不能,通常 vim 给定的默认可选配色方案中同时包含了以上两个方面

下面就一条具体的配色命令(对数据类型配色)解释每个字段的含义:

1
hi Type cterm=none ctermbg=White ctermfg=Green guibg=Gray guifg=Red

hi: highlight 的缩写,配色命令

Type: 配色组名,可以自定义(修改$VIMRUNTIME/syntax/下对应的文件可改变不同语言的高亮方案)其内容

cterm,ctermbg,ctermfg,guibg,guifg: 代表了不同显示环境

White,Green: 表示颜色(也可以用数字或者类似与html的16进制颜色表示方法)

显示环境有三种,黑白终端、彩色终端、图形界面;三种环境下参数名称如下:

1
2
3
4
5
6
7
term        # attributes in a B&W terminal
cterm # attributes in a color terminal
ctermfg # foreground color in a color terminal
ctermbg # background color in a color terminal
gui # attributes in the GUI
guifg # foreground color in the GUI
guibg # background color in the GUI

其中 term 仅有黑白两色,cterm 下颜色较为单一,GUI 模式颜色丰富

若要仅修改某种语言(c、Java、pascal)的配色,则在配色组名前加语言名称即可,比如对 c/c++ 语言的数据类型单独配色:

1
hi cType ctermfg=Blue

若是修改 java/pascal 的数据类型,则相应的将 cType 替换为 javaType/pascalType 即可。

对于文本区域的语法高亮(即配色),我们可根据需求特殊化定制,比如自定义组: myUniqueWord, mySymbol,使用 syn/syntax 命令

1
2
syn keyword myUniqueWord gang Gang swagger
syn match mySymbol "[,.;(){}[]]" # 可使用正则表达式

vim 目前 7.4 版本给出的可直接使用(colorscheme 命令加于 .vimrc 中即可)的配色方案位于目录:/usr/local/share/vim/vim74/colors,比如使用 desert.vim 中的配色,则于 .vimrc 中添加一行:colorscheme desert 即可

网友提供的配色方案列表(带效果图),可参考:

http://vimcolorschemetest.googlecode.com/svn/html/index-c.html

http://www.oschina.net/news/32306/10-vim-color-schemes-you-need-to-own

:hi/highlight 命令,可查看当前 vim 的颜色配置

:help hi/highlight 显示帮助文件(syntax.txt)内容

可访问官方在线版 http://vimdoc.sourceforge.NET/htmldoc/syntax.html ,介绍了颜色配置脚本中关键字的含义和使用方法

相同配色 vim 脚本在不同的终端下可能显示不太一致,这是由终端下颜色设置不一致导致的,属正常情况。