摘要:
vi从安装到使用
vi从菜鸟到高手
0、 vim - Vi IMproved, a programmers text editor
分为 VI和VIM,现在流行的发行版里面VI=VIM
是一个文本编辑器(所有没有图片的文本,纯文本内容,无视后缀名)
不能编辑二进制文件
不能编辑目录
Debian系安装vim的时候:
apt install vim
1、目前整个地球上只有一个地方不默认安装vi
Docker 镜像Images 的容器
2、查看VI版本
在命令行:"vi --version"
在文本里面:":version"
3、使用步骤
1.vi filename
vi 后面加文件名 //若存在,则直接打开编辑,若 不存在,则新建一个文件
2.进入插入模式
键入 "i" 键,建议按i键
也可键入 "s"键,但是s键是删除当前光标的字符后,再进入插入模式
3. 插入数据
4. 敲 "Esc"键,或者键入组合键 "^[" (Ctrl-[)进入命令模式
小诀窍:按组合键的时候,一定要先按前面的辅助键不放,然后再按功能键
5. 输入 ":" ,然后键入 "x/wq/w/q!/q/qa/qa!"
命令 |
说明 |
状态 |
x |
保存并退出 |
|
wq |
保存并退出 |
|
w |
保存 |
written |
q! |
强制退出并不保存 |
|
qa! |
等价于q! |
|
q |
退出 |
|
qa |
等价于q |
|
快捷退出:
^w q // Ctrl+w q
等价于 :q
4、状态行
当前编辑窗口的最后一行被称为状态行
用于显示文件名
显示行、列
显示字符的个数
5、三种模式
插入模式
命令模式
末行模式
插入模式
i |
在当前位置插入数据 |
a |
光标位置后面插入数据 |
A |
本行行尾插入数据 |
o |
光标所在行的下一行插入数据 |
O |
光标所在行的上一行插入数据 |
s |
删除光标所在位置字符并在光标后插入数据 |
S |
删除光标所在行并在行首插入数据 |
cw |
删除当前光标所在单词并进入插入模式 |
6、在文件中移动光标
上下左右
行首行尾
^ |
行首,非空字符位置,不包含空格 |
0 |
行首,空字符处,包含空格 |
$ |
行尾,空字符处,包含空格 |
g_ |
行尾,非空字符位置,不包含空格 |
文首文尾
屏幕头部中间底部
H(shift+h) |
顶行 |
M(shift+m) |
中间行 |
L(shift+l) |
底行 |
翻屏
撤销
u |
撤销一次操作 |
1 change; before #19 22 seconds ago |
^r |
反撤销一次操作 |
1 change; after #19 33 seconds ago |
删除
x |
删除光标所在处的一个字符 |
dw |
删除光标所在处的一个单词 |
D(shift+d) |
删除光标所在处后面所有的字符 |
dd |
删除当前行 |
Ndd |
删除N行 |
dw |
删除一个单词 |
复制粘贴
yy |
复制一行 |
p |
粘贴 |
v-w-y |
复制一个单词 |
v-y |
复制一个字符 |
7、查找一个字符串
键入 "/" 进入查找模式,然后在后面键入需要查找的字符串
8、替换
:s/old/new |
在一行内将第一个old替换为new |
:s/old/new/g |
在一行内将所有old替换为new |
:s/old/new/gc |
在一行内将所有old替换为new时每个都确认一下 |
:%s/old/new/g |
在文件内将所有old替换为new |
:%s/old/new/gc |
在文件内将所有old替换为new时每个都确认一下 |
小诀窍:在":"模式的时,键入 "^p/^n"或"↑/↓"选择已经执行过的命令
9、简单设置
在 ":"模式使用
行号 |
set nu(number) set nonu |
只读 |
set readonly |
缩进 |
set paste |
10、使用分级
等级 |
生命周期 |
要求 |
备注 |
第一级 |
能吃饭 |
安装 启动 看文档 知道进入之后的常用操作 上下左右 删除 复制 粘贴 插入 退出 |
|
第二级 |
有肉吃 |
各种插入你都会 移动光标满天飞 复制粘贴擒拿手 取消操作你不行 出入自由红牌楼 |
|
第三级 |
吃香喝辣 |
更好 各种重复 更强 各种跳 更快 到处飞 |
|
第四级 |
有人买单 |
成神 |
|
11、扩展
1.自动提示
^p |
调出自动提示窗口,向上一行一行操作 |
^n |
调出自动提示窗口,向下一行一行操作 |
^m |
确认 |
2.块操作
使用块操作在所有行前面加上 ##
^v
-> shift-i
-> ##
-> ^[
3.可视化选择
4.缩进
5.分屏
^w s / :sp |
分横屏 |
^w v / :vs |
分竖屏 |
^w q |
退出 |
^w hjkl |
屏之间切换 |
6.创建新文件
通过vi的命令模式,在当前打开的文件里面,使用":"命令之后,
键入 :new file_name 然后即可在当前窗口新创建一个分屏的file_name文件窗口
此时你可以通过 ^w jklm进行上下切换,也可以自由地在多个文件中进行复制粘贴
7.其它高级小诀窍
1、对没有权限的文件修改的保存(使用": w !sudo tee %" ):
your@your:/etc/apt$ vi 1111
插入数据之后,键入命令模式i(":")
操作:
": w !sudo tee %"
-> 按 "O" 或 "L" 均可
:r !uname -a // 插入执行命令之后显示的内容到本文本
:w !sudo tee %
//提权并保存编辑好来的文档
执行过程:
Linux your 4.4.0-87-generic #110-Ubuntu SMP Tue Jul 18 12:55:35 UTC 2017 x86_64 x86