打开文件
-
vi
vi grop.txt vi一个不存在的文件也可以创建文件
vi 文件 打开文件,光标在第一行
vi +22 profile 光标定位到文件的第22行
vi + profile 光标定位到文件最后一行
vi profile 打开文件后 shift+G 光标定位到最后一行
vi +/要匹配字符 文件路径 光标定位到匹配字符那一行,如 vi +/if sxt/play.log -
gedit
// 新开窗口,图形化编辑
gedit a.txt
关闭文件
:q 退出,没有动过文件
:wq 保存并退出
:q! 不保存并退出
:w 保存
:w! 强行保存
:wq的简写方式:x
shiftzz 保存 并退出
编辑模式
i:光标在所在字符前面,转为输入模式
a:光标在所在字符后面,转为输入模式
o:光标在所在行的下面,新建一行,转为输入模式
O:光标在所在行的上面,新建一行,转为输入模式
大写的I:光标在所在行的行首,转为输入模式
大写的A:光标在所在行的行尾,转为输入模式
退出输入模式到编辑模式
esc
可视化编辑
- 适合需要光标选中复制、删除的场景
v 键 之后选择 + y + p 复制粘贴所选内容
末行模式
:
:set nu 显示行号
:set nonu 不显示行号
:readonly 设置只读
:! 加命令 会退出vi到外壳中执行命令,再按enter键回到vi编辑
:1,$ 1行到最后一行
:1,. 1行到当前光标行
:1,8 1行到8行
:.,+4 光标所在行向下偏移4行
:% 全文范围
:1,$-1 1行到最后一行前一行
还可以添加编辑命令
:1,$d 删除文章从第一行到最后一行
移动光标
字符
h 左 l右 j下 k上
单词
w 移动至下一个单词的词首
e 移动至下一个单词的词尾
b 移动当前或前一个单词的词首
指定字符查找
/查找字符 按 n/N 键到下一个
行内
0 行首
^ 行首的第一个非零字符
$ 行尾
页首页尾
大写G 文章末尾
2大写G 第二行
3大写G 第三行
gg 文章开头
翻屏:
ctrl:f 下一页
ctrl:b 上一页
删除(x)和替换®单个字符
x 删除光标位置字符
3x 删除光标位置后面的三个字符
r 替换光标位置的字符
3r要换成的字符 替换光标位置后面的三个字符为指定字符
范围查找替换
// 范围 s/原内容/新内容/全局
1,5 s/222/333/g
多个字符删除(d)
dw 删除一个单词
2dw 删除两个单词
dd 删除一行
3dd 删除三行
d加gg 从光标位置删到开头
d加G 从光标位置删到末尾
剪切(d,p)
先删除后粘贴
4dd加p 剪切4行到p复制到光标所在位置的下一行
4dd加shift加p 剪切4行到p复制到光标所在位置的上一行
复制(y,p)
yw加p 复制光标所在位置字符到下一个单词之前的所有内容(包括所有的空白字符)
,复制到光标位置后
2yw加p 复制两个单词,到光标位置后
yy加p 复制一行到光标所在位置的下一行
2yy加p 复制两行到光标所在位置的下一行
撤销
u
撤销所做的撤销
ctrl加r
重复上一次命令:
.
查找(/)
触发查找模式,n往下跳下一个匹配项,N往上跳
末行模式查找
:/after 定位到after的所在行的第一个字符
编辑模式(非输入模式)查找
/after 定位到after的a,定位到要查找字符的第一个字符所在位置
查找并替换(s)
末行模式:
查找替换每一行的一个查找内容
:1,$s/查找内容/替换内容/ 在末行模式中$是文章最后一行,在编辑模式中是行尾,不一定是/做分隔符,#@等特殊字符也行
:1,$s/after/before/ 从第一行到最后一行查找after并替换成before
查找替换每一行的所有查找内容(g)
:1,$s/after/before/g 加个g表示同一行的after全部替换成before
忽略大小写(i)
:1,$s/after/before/gi
:1,$s/after/before/i