Linux 第八天: Linux文本编辑器vim

Linux 第八天: (08月09日) Linux文本编辑器vim

 

 

 

sed 行编辑器 stream EDitor

sed -n 不输出模式空间内容的自动打印
sed -e 多点编辑
sed -f /PATH/TO/SCRIPTFILE
sed -i 原处编辑

 

script
单地址
# 指定的行
/pattern/ 所能匹配到底每一行

地址范围
#,#
#,+#
/pat1/,/pat2/
#,/pat1/
~ 步进
1~2 奇数行
2~2 偶数行

 

sed d 删除模式空间匹配的行
sed p 显示模式空间中的内容
sed a \text 在行后追加文件, 支持\n多行追加
sed i \test 在行前插入文件, 支持\n多行插入
sed c \text 替换行为单行货多行文本
sed w /path/to/somefile 保存模式匹配的行到指定文件
sed r /path/form/somefile 读取指定文件的文本到模式空间匹配行后
sed = 为模式空间中的行打印行号
sed ! 模式空间中匹配行取反处理

 

s/// 查找替换, 可用其它分隔符 s@@@ s###
替换标记
g 行内全局替换
p 显示替换成功的行
w /PATH/TO/SOMEFILE 将替换的行保存到文件

sed 高级编辑命令
h 模式空间中的内容覆盖到保持空间中
H 模式空间中的内容追加到保存空间中
g 保持空间取出数据覆盖至模式空间
G 保持空间取出内容追加至模式空间
x 模式空间与保持空间内容互换
n 覆盖匹配的行的下一行到模式空间
N 追加匹配的行的下一行到模式空间
d 删除模式空间的行
D 删除当前模式空间开端到n的内容

 

 

vi Visal Interface 文本编辑器
vim VI iMproved
sed 行编辑器
nano 全屏编辑器
gedit 图形编辑器
gvim 图形版本的vim

 

vim +/pattern 打开文件 光标在第一个pattern的行
vim +# 打开文件 光标在第#行
vim + file 打开文件 光标在最后一行
vim -b file 二进制打开文件
vim -d file1 file2 比较文件
vim -m file 只读打开文件
vim -e 或ex file 直接进入ex模式

 

命令模式 移动光标 剪切粘贴文本
插入模式 修改文本
扩展命令模式 保存退出等
esc 退出当前模式
esc esc 返回命令模式

命令模式 –> 插入模式
i: insert 在光标处输入
I 在光标所在行首输入
a append 在光标后输入
A 在光标所在行尾输入
o 在光标所在行下方打开一个新行
O 在光标所在行上方打开一个新行

模式转换
插入模式 –> 命令模式 esc
命令模式 –> 扩展模式 :
扩展模式 –> 命令模式 esc
锁定解锁 ctrl+s  ctrl+q

 

扩展模式
q 退出
q! 强制退出
wq 保存退出
x 保存退出

 

命令模式
ZZ 保存退出
ZQ 不保存退出

 

扩展模式
: 进入ex模式
w 写存磁盘文件
wq 写入并退出
x 写入并退出
q 退出
q! 不存盘退出
r filename 读文件内容到当前文件中
w filename 写当前文件内容到另一文件

字符跳转
h 左
l 右
j 下
k 上
# COMMAND 跳转#个字符

 

单词跳转
w 下个单词首
e 当前或下个单词尾
b 当前或前个单词首
# COMMAND 跳转#个单词

 

当前页跳转
H 页首
M 页中
L 页底

 

行首行尾跳转

^ 跳转到行首非空白字符
O 跳转到行首
$ 跳转到行尾

行间移动
#G 扩展模式 # 跳转到#行
G 最后一行
1G, gg 第一行

 

句间移动
): 下一句
(: 上一句

段落间移动
}: 下一段
{: 上一段

ctrl+f 向文件尾部翻一屏
ctrl+b 向文件首部翻一屏
ctrl+d 向文件尾部翻半屏
ctrl+u 向文件首部翻半屏

字符编辑
x 删除光标处的字符
#x 删除光标处起始#个字符
xp 交换光标所在处及后面字符
~ 转换大小写

 

替换命令
r 替换光标所在处的字符
R 切换成REPLACE模式

删除命令
d 删除命令
d$ 删除到行尾
d^ 删除到非空行首
d0 删除到行首
dw
de
db
dd 删除光标所在行
#dd 多行删除
D 等同 d$

 

复制命令
y 复制 等同d
y$
y0
y^
ye
yw
yb
#yy 复制多行

粘贴命令
p 整行粘贴于下方, 非整行粘贴于后面
P 整行粘贴于上方, 非整行粘贴于前面

改变命令
c$
c^
c0
cb
ce
cw
#cc 删除多行
C 删除光标到行尾, 并切换成插入模式

 

命令模式
100iwang[esc]粘贴wang 100次

地址定界
# 第#行
#,# 从#到#行
#,+# 从#加#行
. 当前行
& 最后行
&-1 倒数第二行
.,$-1 当前行到倒数第二行
% 全文 1,$

 

扩展模式

/pat1/,/pat2/ 从第一次pat1匹配到的行开始, 到第一次pat2匹配到的行结束
#,/pat/
/pat/,$

 

查找
/PATTERN 从当前光标向文件尾部查找
?PATTERN 从当前光标向文件首部查找
n 与命令同向
N 与命令反向

 

扩展模式
s/要查找的内容/替换为的内容/修饰符
要查找的内容 可以使用模式
要替换的内容 不能使用模式, 但可以使用\1,\2,后向引用符号
还可以使用"&"引用前面查找到的整个内容

i 忽略大小写
g 全局替换
gc 全局替换 每次询问

撤销更改
u 撤销最近更改
#u 撤销多次更改
U 撤销光标落在这行后所有此行更改
ctrl -r 重做最后撤销更改
. 重复前一个操作
n. 重复前一个操作n次

 

编辑二进制文件
vim -b binaryfile 打开二进制文件
:%!xxd 转换为十六进制
:%!xxd -r 转换回二进制

 

可视化模式
v 面向字符
V面向行
ctrl -v 面向块

 

多文件模式
vim FILE1 FILE2 FILE3
:next 下一个
:prev 前一个
:first 第一个
:last 最后一个
:wall保存所有
:qall 退出所有
:wqall

 

多文件分割
vim -o|-O FILE1 FILE2
-o 水平分割
-O 垂直分割
ctrl+w, Arrow 窗口间切换

 

单文件窗口分割
ctrl+w,s split 水平分割
crtl+w,v vertical 垂直分割
ctrl+w,q 取消相邻窗口
ctrl+w,o 取消全部窗口
:wqall 退出

定制vim工作特性
/etc/vimrc 全局配置
~/.vimrc 个人配置
扩展模式 当前vim进程有效

 

set number 简写set nu 显示行号
det nonumber 简写set nonu 取消显示行号

 

set showmatch 简写set sm 括号成对匹配
set noshowmatch 简写set nosm 取消显示括号匹配

 

set ai 自动缩进
set noai 取消自动缩进

 

set hlsearch 高亮显示
set nohlsearch 取消高亮显示

 

syntax on 语法高亮
syntax off 取消语法高亮

 

set ic 忽略大小写
set noic 取消忽略大小写

 

fileformat=unix 文件格式unix
fileformat=dos 文件格式dos

 

set textwidth=65 (vim only)
set wrapmargin=15

 

:help option-list
:set or :set all

 

原创文章,作者:dengjian,如若转载,请注明出处:http://www.178linux.com/32936