本章介绍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的行的后面

vi/vim使用指北 ---- Introducting the ex Editor的更多相关文章

  1. vi/vim使用指北 ---- Learning the vi and Vim Editors 读书 笔记

    vi/vim作为liux系统下最强大,最流行的文本编辑器之一.边看<Learning the vi and vim Editor>边学习vim,顺便做写简单的笔记,供以后查询. 没看这本书 ...

  2. vi/vim使用指北 ---- Beyond the Basic

    更多的组合命令 [number]-[command]-[test object] number:   数字 comand:  c,d,y  (修改,删除,复制) test object: 移动光标的命 ...

  3. vi/vim使用指北 ---- Moving Around in a Hurry

    上一篇文章中,简单列出了一些基本的Vim操作,也列出了很多的光标移动命令,本章主要是有哪些命令可以更快的移动光标. vim的编辑操作,用得最多就是移动光标,对于很少行的文件来说,基本的命令就够用了,但 ...

  4. vi/vim使用指北 ---- Sample Editing

    本篇介绍vim的基础操作,各种编辑模式的切换,光标的移动,删除,撤销/重做,保存,查找等基础命令: 基础操作 编辑文件 vim  [options] [file ...] 模式 打开文件后进入vim的 ...

  5. vim使用指北 ---- Advanced Editing

    本节介绍vi和ex的一些高级功能. 配置vi 配置文件.exrc可以保存在你的主目录下,在vi启动的时候执行这个配置文件.但在当前工作目录下可以放置一个配置文件,对当前目录做一个自定义配置. :set ...

  6. vim使用指北 ---- Multiple Windows in Vim

    多窗口打开多个文件 vim -o file1 file2 ... ---- 默认上下分割窗口 vim -0n file1 file2 ... ---- vim默认会上下等分n个窗口 分割窗口 :[v] ...

  7. vim使用指北 ---- Global Replacement

    一般替换 s/old/new   --- 替换当前行的第一个匹配项 s/old/new/g ---- 替换当前行所有的匹配项 number1,number2-s/old/new/g  ---- 替换从 ...

  8. 【转载】vi/vim使用进阶: 指随意动,移动如飞 (二)

    本节所用命令的帮助入口: :help usr_03.txt :help motion.txt :help usr_29.txt :help scroll.txt :help folding 上一篇文章 ...

  9. 【转载】vi/vim使用进阶: 指随意动,移动如飞 (一)

    vi/vim使用进阶: 指随意动,移动如飞 (一) << 返回vim使用进阶: 目录 本节所用命令的帮助入口: :help usr_03.txt :help motion.txt :hel ...

随机推荐

  1. 第七节:使用实现了dispose模式的类型

    知道类型如何实现dispose模式之后,接下来看一下开发人员怎样使用提供了dispose模式的类型.这里不再讨论前面的SafeHandle类,而是讨论更常用的FileStream类. 可以利用File ...

  2. python学习第二天第一部分

    备注:写程序不能写重复性的代码 学习内容:数据类型.for循环.while循环.字符编码.文件处理 一.for循环 1.简单的for循环 for i in range(10): # 此处意思为:循环r ...

  3. Python核心编程--学习笔记--7--字典和集合

    本章介绍Python语言中的映射类型(字典)和集合类型,包括操作符.工厂函数.内建函数与方法. 1 字典 字典是Python中唯一的映射类型——键key直接映射到值value.字典是容器类型,其对象是 ...

  4. Java Collections Source Code Series 2 ---接口

    废话开篇 自己学完Java Collections框架之后,其中的一个较大的收获就是接口对于层次的重要性.Java Collections的最终实现至少有几十个,其中很多都有非常相似的功能(metho ...

  5. ViewSwitcher使用范例

    一.简介 ViewSwitcher适用于两个视图带动画效果的切换.这里实现两个视图切换的功能,并附带滑屏效果. 二.截图 二.范例代码 带动画效果的切换视图一和视图二. xml <ViewSwi ...

  6. LD_PRELOAD

    下面的helloworld会在屏幕上打印出什么内容? 1 2 3 4 5 6 #include <stdio.h> int main(int argc, char* argv[], cha ...

  7. Awesome Swift

    Awesome Swift https://github.com/matteocrippa/awesome-swift A collaborative list of awesome Swift re ...

  8. ios8中的UIScreen

    let orientation: UIInterfaceOrientation = UIApplication.sharedApplication().statusBarOrientation pri ...

  9. 013--VS2013 C++ 地图贴图-其它格式图片

    //--------------------------------------------InitInstance() 函数------------------------------------- ...

  10. 30.DDR2问题2_local_init_done为什么没拉高?

    按照初始化时序,在200us时,mem_clk时钟稳定,开始初始化设置,设置完后,会产生一个初始化完成标志,local_init_done会拉高,没有拉高,可能有以下几个原因: 1.确认DDR2 IP ...