vim学习笔记
程序员文章站
2022-05-26 14:41:32
...
学习实验楼Vim编辑器课程的笔记。
1. 介绍
1.1 vim模式
6种基本模式:
- 普通模式 Normal mode
- 插入模式 Insert mode
- 可视模式 Visual mode
- 选择模式 Select mode
- 命令行模式 Command line mode
- Ex模式 Ex mode
1.2 模式切换
- 普通模式:vim启动即进入,按
i
进入插入模式,按:
进入命令行模式 - 插入模式:按Esc进入普通模式
- 命令行模式:输入
wq
回车后保存并退出
2. 常用命令
2.1 基本操作
2.1.1 打开
# 用打开已有的文件或新建文件
vim <文件名>
2.1.2 普通模式进入插入模式:
命令 | 说明 |
---|---|
i |
在当前光标处进行编辑 |
I |
在行首插入 |
A |
在行末插入 |
a |
在光标后插入编辑 |
o |
在当前行后插入一个新行 |
O |
在当前行前插入一个新行 |
cw |
替换从光标所在位置后到一个单词结尾的字符 |
2.1.3 退出vim
命令行模式退出:
命令 | 说明 |
---|---|
:q! |
强制退出,不保存 |
:q |
退出 |
:wq! |
强制保存并退出 |
:w <文件路径> |
另存为 |
:saveas 文件路径 |
另存为 |
:x |
保存并退出 |
:wq |
保存并退出 |
普通模式退出:输入shift+zz
即保存并退出
2.2 普通模式下的一些操作
2.2.1 删除文本
命令 | 说明 |
---|---|
x |
删除游标所在的字符 |
X |
删除游标所在前一个字符 |
Delete |
同x
|
dd |
删除整行 |
dw |
删除一个单词(不适用中文) |
d$ 或D
|
删除至行尾 |
d^ |
删除至行首 |
dG |
删除到文档结尾处 |
d1G |
删除文档收不 |
N<command>
,表示执行指定次数相同的命令,如2dd
表示一次删除2行,10x
删除10个连续字符
2.2.2 游标快速跳转
2.2.2.1 行间跳转
命令 | 说明 |
---|---|
nG (n+shift+g) |
游标移动第n行 |
gg |
游标移动到第一行 |
G (shift+g) |
移动到最后一行 |
tips:ctrl+o
可快速回到跳转前的光标位置
2.2.2.2 行内跳转
命令 | 说明 |
---|---|
w |
到下一个单词的开头 |
e |
到当前单词的结尾 |
b |
到前一个单词的开头 |
ge |
到前一个单词的结尾 |
0 或^
|
到行头 |
$ |
到行尾 |
f<> |
向后搜索<字母>并跳转到第一个匹配的位置(常用) |
F<字母> |
向前搜索<字母>并跳转到第一个匹配的位置 |
t<字母> |
向后搜索<字母>并跳转到第一个匹配位置之前的一个字母(不常用) |
T<字母> |
向前搜索<字母>并跳转到第一个匹配位置之后的一个字母(不常用) |
2.2.3 复制粘贴剪切
2.2.3.1 复制及粘贴
命令 | 说明 |
---|---|
yy |
复制整行 |
y^ 或y0
|
复制至行首,不含光标所处字符 |
y$ |
复制至行尾,含光标所在处字符 |
yw |
复制一个单词 |
ynw |
复制n个单词,如y2w 复制两个单词 |
yG |
复制至文本末 |
y1G |
复制至文本开头 |
p |
粘贴至光标后(下) |
P |
粘贴至光标前(上) |
2.2.3.2 剪切及粘贴
dd
命令是删除命令,也是剪切命令
2.2.4 替换和撤销
命令 | 说明 |
---|---|
r +<待替换字母> |
将游标所在字母替换为指定字母 |
R |
连续替换,直到按下Esc
|
cc |
替换整行,即删除游标所在行 |
cw |
替换一个单词,即删除一个单词,并进入插入模式 |
C |
替换游标以后至行末 |
~ |
反转游标所在字母大小写 |
u {n} |
撤销一次或n次操作 |
U |
撤销当前行的所有修改 |
ctrl + r |
redo,即撤销undo的操作 |
2.2.5 快速缩进
命令 | 说明 |
---|---|
>> |
整行向右缩进 |
<< |
整行向左缩进 |
缩进的字符数由shiftwidth
命令设置,通过在命令模式下查询目前设置:set shiftwidth?
,可通过:set shiftwidth=n
进行重新设置
2.2.6 查找
2.2.6.1 快速查找
命令 | 说明 |
---|---|
/<查找的字符串>Enter |
向下查找该字符串 |
?<查找的字符串>Enter |
向上查找该字符串 |
n |
查找后,输入该键,继续查找 |
N |
查找后,输入该键,反向继续查找 |
2.2.6.2 高级查找
命令 | 说明 |
---|---|
\* |
向后寻找游标所在处的单词 |
\# |
向前寻找游标所在处的单词 |
g\* |
同\* ,但部分符合该单词即可 |
g\# |
同\# ,但部分符合该单词即可 |
2.3 命令模式常用命令
命令 | 说明 |
---|---|
:set nu |
显示行号 |
:set shiftwidth |
设置缩进字符数 |
:ce |
文本居中 |
:ri |
文本靠右 |
:le |
文本靠左 |
2.4 高级功能
2.4.1 多文件编辑
# 同时创建两个文件
vim 1.txt 2.txt
命令行模式命令:
命令 | 说明 |
---|---|
:n |
切换到下一个文件 |
:n! |
强制切换到下一个文件,当前文件的输入没有保存 |
:N |
切换到前一个文件 |
:N! |
强制切换到前一个文件,当前文件的输入没有保存 |
:e <文件名> |
打开新文件,后面加! 为强制打开,放弃当前正在编辑的文件 |
:e# |
回到一个文件 |
:ls |
列出以前编辑过的文档 |
:b <文件名> |
直接进入该文件编辑 |
:bd <文件名> |
删除该文件 |
:f |
显示正在编辑的文件名 |
:f <新文件名> |
当前正在编辑的文件重命名 |
:ewcover <文件名> |
因断电等原因造成没有保存的文档,可以采用恢复方法恢复 |
2.4.2 可视模式
普通模式下:
-
输入
v
进入字符选择模式,光标走过的地方都会被选取,再按v
取消选取。 -
输入
shift+v
进入行选择模式,按V
整行选取,上下移动光标可选取更多的行,再按shift+v
取消选取。 -
输入
ctrl+v
进入区域选择模式,可进行矩形区域选择,再按一次ctrl+v
取消选取。
可视模式下:
- 输入
d
删除选取区域内容 - 输入
y
复制选取区域内容
2.4.3 视窗操作
模式 | 命令 | 说明 |
---|---|---|
命令行 | :sp <文件名> |
打开新的水平分屏视窗来编辑该文件 |
命令行 | :vsp <文件名> |
打开新的垂直分屏视频来编辑该文件 |
命令行 | :q! |
退出多视窗编辑 |
普通模式 | ctrl+w s |
将当前窗口分割成两个水平窗口 |
普通模式 | ctrl+w v |
将当前窗口分割成两个垂直窗口 |
普通模式 | ctrl+w q |
即:q
|
普通模式 | ctrl+w o |
打开一个视窗并且隐藏之前所有的视窗 |
普通模式 | ctrl+w j |
移至下面视窗 |
普通模式 | ctrl+w k |
移至左边视窗 |
普通模式 | ctrl+w l |
移至右边视窗 |
普通模式 | ctrl+w J |
将当前视窗移至下面 |
普通模式 | ctrl+w K |
将当前视窗移至上面 |
普通模式 | ctrl+w H |
将当前视窗移至左边 |
普通模式 | ctrl+w L |
将当前视窗移至右边 |
普通模式 | ctrl+w - |
减少视窗的高度 |
普通模式 | ctrl+w + |
增加视窗的高度 |
2.4.4 文档加密
vim -x <文件名>
2.4.5 在vim执行外部命令
在命令行模式中输入!
可以执行外部的shell命令:
-
:ls
用户显示当前目录的内容 -
:!rm FILENAME
用户删除名为FILENAME的文件 -
:w FILENAME
可将当前VIM中正在编辑的文件另存为FILENAME文件
2.4.6 帮助系统
-
普通模式下按
F1
打开vim自己预设的帮助文档 -
命令行模式下输入
:h shiftwidth
打开名为shiftwidth
的帮助文件 -
命令行模式下输入
:ver
显示版本及参数
2.4.7 系统设定
2.4.7.1 修改配置
在命令行模式进行的设定不会保存,如要永久保存配置,需要修改配置文件,vim配置文件地址:~/.vimrc
2.4.7.2 获取目前设定
命令 | 说明 |
---|---|
:set |
显示所有修改过的配置 |
:set all |
显示所有的设定值 |
:set option? |
显示option的设定值 |
:set nooption |
取消当前设定值 |
2.4.7.3 set功能
命令 | 说明 |
---|---|
:set autoindent(ai) |
设置自动缩进 |
:set autowirte(aw) |
设置自动存档,默认未打开 |
:set background==dark 或:set background==light
|
设置背景风格 |
:set backup(bk) |
设置自动备份,默认未打开 |
:set cindent(cin) |
设置C语言风格缩进 |
上一篇: 表单美化
下一篇: php 获取远程文件的大小