文章目录
- 特性设置
- 配置快捷键(键映射配置)
- 键盘符号
- 键盘映射命令和不同模式的对应关系
- 取消键盘映射
- 查看键盘映射
在目录
/etc/
下面,有个名为
vimrc
的文件,这是系统中公共的
vim
配置文件,对所有用户都有效。而在每个用户的主目录下,都可以建立私有的配置文件,命名为:
.vimrc
。
使用 vim 打开配置文件:
vim /etc/vimrc # 配置全局的
vim ~/.vimrc # 配置当前用户的,不存在则保存后自动创建该文件
特性设置
set nu " 显示行编号
set nocompatible " 关闭vi兼容模式,可以启用方向键和Backspace
set cursorline " 突出显示当前行
filetype on " 侦测文件类型
filetype indent on " 为特定文件类型载入相关缩进文件 set showmatch " 高亮显示匹配的括号set matchtime=1 " 匹配括号高亮的时间(单位是十分之一秒)
set history=1000 " 历史记录数
color evening
syntax on " 语法高亮显示
set autoindent " 自动缩进
set cindent " 针对C语言语法自动缩进
set fileformats=unix,dos,mac " 让vim自动识别文件格式
set smartindent
set ignorecase " 搜索忽略大小写
set showmatch
set guioptions-=T
set vb t_vb=
set nohls
set shortmess=atl
autocmd InsertEnter *se cul
set ruler " 打开状态栏标尺set smarttab " 在行和段开始处使用制表符
set enc=utf-8 " 编码设置
set langmenu=zh_CN.UTF-8 " 语言设置
set showcmd
set confirm
set incsearch
set laststatus=2 " 底下状态行显示的内容(包括文件类型和解码)set cmdheight=2 " 命令行(在状态行下)的高度,默认为1,这里是2if has("vms")
set nobackup " 覆盖文件时不备份
else
set backup " 覆盖文件时备份
endif" 后面这段是设置Tab键的缩进为4个空格
if has( "autocmd" )filetype plugin indent onautocmd FileType make set tabstop=8 shiftwidth=8 softtabstop=0 noexpandtab
endifset tabstop=4 " 设置 Tab 的长度为 4 个空格
set shiftwidth=4 " 设定 << 和 >> 命令移动时的宽度为 4
set softtabstop=4 " 使得按退格键时可以一次删掉 4 个空格
set noexpandtab " 不要用空格代替制表符
set expandtab " 允许空格代替制表符
注:"
是注释符号
配置快捷键(键映射配置)
" 括号相关的快捷键
inoremap ( () " inoremap 表示在插入模式下,你按下 ( 就会执行后面部分,后面的部分是 (),所以按下一个 (,就会出现完整的圆括号 ()
inoremap [ []
inoremap { {}
inoremap < <>" 光标移动到文件的开始处
inor <C-Up> <ESC>ggi " inor 表示在插入模式下,你按下 <C-Up> 就会执行后面部分,先执行 <Esc> 退出插入模式,返回普通命令模式,再执行 gg 光标跳到文档第 1 行的行首,最后执行 i 重新进入插入模式" 光标移到文档最后一行的开始处
inor <C-Down> <ESC>Gi inor <C-V> <ESC>v " 进入按字符选择的可视模式下" 复制词
inor <C-Y> <ESC>yiw" 复制行
inor <C-S-Y> <ESC>yy" 粘贴文本
inor <C-P> <ESC>pi" insert mode keymapping
inoremap <C-b> <LEFT>
inoremap <C-f> <RIGHT>
inoremap <C-a> <HOME>
inoremap <C-e> <END>
inoremap <C-j> <END><CR>" 删除快捷键
inoremap <C-d> <DELETE>
inoremap <C-v> <PageDown>
inoremap <C-l> <ESC>zza
noremap <C-l> ZZ" 缩进快捷键
nmap <tab> V> " 按下 Tab 键后,先进入行可视模式下,然后执行 >,将当前选中的行向右缩进,默认是缩进 8 个空格
nmap <s-tab> V<
vmap <tab> >gv
vmap <s-tab> <gv
键盘符号
标识符号 | 代表含义 |
---|---|
<Esc> | 代表 Escape 键 |
<CR> | 代表 Enter 键 |
<C-Esc> | 代表 Ctrl-Esc |
<S-F1> | 表示 Shift-F1 |
<D> | 代表 Command 键,对于 Mac 用户,可以使用 |
<M-key> 或 <A-key> | 代表 Alt 键 |
注:关于键盘符号的详细说明,请使用 :h key-notation
命令查看帮助信息。
键盘映射命令和不同模式的对应关系
说明:
-
Operator-pending
模式是指当你输入操作符(比如d
)时,然后继续输入的移动步长和文本对象(dw)的状态。我没有明白啥意思!! -
第一列命令定义的映射,仍然可以被重新映射;第二列命令(包含noremap)定义的映射,是不可以被重新映射的。
取消键盘映射
如果想要取消一个映射,可以使用以下命令:
:unmap <F10>
注意:必须为:unmap命令指定一个参数。如果未指定任何参数,那么系统将会报错,而不会取消所有的键盘映射。
针对不同模式下的键盘映射,需要使用与其相对应的 unmap
命令。例如:使用 :iunmap
命令,取消插入模式下的键盘映射;而取消常规模式下的键盘映射,则需要使用 :nunmap
命令。具体可以看下面的关系图:
可以使用以下命令,取消所有映射。请注意,这个命令将会移除所有用户定义和系统默认的键盘映射。
:mapclear
查看键盘映射
使用 :map
命令,可以列出所有键盘映射。
其中第一列标明了映射在哪种模式下工作:
标记 | 模式 |
---|---|
<space> | 常规模式,可视化模式,运算符模式 |
n | 常规模式 |
v | 可视化模式 |
o | 运算符模式 |
! | 插入模式,命令行模式 |
i | 插入模式 |
c | 命令模式 |
使用 :map!
命令,则只列出插入和命令行模式的映射。而 :imap
,:vmap
,:omap
,:nmap
命令则只是列出相应模式下的映射。