一、vim 命令常用选项
- 查看
vim
版本、配置文件位置及编译信息
1 | vim --version |
- 打开或新编辑
1 | vim # 直接开始编辑(保存文件时需指定文件名) |
- 打开
vim
使用教程
1 | vimtutor |
二、vim 的几种模式
- 命令模式(Command mode): 进入
vim
编辑器默认为此模式, 在该模式下, 键入的字符会被识别为命令 - 插入模式(Insert mode): 插入模式可以像其他编辑器一样插入字符, 进入插入模式底部会显示
-- INSERT --
- 底线模式(Last line mode): 在命令模式下键入
:
进入底线命令模式, 会在最底部出现:
, 此时可以输入行命令 - 视图模式(Visual mode): 命令模式下键入
v
进入视图模式, 进入视图模式底部会显示-- VISUAL --
, 在此模式下可以移动光标对文本进行选中, 可以对选中的文本进行命令操作
三、vim 的基本使用
以下,
<filename>
代表文件名,<text>
代表文本,<N>
代表一个数字,<char>
代表一个字符
退出 vim
编辑器
- 在未改动文件的情况下:
:q
- 在改动过文件但未保存时:
:q!
(强制退出)
从命令模式到插入模式的几种方式
- 在光标前:
i
- 在光标后:
a
- 光标下一行:
o
- 光标上一行:
O
- 光标所在行尾部:
A
从插入模式返回到命令模式
ESC
<ctrl-[>
<ctrl-c>
保存相关
- 文件存在或文件不存在但已指定文件名:
:w
- 还原文件到上一次保存的状态:
:e!
- 保存并退出
:wq
:x
ZZ
(命令模式下)
- 文件不存在且未指定文件名
:w <filename>
:wq <filename>
x <filename>
移动光标
- 左下右上分别为:
h
,j
,k
,l
- 移动到行首:
0
- 移动到行尾:
$
- 移动到行首第一个非空白符:
^
- 移动到行尾第一个非空白符:
g_
- 移动到下一个单词的开头:
w
- 移动到下一个单词的结尾:
e
- 移动到下一个单词的开头(紧挨在一起的非空白符识别为一个单词):
W
- 移动到下一个单词的结尾(紧挨在一起的非空白符识别为一个单词):
E
- 移动到相应代码块的对应括号:
%
- 移动到光标所在行内查找到的字符的前一个字符, 向右查找:
t<char>
- 移动到光标所在行内查找到的字符的前一个字符, 向左查找:
T<char>
删除相关
- 删除当前光标所指字符:
x
- 在本行内删除所有内容, 直到遇到指定字符:
dt<char>
查看帮助文档
- 进入帮助文档:
:help
- 退出帮助文档, 返回编辑器:
:q
- 退出帮助文档同时退出编辑器:
qa!
查找定位
- 向下查找:
/<text>
- 向上查找:
?<text>
- 下一个:
n
- 上一个:
N
- 完整匹配光标当前所在的单词并查找下一个:
*
- 完整匹配光标当前所在的单词并查找上一个:
#
- 在光标所在行内查找字符, 向右查找:
f<char>
- 在光标所在行内查找字符, 向左查找:
F<char>
- 查找高亮:
:set hlsearch
编辑器下方的
/text
或?text
未消失说明还在查找状态, 在查找状态可选择查找下一个或上一个
撤销与重做
- 撤销上一次操作:
u
- 还原上一次撤销的操作:
<ctrl-r>
复制相关
- 复制光标所在行:
yy
- 剪切光标所在行:
dd
- 在光标下一行插入一行并粘贴:
p
- 将下一行的内容合并到本行:
J
对原有命令进行附加操作
- 重复上一个改变文本的命令:
.
- 重复某个命令
N
次:N<command>
- 重复
N
次插入操作:Ni<text><ctrl-c><CR>
跳转相关
- 跳转到第
N
行<N>G
:<N>
- 跳转到第一行:
gg
- 跳转到最后一行:
G
四、vim 进阶使用
视图模式
以字符为选择单位, 命令模式下键入 v
进入视图模式, 进入视图模式底部会显示 -- VISUAL --
- 选择双引号之间的内容, 但不包括引号本身:
vi"
- 选择双引号之间的内容, 包括引号本身:
va"
- 选择括号之间的内容, 但不包括括号本身:
vi)
- 选择括号之间的内容, 包括括号本身:
va)"
- … (只要是成对的符号都可以这样操作)
行视图模式
以行作为选择单位, 在命令模式下键入 V
进入行视图模式, 进入行视图模式底部会显示 -- VISUAL LINE --
块视图模式
可以进行矩形(块)选择, <ctrl-v>
进入块视图模式, 进入块视图模式底部会显示 -- VISUAL BLOCK --
- 在块视图模式下键入
I
可以进入块插入模式, 可以对选择的块以行为单位进行批量插入
自动补全
在插入模式下, 键入<ctrl-n>
, ctrl-p
可以进行自动补全, <ctrl-n>
为选中下一个补全项, <ctrl-p>
为选中上一个补全项
快速缩进
进入视图模式后, 可以键入 =
将选中的内容自动缩进
多文件与分屏
- 上下分屏:
:sp
- 左右分屏:
:vs
- 在不同的分屏中跳转:
<ctrl-w>*2
- 在本分屏中载入文件:
:b <filename>
五、vim 的配置文件
不同配置文件的位置与区别
- 系统配置文件:
/etc/.vimrc
- 用户配置文件:
~/.vimrc
注意: 系统配置文件对所有用户生效, 用户配置文件仅对当前用户生效, 用户配置文件对于当前用户来说优先级较高, 所以在系统配置文件中我们一般只设置公共配置或不进行配置
六、vim 常用配置
视觉相关
- 显示行号:
set number
- 查找高亮:
set hlsearch
- 成对匹配的符号高亮:
set showmatch
- 当前行高亮:
set cursorline
- 列高亮:
set colorcolumn=82
(个人习惯 82)
缩进相关
- 自动缩进:
set autoindent
- 根据文件其他地方推测一个 tab 为几个空格:
set starttab
- 缩进量:
set shiftwidth=2
- 缩进及退格所缩进或删除的空格数:
set softtabstop=2
- 使用空格缩进:
set expandtab
查找相关
- 查找时忽略大小写:
set ignorecase
- 输入搜索时就高亮显示:
set incsearch
七、vim 安装插件
安装 coc.nvim
暂未开始
到此还未结束, 本文档将不定时更新
written by jm