vim编辑器
vim,被称为编辑器之神,拥有陡峭的学习曲线,一旦掌握,编写代码即可脱离鼠标,双手只需在键盘上飞舞,一行行代码随之出现,增删改查,轻松自如!
大一时我学了vim,掌握之后,如今我编写代码离不开vim。程序员难免要和服务器打交道,而大部分服务器都是linux,在linux上面部署服务,难免需要用到vim去编辑文件,作为程序员,掌握vim很有必要~同时各大IDE:vscode、pycharm等都可安装vim插件,用vim编写代码。
下面是我学习vim时,做的笔记(超级详细!),欢迎取用~
一.三种工作模式
- 命令模式
- 打开文件首先进入的模式是命令模式。
- 命令模式,顾名思义,就是专用于敲命令的模式,只能通过键盘输入各种命令。
- 这些命令可以实现各种功能,如:删除,定位,翻页,复制,粘贴…
- 末行模式
- 执行保存和退出等操作。
- 末行模式是vim的出口。
- 编辑模式
- 正常编辑文字的模式。
二.常用命令
- 重复次数
- 在命令模式下,先输入一个数字,再跟上一个命令,可以让命令重复执行一定次数
- 移动和选择
- vim 之所以快,关键在于能够快速定位到要编辑的代码行
- 编辑操作
- delete 、copy、paste、replace、缩排
- 撤销和重复
- 查找和替换
- 编辑
notes: When you insert sequence you need close Chinese mode
2.1 移动(基本)
- 上 下 左 右
命令 | 功能 | 手指 |
---|---|---|
h | 向左 | 食指 |
j | 向下 | 食指 |
k | 向上 | 中指 |
l | 向右 | 无名指 |
2.行内移动
命令 | 英文 | 功能 |
---|---|---|
w | word | 向后移动一个单词 |
b | back | 向前移动一个单词 |
0 | 行首 | |
^ | 行首,第一个不是空白字符的位置 | |
$ | 行尾 |
3.行数移动
命令 | 英文 | 功能 |
---|---|---|
gg | go | 文件顶部 |
G | GO | 文件末尾 |
数字gg | go | 移动到数字对应行数 |
数字G | GO | 移动到数字对应行数 |
:数字 | 移动到数字对应行数 |
- 屏幕移动
命令 | 英文 | 功能 |
---|---|---|
ctrl+b | back | 向上翻页 |
ctrl+f | forward | 向下翻页 |
H | Head | 屏幕顶部 |
M | Middle | 屏幕中间 |
L | Low | 屏幕底部 |
- 段落移动
- vim中用空行来分隔段落
- 程序开发时,** 功能相关的代码写在一起,之间没有空行
命令 | 功能 |
---|---|
{ | 上一段 |
} | 下一段 |
- 括号切换
命令 | 功能 |
---|---|
% | 括号匹配和切换 |
- 标记
- 为什么会有标记呢?:在开发时,某块代码需要稍后处理 ,例如:编辑,查看。
- 使用m增加一个标记,这样就可以在需要时快速跳转回来或者执行其他操作
- 标记名称:可以是a-z或A-Z之间任意一个字符。标记行如果被删除,标记也会被删除
命令 | 功能 |
---|---|
mx | 添加标记x |
‘x | 直接定位到x所在位置 |
2.2 选中文本(可视模式)
用处:为复制文本做准备
命令 | 模式 | 功能 |
---|---|---|
v | 可视模式 | 从光标开始按照正常模式选择文本 |
V | 可视行模式 | 选中光标经过的完整行 |
Ctrl+v | 可视块模式 | 垂直方向选中文本 |
- 全选:ggVG
3.1 撤销和恢复撤销
命令 | 单词 | 功能 |
---|---|---|
u | undo | 撤销上次命令 |
ctrl+r | redo | 恢复撤销的命令 |
3.2 删除文本
命令 | 英文 | 功能 |
---|---|---|
x | cut | 删除光标所在字符 |
d(移动命令) | delete | 删除移动命令对应的内容 |
dd | delete | 删除光标坐在行,ndd可以删除多行 |
D | delete | 删除至行尾 |
3.3 复制、粘贴
-
vim中有一个被复制文本的缓冲区
-
复制
命令会将选中的文字保存在缓冲区
-
删除
命令删除的文字会被保存在缓冲区
- 在需要的位置,使用粘贴 命令会把缓冲区的文字插入到光标所在位置
-
复制
命令 | 英文 | 功能 |
---|---|---|
y(移动命令) | copy | 复制 |
yy | copy | 复制一行,可以nyy复制n行 |
p | paste | 粘贴 |
4.1 替换
命令 | 英文 | 功能 | 工作模式 |
---|---|---|---|
r | replace | 替换当前字符 | 命令模式 |
R | replace | 替换当前光标后的字符 | 替换模式 |
- R
命令可以进入
替换模式 ,替换完成之后,按下esc键回到
命令模式 - 替换命令 的作用就是不进入编辑模式,对文本进行轻量级改动
4.2 缩进
命令 | 功能 |
---|---|
<< | 向右增加缩进 |
>> | 向左减少缩进 |
. | 重复上次命令 |
一次缩进是4个空格
4.3 查找
命令 | 功能 |
---|---|
/str | 查找str |
- 查找到指定内容后,使用next查找下一个出现的位置:
- n :查找下一个
- N:查找上一个
单词快速匹配
命令 | 功能 |
---|---|
* | 向后查找当前光标所在单词 |
# | 向前查找当前光标所在单词 |
4.4 查找并替换
全局模式:
-
需要在末行模式下执行
-
命令格式:
:%s/被替换/替换/g
可视区域替换:
- 先选中要替换文字的区域
- 命令格式:
:s/被替换/替换/g
确认替换
-
在替换之前 会有提示
-
命令格式:
:%s/被替换/替换/gc
提示:
- y
- n
- a -all 替换所有
- q -quit 推出替换
- l -last 替换最后一个
5.1 插入命令
命令 | 英文 | 功能 | 常用 |
---|---|---|---|
i | insert | 在当前字符前插入文本 | 常用 |
I | insert | 在行首插入文本 | 较常用 |
a | append | 在当前字符后添加文本 | |
A | append | 在行尾添加文本 | 较常用 |
o | 在当前行后面添加一空行 | 常用 | |
O | 在上前行前面添加一空行 | 常用 |
5.2 末行命令
命令 | 英文 | 功能 |
---|---|---|
:w | write | 保存 |
:w 文件名 | 保存为新的文件 | |
:q | quit | 退出,如果没有保存,不允许退出 |
:q! | quit | 强制退出 |
:wq | 保存并退出 | |
:x | 保存并退出 | |
:e . | edit | 打开内置的文件浏览器,浏览当前目录下的文件 |
:n 文件名 | new | 新建文件 |
- 实际开发中,会用**w ** 阶段性备份代码
5.3 分屏命令
-
使用分屏命令可以同时编辑和查看多个文件
命令 英文 功能 :sp[文件名] split 横向增加分屏 :vsp[文件名] vertical split 纵向增加分屏 -
切换分屏窗口
分屏窗口都是基于
ctrl+w
这个快捷键的,w即window
按完这两个键之后松掉,就按下面的键实现功能文章来源:https://uudwc.com/A/9nq5命令 英文 功能 w window 切换到下一个窗口 r reverse 互换窗口 c close 关闭当前窗口,但是不关闭最后一个窗口 q quit 退出当前窗口,如果是最后一个窗口,即关闭vim o other 关闭其他窗口
获取完整原创笔记markdown文件:公粽号:为你作画,回复vim
谢谢阅读~文章来源地址https://uudwc.com/A/9nq5