vi #vim #思维导图 #速记速查
其他
2020-04-22 10:58:35
阅读次数: 0
零、速记速查思维导图
→高清大图点这里←
- vi是终端中的编辑器
- ssh登录时,没有图形界面。在这种环境下,
vi
是最佳的选择
一、vi和vim
- 在很多Linux发行版中,直接将vi做成vim的软连接
1)vi是什么
- vi 的全称是 Visual interface,意思是 可视界面
- vi是Linux中最经典 的文本编辑器
- vi的核心设计思想:让程序员的手指始终保持在键盘的核心区域,就能完成所有的编辑操作
- vi的特点:
- vi编辑器在系统管理、服务器管理 编辑文件时,其功能永远不是图形界面编辑器能比拟的
2)vim是什么
- vim 的英文是 vi improved,意思是vi增强
- vim与vi是两个不同的软件,但其从vi发展来,支持代码补全、编译 及错误跳转 等方便编程的功能。誉为编辑器之神
二、vi基础
1)打开和新建
1>打开和新建
vi 文件名
2>打开并且定位行
- 明确知道要CRUD哪一行代码时,可以快速定位到该行
- 比如在开发中,通常会明确知道是哪一行代码出错
vi 文件名 +行数
- 如果只有+,不跟行数就定位到文件尾
- 如果直接打开,指针会在文件开头
3>交换文件
- 当vi被强行终止时,再次打开已编辑的文件,会报错:交换文件已存在
- vi在编辑一个文件时,会生成一个隐藏的交换文件
.文件名.swp
,这个文件是为了保障对目前这个文件的编辑速度(类似于硬盘内容读入内存)
- 一般,选择删除这个交换文件即可:再次打开文件==>报错==>输入英文的d
2)三种工作模式
1>命令模式
- 打开文件首先进入命令模式,是使用
vi
的入口
- 通过命令 对文件进行常规的编辑操作,如定位、翻页、复制、黏贴、删除…
- 在其他图形界面编辑器下,通过快捷键 或者鼠标 实现的操作,都在命令模式 下实现
2>末行模式
- 要退出
vi
返回控制台,需要在末行模式下输入命令
- 是
vi
的出口
- w保存,q退出,wq保存退出
命令 |
英文 |
功能 |
w |
write |
保存 |
q |
quit |
退出,若未保存,不允许退出 |
q! |
quit |
不保存强行退出 |
wq |
w & q |
保存并退出 |
x |
|
保存并退出 |
3>编辑模式
4>模式转换
- 在
Touch Bar
的Mac电脑上,Esc
可以用Ctrl [
三、vi常用命令
- vi命令一定要在英文输入法下
- 忘记命令只会影响编辑速度而已,只要知道如何在三个模式之间切换,就可以进行操作了
1)学习命令路线图
- 重复次数
- 在命令模式下,先输入一个数字,在跟上一个命令 ,可以让该命令重复执行指定次数
- 移动和选择(多多练习)
- vi的快就源自于能够快速定位到要编辑的代码行
- 移动命令 能够和编辑操作 命令组合使用
- 编辑操作
- 撤销和重复
- 查找替换
- 编辑
2)移动
1>上下左右
命令 |
功能 |
手指 |
h |
向左 |
食指 |
j |
向下 |
食指 |
k |
向上 |
中指 |
l |
向右 |
无名指 |
2>行内移动
命令 |
英文 |
功能 |
w |
word |
向后移动一个单词 |
b |
back |
向前移动一个单词 |
0 |
数字0 |
行首 |
^ |
|
行首,第一个不是空白字符的位置(对付缩进) |
$ |
|
行尾 |
3>行数移动
命令 |
英文 |
功能 |
gg |
go |
文件顶部 |
G |
go |
文件末尾 |
数字gg |
go |
移动到数字对应行数 |
数字G |
go |
移动到数字对应行数 |
:数字 |
|
移动到数字对应行数 |
- 程序员更喜欢go这个命令,只要是跳转,用go就好了
4>屏幕移动:
阅读代码时经常使用
命令 |
英文 |
功能 |
Ctrl b |
back |
向上翻页 |
Ctrl f |
forward |
向下翻页 |
H |
Head |
屏幕顶部 |
M |
middle |
屏幕中间 |
L |
Low |
屏幕底部 |
3)移动(程序)
- vi中使用空行来区分段落
- 在程序开发时,一段功能相关的代码会写在一起 (之间没有空行)
1>段落移动
2>括号切换
- 指针所在行的括号间切换
- 若指针在括号外,会跳到右括号(括号结束)
- 若指针在括号内,会跳到左括号(括号开头)
- 成对的括号会高亮显示
3>标记
- 非常常用的功能
- 在开发时,某一块代码可能需要稍后处理,就可以先添加一个标记。这样就可以快速地跳转回来 或者执行其他编辑操作
- 标记名称 可以是
a-z
或者A-Z
之间任意的一个 字母
- 添加标记的行被删除,标记也随之删除
- 如果添加了相同名称的标记 ,之前的标记会被替换掉
命令 |
英文 |
功能 |
m一个字母 |
mark |
添加标记 |
'标记字母 |
|
直接定位到 标记字母 所在位置 |
4>选中文本(可视模式)
- 在vi中要选择文本,需要先使用Visual命令切换回可视模式
- vi中提供了三种 可视模式,可以方便程序员选择选中文本的方式
- 按
Esc
可以放弃选中,返回到命令模式
命令 |
模式 |
功能 |
v |
可视模式 |
从光标位置开始按照正常模式选择文本 |
V |
可视行模式 |
选中光标经过的完整行 |
Ctrl v |
可视块模式 |
垂直方向选中文本 |
- 可视模式下,可以和移动命令连用。例如:ggVG能够选中所有内容
4)撤销重复
1>撤销和恢复
命令 |
因为 |
功能 |
u |
undo |
撤销上次命令 |
Ctrl r |
redo |
恢复撤销的命令 |
2>删除文本
命令 |
英文 |
功能 |
x |
cut |
删除指针所在字符,或删除选中文字 |
d移动命令 |
delete |
删除移动命令对应的内容 |
dd |
delete |
删除指针所在行,可以ndd复制多行 |
D |
delete |
删除至行尾 |
3>复制、黏贴
- vi中提供有一个复制文本的缓冲区 (类似剪贴板,但更强大)
- 复制 命令会将选中的文字保存在缓冲区
- 删除 命令删除的文字也被保存在缓冲区(类似于剪切操作)
命令 |
英文 |
功能 |
y移动命令 |
copy |
复制 |
yy |
copy |
复制一行,可以 数字yy复制多行 |
p |
paste |
黏贴 |
- 和系统的剪切板不是同一个,其它软件中复制的内容,不能用
p
命令黏贴
- 但可以在编辑模式 下使用鼠标右键黏贴
5)查找替换
1>替换
命令 |
英文 |
功能 |
工作模式 |
r |
replace |
替换当前字符 |
命令模式 |
R |
replace |
进入替换模式,对光标后的进行修改 |
替换模式 |
R
命令可以进入替换模式,替换完成后,按下Esc
回到命令模式
- 替换命令 的作用就是不用进入编辑模式, 对文件进行轻量级的修改
2>缩进和重复执行
命令 |
功能 |
>> |
向右缩进 |
<< |
向左缩进 |
. |
重复上次命令 |
在程序中缩进 通常用来表示代码的归属关系
- 每次增加完缩进后,会从可视模式回到命令模式。如果想添加多个缩进,重复执行旧非常必要了
3>查找
常规查找
- 查找到指定内容之后,使用
Next
查找下一个出现的位置:
单词快速匹配
命令 |
功能 |
* |
光标所在位置,向后寻找所在光标单词 |
# |
光标所在位置,向前寻找所在光标单词 |
- 在开发中,通过单词快速匹配,可以快速看到这个单词在其他说明位置使用过
4>查找替换
- 在vi中查找和替换命令,需要在末行模式下执行
- 命令格式(固定格式):
%s///g
1.全局替换
%s/旧文本/新文本/g
2.可视区域替换
s/旧文本/新文本/g
3.确认替换
%s/旧文本/新文本/gc
按键 |
英文 |
功能 |
y |
yes |
确认替换 |
n |
no |
取消替换 |
a |
all |
替换所有 |
q |
quit |
退出替换 |
l |
last |
最后一个,并把光标移动到行首 |
^E |
|
向下滚屏 |
^Y |
|
向上滚屏 |
6)编辑
1>插入命令
命令 |
英文 |
功能 |
?常用 |
i |
insert |
在当前字符前插入文本 |
常用 |
I |
insert |
在行首插入文本 |
较常用 |
a |
append |
在当前字符后添加文本 |
|
A |
append |
在行末添加文本 |
较常用 |
o |
|
在当前行后面插入一空行 |
常用 |
O |
|
在当前行前面插入一空行 |
常用 |
2>编辑命令与数字连用
- 在命令模式下:
- 输入次数,如50
- 输入i进入编辑模式
- 输入重复的文字
- 按下Esc返回命令模式,vi就会将编辑模式里的操作重复50次
日常开发时,不要在进入编辑模式前,最好不要按数字
3>给代码增加注释
- 打开命令模式
- 移动到要添加注释的第一行代码,按
^
来到行首
- 按
Ctrl V
进入可视块模式
- 输入I进入编辑模式,并在行首插入(在可视模式下,只有按I才能进入编辑模式)
- 添加完
#
返回命令模式 就好了
四、分屏命令
1)末行命令扩展
- 末行命令 主要是针对文件进行操作的:保存、退出、搜索&替换、另存、新建、浏览文件
命令 |
英文 |
功能 |
e . |
edit |
会打开vi内置的文件浏览器,浏览当前目录下的文件 |
n 文件名 |
new |
新建文件 |
w 文件名 |
write |
另存为,但仍然编辑该文件,并不会切换文件(相当于复制文件) |
.
指代的是当前目录,也可以替换为其它路径。进入vi文件浏览器,可以使用hjkl来移动,使用回车确定要编辑的文件。
- e也可以加空格后直接跟文件名。(可以使用Tab智能补全文件名)
切换文件之前,必须保证这个文件已经被保存!
2)分屏命令
命令 |
因为 |
功能 |
:sp 文件名 |
split |
横向增加分屏 |
:vsp 文件名 |
vertical split |
纵向增加分屏 |
- 记不住文件名,同样可以传入一个
.
来打开内置文件浏览器
1>切换分屏窗口
- 分屏窗口都是基于
Ctrl w
这个快捷键的,w
对应的英文单词是window
命令 |
英文 |
功能 |
w |
window |
切换到下一个窗口 |
r |
reverse |
互换窗口,只是换窗口位置,不会换内容 |
c |
close |
关闭当前窗口(仅剩一个窗口时,不可关闭) |
q |
quit |
退出当前窗口(如果仅剩一个窗口,则关闭vi) |
o |
other |
关闭其它窗口 |
发布了48 篇原创文章 ·
获赞 30 ·
访问量 4657
转载自blog.csdn.net/weixin_44925501/article/details/103432669