行编辑器 sed
全屏编辑 nano vi
vim中
+# 进入第#行
+/PATTERN 直接处于第一个PATTERN 行首
例如 vim + /path
模式转换
i光标前面插入
a光标后面
o光标下面打开新行
I光标行首输入
A光标行尾输入
O光标插入上一行
c
C
ZZ 保存退出
hjkl 四个方向转换
w 下一个单词词首
e 当前或下一个单词词尾
b 。。。词首
行首行尾跳转
^第一个非空白行首
0到行首
$到行尾
#G 到#尾部
G 最后一行
1G gg到第一行
() {} 句子 段落间移动
x删除光标处字符
#x删除光标处第#个字符
xp交换光标位置与后面字符的位置
删除命令
d删除命令
d$
d^
d0
dw
de
db
#COMMAND 上面的三个
删除整行 dd
#dd 删除#行
黏贴命令
p黏贴到下一行
P黏贴到上一行
复制命令y
y复制
y$ 复制到行尾
y0
y^
ye
yw
yd
#yy 复制多少行
c修改命令
等于 y d
r 替换命令
可视化模式
在光表示处
v 圈定部分
V 圈定整行
然后 d c y
撤销命令 u
#u 撤销次数
撤销此前的撤销
Ctrl+r
复制前一个编辑操作 .
翻屏操作
Ctrl+f 尾部翻
Ctrl+b 首部翻
d 尾部半屏
u 首部半屏
vim中的末行命令
内建的命令行接口
(1)地址定界 :
# 具体第#行
#,# 第#到第#行
#,+# 当前行附加#行
例子 :1,+3 第一行再加3行 一共四行
.表示当前行
$表示最后一行
.,$-1 当前行到最后一行的上一行
%全文 相当于 1,$
/pattern1/,/pat2/
例如
#,/pat2/
/pat1/,$
2
:r /etc/fstaab 在指定行插入该文本
:w /path 在范围内的行另存至指定文件
查找/\<r..t\> 首部开始查找
尾部查找 ?pattern
查找并替换
要在末行模式下完成查找替换操作
:s/查找的内容/替换为的内容/修饰符
替换为的内容不能使用模式 但可以使用\1 \2等后向引用符号;"&"引用前面查找时找到的整个内容
i忽略大小写
g全局替换
,默认只替换第一次出现的
:.,$s/r\(..\)t/R\1T/g
将当前行到末尾的r..t替换为R..T \1代表第一个括号
全文找 %s/linux/&er/g
&代表前面的linux整个匹配
查找替换中的分隔符/可以替换为不会出现的字符,比如
s@@@
s$$$
例如 :%s@/root/@/ROOT/@g
就不用转义了
去掉行首空白
:%s/^[[:space:]]\+// 行首就一个 不需要g选项
在空白前面加#
:%s/^[[:space:]]/#&/
vim多文件模式
vim /path1 /path2 /path3
使用 :next 切换文件
:prev
:last
:first
:wall 保存all
:qall 退出all
窗口分割模式
vim -o或者-O file1 file2
-o水平分割(上下多屏) -O 垂直分割(左右多屏)
窗口切换
Ctrl+w 再 Arrow(移动箭头)
:wall 保存all
:qall 退出all
单窗口分割
Ctrl+w,s 水平分割
Ctrl+w,v 垂直分割
定制vim工作特性
直接编辑自行创建这个文本
全局vim /etc/vimrc
个人vim ~/.vimrc
末行模式:当前进程有效
1显示行号
set number 简写 set num
取消 set nonumber ; set nonu
2括号匹配(高亮度显示左右括号)
set showmatch ;set sm ;set nosm
3自动缩进
set ai ;set noai
4高亮搜索
set hlsearch
set nohlsearch
5语法高亮
syntax on/off
6忽略字符大小写
set ic ;setnoic
7获取帮助
:help
:help subject