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

相关推荐

  • 文本处理grep

    grep:文本过滤(模式:pattern)工具grep, egrep, fgrep【适合处理比较大的文本】(不支持正则表达式搜索) sed:stream editor,文本编辑工具 awk:Linux上的实现gawk,文本报告生成器 grep(Global search 全局搜索 Regular expression 正则表达式 and Print out …

    Linux干货 2017-05-09
  • 系统自动化安装

    系统自动化安装:实现同时部署多台操作系统,批量进行安装linux系统 CentOS系统安装     系统启动流程:       bootloader–>kernel(initaramfs)–>rootfs–>/sbi…

    Linux干货 2016-09-22
  • 防护墙服务

    iptables的基本认识        Netfilter组件: 内核空间,集成在linux内核中 扩展各种网络服务的结构化底层框架 内核中选取五个位置放了五个Hook(勾子)function(INPUT、OUTPUT、FORWARD、PREROUTING、POST ROUTING),而这五个hoot functio…

    2017-08-21
  • 给linux系统添加新的磁盘

    虚拟化环境中,我们经常会遇到需要增加磁盘容量的情况,通常有两种方式,第一种是添加一块新的硬盘,另一种是扩容原有磁盘,以下是添加新磁盘至linux系统的操作规范。注:具体磁盘信息可能有所不同。 ##查看新增加磁盘/dev/sdb的信息 [root@CentOS7 ~]# fdisk -l /dev/sdb   Disk /dev/sdb: 5368 …

    Linux干货 2016-11-11
  • 磁盘管理、文件管理、系统管理

    分区管理工具:fdisk,parted,sfdisk fdisk:MBR模式,对于一块硬盘来说,最多只能管理15个分区; # fdisk -l [-u] [device…]:查看 # fdisk device 子命令:管理功能 p:显示已有分区 n:新建分区 d:删除 w:写入磁盘并退出 q:放弃更改并退出 m:获取帮助 l:列出分区id t:调…

    Linux干货 2017-12-15
  • shell脚本2

    使用read命令来接受输入 使用read来把输入值分配给一个或多个shell变量 read后面跟变量,回车输入内容,就可以把输入的内容赋给变量 -p指定要显示的提示 -s 静默输入,一般用于密码 输入的内容不显示 -n N 指定输入的字符长度N 当输入的内容达到了5个字符会直接结束输入 -d‘字符’ 输入结束符 把!作为了结束符,在输入内容时,当输入!会直接…

    2017-08-11