前言

出于历史原因,命令行模式又叫 Ex 模式,它具有的功能有:

  1. 读写文件:比如 :edit, :write 等等
  2. 创建标签页或者窗口:比如 :tabnew :split
  3. 操作缓存区,比如: bnext
  4. 编辑文本

本章主要介绍对编辑文本的相关的 Ex 命令

调出 Ex 模式

总共有三种方法调出 Ex 模式:

  1. 一般的格式是通过 ":" 输入指令,然后按<CR>进行进行执行.
  2. “/”用于调出查找提示符
  3. = 调出表达式寄存器

编辑文本的 Ex 命令的格式

种类

Ex 命令的影响范围广且距离远,是因为与普通模式相比,它可以对一个命令指定其 [range] 和 {address}
命令有:

  • :[range]delete [x]
  • :[range]yank [x]
  • :[line]put [x]
  • :[range]copy {address}
  • :[range]move {address}
  • :[range]join
  • :[range]normal {commands}
  • :[range]substitute/{pattern}/{string}/[flags]
  • :[range]global/{pattern}/[cmd]

[range]:在多个连续行执行命令

格式:

:[start, end] 命令
其中 start, 和 end 都是地址,其可以用表示地址的行号、符号、查找模式来表示.

Ex 命令中表示地址的语法

  • 1 : 文本的第一行
  • $ : 文本的最后一行
  • 0 :文本的第 0 行
  • . : 光标所在行
  • ’m :包含位置标记“m"的行
  • '< :高亮选区的起始行
  • ‘> :高亮选区的结束行
  • % : 整个文件

常用技巧

技巧29 :使用’ :t ‘ & ’:m' 复制和移动行

格式:

  • :[range]t {address}
  • :[range]m {address}

功能是将 [range] 内的行移动到 {address} 处.copy 用于复制, move 用于移动.

技巧30: 在指定范围上执行 normal 命令

格式:
:[range] normal [cmd]
举例:比如在一个 JavaScript 文件中要对选中的行的末尾都添加“;” , 可以执行 :'<'> normal A; 命令

命令行窗口

调出命令行窗口

调出方式有三种:

  1. 使用 q: 可以调出命令行窗口
  2. 使用 q/ 打开查找命令历史的命s行窗口

重复上一次的 Ex 命令

方法一:执行过的 Ex 命令会储存在 : 的寄存器中,因此可以通过 @: 命令执行上一次的 Ex 命令
方法二: 按键盘上的 up\ down 键,可以执行上一次的 Ex 命令
方法三: 打开命令行窗口,可以执行上一次的命令行命令.

《Practical Vim》第五章:命令行模式的更多相关文章

  1. vim第五章 命令行模式

    vim第五章命令行模式 技巧 27 结识vim的命令行模式 在命令行模式中执行的命令有被称作ex命令    在按/调出查找提示符或者<C-r>=访问表示寄存器时 命令行模式也被激活     ...

  2. VIM命令行模式下的相关知识

    当按下:键时, Vim会切换到命令行模式: 重复上次执行的EX命令,只需按@:就可以: 在一行或多个连续行执行命令 很多的EX全天候可以指定操作范围,如行号,位置标记等: 以:print命令作为演示, ...

  3. vim命令行模式

    1. 激活命令行模式 : 进入命令行模式 <Esc>  退出命令行模式 2. 常用命令 :p 打印 (:print) :e 读入文件 (:edit) :w 写入文件 (:write) :t ...

  4. 01_Git的安装和简单使用(命令行模式+图形化模式)

      刚开始用git的小白适用,参考链接:http://www.cnblogs.com/qijunjun/p/7137207.html  实际项目开发中,我们经常会用一些版本控制器来托管自己的代码,今天 ...

  5. Linux 命令行模式 你需要知道的那些事

    注: 安装软件 pip install + 软件名  例如: pip install xadmin 卸载软件 pip uninstall + 软件名 例如 pip uninstall xadmin 安 ...

  6. Ubuntu 开机进入命令行模式

    1.修改配置 sudo vim /etc/default/grub 把 GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" 改为 GRUB_CMDL ...

  7. Vim中常用的命令行

    Vim中常用的命令行... ------------------- 一些真正强大的武器总不是那么容易驾驭的,主角总得付出一些努力才能收获到更加强大的力量,对于 Vim 这种上古神器来说更是如此.由于它 ...

  8. PHP 的命令行模式

    php CLI SAPI 内置Web Server 从版本 4.3.0 开始,PHP 提供了一种新类型的 CLI SAPI(Server Application Programming Interfa ...

  9. PHP 命令行模式实战之cli+mysql 模拟队列批量发送邮件(在Linux环境下PHP 异步执行脚本发送事件通知消息实际案例)

    源码地址:https://github.com/Tinywan/PHP_Experience 测试环境配置: 环境:Windows 7系统 .PHP7.0.Apache服务器 PHP框架:ThinkP ...

随机推荐

  1. css学习_css定位

    1.定在某个位置:简称定位 2.浮动和定位的区别 定位的分类:定位模式 a.静态定位:(标准流) b.相对定位(不脱离文档流)---以自己左上角为基准点定位 c.绝对定位absolute  (拼爹型: ...

  2. [ovs] 编写openflow流表的文档指引

    首先,openflow流表都是使用ovs-ofctl命令进行添加的. 1. 看 ovs-ofctl 的man手册 man ovs-ofctl 或者,这个地方也有:http://www.openvswi ...

  3. redis3.0.3集群搭建

    redis3.0版本之后支持Cluster,具体介绍redis集群我就不多说,了解请看redis中文简介. 首先,直接访问redis.io官网,下载redis.tar.gz,现在版本3.0.3,我下面 ...

  4. python摸爬滚打之day21---- 模块

    1.MD5加密模块 MD5是一种不可逆的加密算法, 是安全而且可靠的.  在某些网站上能够搜到MD5解密工具, 其实并没有解密工具, 而是"撞库"的方式. 网站将一些MD5数据保存 ...

  5. automapper demo

    最近做项目,需要把DataTable中的数据强类型化.于是试用了下比较常用的AutoMapper,通过看代码中附带的Demo与网上的教程,也算能够勉强使用了,现将学习笔记记录如下: namespace ...

  6. rpm 包的安装、卸载、升级、查询、验证

    关键字: rpm 强制卸载jdk rpm -e j2sdk1.4.2_04 强制覆盖安装jdk rpm -Uvh j2sdk-1_4_1_02-fcs-linux-i586.rpm --force - ...

  7. Gitlab+Jenkins实现自动部署

    Gitlab+Jenkins实现自动部署   系统环境: Gitlab主机 IP:192.168.1.2 Jenkins主机 IP:192.168.1.3 一.为何要做自动部署 #部署Tomcat的在 ...

  8. Lua C/C++互相调用

    先来说下大致脚本引擎框架,此次采用如下,即运行C++代码启动程序,然后加载Lua脚本执行! 1.基础 Lua脚本中只能调用 int (*lua_CFunction) (lua_State *L) 这种 ...

  9. Lua论分析需求(学好英文)的重要性

    题目是这样的: Observe that its base and height are both equal to , and the image is drawn using # symbols ...

  10. Java Hello World源代码notepad++版

    Notepad++中写Java Hello World代码并运行,步骤如下: 1. 在E:\CodeDemo\Java文件夹下(你也可以选择自己的文件夹)新建一个txt文本文件. 如果没有NotePa ...