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 09:37
下一篇 2016-08-11 09:37

相关推荐

  • Linux启动流程

    Linux的启动流程有以下部分组成,以下流程以CentOs 6.8为例 1、POST加电自检,检测各项硬件工作是否正常,BIOS选择启动设备。 2、根据设备的前446字节,加载bootloader程序 3、initramfs是1.5阶段,intramfs文件是创建系统时生成的文件。intramfs是一个过渡阶段,initramfs加载系统的一些设备驱动,比如…

    2017-05-15
  • centos 7 修改sshd服务默认端口号

    由于最近sshd服务默认端口号22被匿名进行试探性的进行登入,为防止匿名用户再次进行试探性的登入,将sshd服务的默认端口号进行修改。 环境:centos 7.3  xshell 思路:先将sshd的被指文件进行修改,把sshd服务的默认端口号修改为所需要的端口号,然后重启sshd服务,发现重启报错。找其原因是应为selinux不允许自定义sshd…

    Linux干货 2017-04-06
  • 马哥教育网络班20期+第四周博客作业

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。 # cp -R /etc/skel /home/tuser1 # chmod -R go-x /home/tuser1 2、编辑/etc/gro…

    Linux干货 2016-06-29
  • 源码编译安装之apache

    工具: Development tools组包 httpd-2.2.9.tar.gz links网站浏览工具   安装apache之前需要安装编译需要的环境“Development tools”这个是编译使用的必须的环境包,使用下面的命令可以安装。 [root@CentOS6 ~]# yum groupinstall&…

    Linux干货 2016-08-24
  • python高阶函数与装饰器

    ##**高阶函数**– 函数是python中的一等公民– 函数也是对象,可调用对象– 函数可以作为普通变量、参数、返回值等等– 数学概念y = g(f(x))– 高阶函数满足以下至少一个条件:1.接收一个或多个函数作为参数 2.输出一个函数 ##**举例(计数器)**def counter(base…

    Linux干货 2017-10-23
  • linux 系统日志管理

         在linux系统上面,系统可以记录从开机到当前系统上面何时发生了那些事情,并将其分类,分级别写到特定的日志文件当中,如系统自身产生的问题,用户登录信息,网络数据信息等等。我们可以根据这些日志信息来解决系统方面的错误,网络服务问题等等。日志对于安全来说,非常重要,它记录了系统每天发生的各种各样的事情,你可以通过它来检查错…

    2017-08-14