惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园 - Franky
N
Netflix TechBlog - Medium
宝玉的分享
宝玉的分享
Google DeepMind News
Google DeepMind News
腾讯CDC
G
Google Developers Blog
Martin Fowler
Martin Fowler
Microsoft Security Blog
Microsoft Security Blog
Recent Announcements
Recent Announcements
爱范儿
爱范儿
Engineering at Meta
Engineering at Meta
Microsoft Azure Blog
Microsoft Azure Blog
A
About on SuperTechFans
aimingoo的专栏
aimingoo的专栏
有赞技术团队
有赞技术团队
Jina AI
Jina AI
人人都是产品经理
人人都是产品经理
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
M
MIT News - Artificial intelligence
罗磊的独立博客
博客园 - 三生石上(FineUI控件)
美团技术团队
WordPress大学
WordPress大学
阮一峰的网络日志
阮一峰的网络日志

博客园 - JackieHan

ubuntu i3 xterm中文输入显示问题解决 ubuntu vim markdown 实时预览 ubuntu docker方式部署docker registry v2 docker 安装 gogs(go git server) 及问题解决 ubuntu14.04 server 安装docker Ubuntu Tomcat Ubuntu ssh 代理 全网访问速度优化 git 操作 vim使用指北 ---- Multiple Windows in Vim vim使用指北 ---- Advanced Editing vim使用指北 ---- Global Replacement ubuntu 点点滴滴 vi/vim使用指北 ---- Learning the vi and Vim Editors 读书 笔记 vi/vim使用指北 ---- Beyond the Basic vi/vim使用指北 ---- Moving Around in a Hurry vi/vim使用指北 ---- Sample Editing linux权威指南 简记 idea 使用
vi/vim使用指北 ---- Introducting the ex Editor
JackieHan · 2014-09-16 · via 博客园 - JackieHan

2014-09-16 01:44  JackieHan  阅读(545)  评论()    收藏  举报

本章介绍ex编辑器,为什么要介绍这样一个新的编辑器呢:其实ex编辑器不能算是一个新的编辑器,vi只是它的visual model,它已经是一个更普遍,基于行的编辑器。ex提供更大机动和范围的编辑命令。使用ex,有很多方式更简单的切换文件和转移文件内容,更快的编辑比一个屏幕更大的文本块。

打开文件

ex file  ---- 使用ex打开一个文件,不会显示文件内容。显示一行文件状态,一行命令标志

显示文件内容

[number]-[p]  ----  现实第几行的内容,p可以省略

[number]-,-[number]  ----  显示第几行到第几行的内容

替换

s/[fromCharacter]/[toChracter]  ---  从当前行替换

切换到vi模式

vi  ----切换到vi模式

在vi模式下移动光标

[number] ---- 移动光标到第几行

编辑命令

[number],[number]d ---- 删除从第几行到第几行的内容

[number],[number]m[number] ---- 把第几行到第几行的内容移动到第几行下面

[number],[number]co/t[number] ---- [co或者t]把第几行到第几行的内容复制到第几行下面

set nu[mber]  ----- 显示行号

set nonu[mber]  ---- 不显示行号

[number],[number]#   ----  临时现实第几行到第几行的行号

---- 显示总的行数

.= ---- 显示当前行号

/pattern/= ---- 显示以一个匹配项所在的行号

.  ---- 表示当前行行号

$ ---- 表示最后一行行号,例如20,.m$表示把第20行到当前行的内容移动到文件的末尾

% ---- 表示所有行,例如%d表示删除所有行

+[number]  ---- 表示向下多少行,number没有表示+1,例如.,.+20d表示删除从当前向下的20行的内容

-[number]  ---- 表示向上多少行,number没有表示-1,例如226,$m.-2表示把第226行到最后一行的内容移动到当前行的前2行下面

0 --- 表示文件开始

[number1];+[number2] p ---- 显示number1行后的number2行

/pattern/;+[number] p ---- 显示第一个匹配行后[number]行

查找

/pattern/d  ----  删除下一个匹配所在行

/pattern/+d ---- 删除下一个匹配的下一行

/pattern1/,/pattern2/d ----  删除第一个匹配pattern1的行到第一个匹配pattern2的行的内容

.,/pattern/m/[number] ----- 把当前行到第一个匹配patten的行的内容移动到给定行后面

g/pattern/p ---  查找并显示所有包含pattern的行

!g/pattern/p --- 查找并显示所有不包含pattern的行

[number1],[number2]g/pattern/p  ---- 从第number1到第number2行中查找并显示包含pattern的行

命令连接

[command1] | [command2] ---- 连接两个命令,例如1,3d | s/thier/their表示删除1-3行,并在当前行替换

保存

[number1],[number2]w newfile  ---- 把第number1到第number2行的内容保存新的文件

[number1],[number2]w >> newfile ----  把第number1到第number2行的内容添加newfile文件的末尾

文件间的拷贝

[number]/[0]/[$][/pattern/]r filename  ---- 把文件filename的内容复制到当前光标/文件开始/文件结尾/第一个包含pattern的行的后面