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

(0)
dengjiandengjian
上一篇 2016-08-11
下一篇 2016-08-11

相关推荐

  • VIM 文 本 编 辑 工 具-20160808

    VIM 文 本 编 辑 工 具 §·学习大纲   一·使用vi和vim的三种主要模式 二·扩展模式下基本操作 三·命令模式下基本操作 四·编辑模式下基本操作 五·VIM寄存器 六·编辑二进制文件 七·可视化模式 八·多文件模式 九·使用多个“窗口” 十·定制vim的工作特性 十一·VIM了解更多 十二·练习题     §·使用v…

    Linux干货 2016-08-10
  • Centos 编译内核操作实践

    §·编译内核: ※·程序包的编译安装: ./configure   make   make install 前提:开发环境(开发工具,开发库),头文件(/usr/include)  开源: 源代码开发—->可执行格式,(不同Linux的发行版以自己的理解,发行的软件不同) 发行版:以“通用”…

    Linux干货 2016-09-13
  • HA Cluster:keepalived

    HA Cluster 集群类型:LB(lvs/nginx(http/upstream, stream/upstream))、HA、HP 系统可用性的公式:A=MTBF/(MTBF+MTTR) 系统故障: 硬件故障:设计缺陷、wear out、自然灾害 软件故障:设计缺陷 提升系统高用性的解决方案之降低MTTR: 解决方案:冗余(redundant) acti…

    Linux干货 2017-06-26
  • 设计模式 ( 十二 ) 职责链模式(Chain of Responsibility)(对象行为

    1.概述        你去政府部门求人办事过吗?有时候你会遇到过官员踢球推责,你的问题在我这里能解决就解决,不能解决就推卸给另外个一个部门(对象)。至于到底谁来解决这个问题呢?政府部门就是为了可以避免屁民的请求与官员之间耦合在一起,让多个(部门)对象都有可能接收请求,将这些(部门)对象连接成一条链,并且沿着这条链传递…

    Linux干货 2015-07-15
  • 马哥教育网络第21期-第七周课程练习

    1、创建一个10G分区,并格式为ext4文件系统;    (1) 要求其block大小为2048, 预留空间百分比为2, 卷标为MYDATA, 默认挂载属性包含acl;    (2) 挂载至/data/mydata目录,要求挂载时禁止程序自动运行,且不更新文件的访问时间戳; [root@6 ~]# …

    Linux干货 2016-08-29
  • Linux-文件系统挂载:mount的用法

     文件系统挂载  本章详细介绍文件系统挂载、卸载(mount,umount);  如何通过mount命令挂载使用文件系统、挂载常用参数、以及开机自动挂载(/etc/fstab)。    挂载描述:             挂载:将额外文件系…

    2017-06-19