第二章 再谈 【次数+操作符+动作命令】,及EX命令

前面记录了vim的简化方式,最理想的过程,追求的是一键移动,一键操作修改。

达成这个目的除了宏作用之外,次数+操作符+动作命令也扮演了重要作用。


【2dd】就是一个典型的次数+操作符+动作命令:

【2】表明连续执行两次;【d】表示是一个剪切操作;【d】当一个操作符命令被连续调用两次时,表示作用于当前行;

整体含义:连续删除两次当前行。


值得注意的是,【d】本质上属于剪切操作,内容被复制到了寄存器中,【2dd】后再使用【p】,被删除的2行内容会粘贴出来,而非粘贴一行。

操作符与动作命令的结合形成了一种语法,学习新的动作命令及操作符,就好像在学习vim新词汇,我们就能表达更多的想法。


次数还能做简单的算术运算:



【ctrl+a】对数字执行加1,【ctrl+z】对数字执行减1。

如图所示,假设想把128改成130,常规做法是【退格键】删除28,然后重新输入30。


现在只需要在命令模式下按两次【ctrl+a】,完成了+2的操作。

假设想把128改成256,当然不可能让我们连按128次【ctrl+a】,而是按【128ctrl+a】即可。

————————————————————————

远比普通模式命令强大的多的EX命令(仅部分):

命令用途
:[range]delete [x]剪切指定范围的行到寄存器x中
:[range]yank [x]复制指定范围的行到寄存器x中
:[line]put [x]在指定行后粘贴寄存器x中内容
:[range]copy {address}指定范围的行拷贝到{address}行之下
:[range]move {address}指定范围的行移动到{address}行之下
:[range]join连接指定范围的行
:[range]normal {commands}对指定范围内的每一行执行{commands}命令
:[range]substitute/{pattern}/{string}/[flags]把指定范围内出现{pattern}的地方替换为{string}
:[range]global/{pattern}/[cmd]对指定范围内匹配{pattern}的所有行,在其上执行EX命令{cmd}

比起普通模式命令,EX命令提供了构造更加复杂操作的能力。

它无需移动光标,直接在任意位置执行,而且拥有在多行上同时执行的能力。


所有能用普通模式命令解决的问题,都可以用EX命令解决。

在比较简单的操作时,几个单词或者几行内,选择普通命令模式较有效率,复杂一些的操作,跨越多行或代码块,选择EX命令更有效率。


range可以用行号,位置标签或者查找模式来指定范围。


行号指定范围:


: 0            虚拟行,位于文件第一行的上方

: .              点指定光标所在当前行。

: 20          指定第20行,即光标跳转到第20行号。

: 20,40     指定从20行号开始,到40行号结束。


位置标签指定范围:


先用vim自带的mark标记能力,比如mm,mn做好标记。

:'m,'n         指定从m标记开始,到n标记结束


查找模式确定范围:


:/part/, /endpart/      以 关键字 part开始,以关键字 endpart结束。

假设有如下文本:


我们想对<html>和</html>之间的部分进行操作,一种方式是使用行号指定范围,另一种方式就是查找模式。

输入:/<html>/, /<\html>/



这样无论<html>和</html>之间包含多少行的内容(内容变化会引起行号变化),都能准确处理。

在这个例子里,比起行号指定方式,查找模式要更加灵活,智能。


但是这样处理时,<html>和</html>本身也被包含了,如果想剔除掉它们,可以使用如下方式:

:/part/+1,  /endpart/ -1         地址偏移,  以 关键字 part下一行开始,以关键字 endpart上一行结束,即不包括关键字本身。


地址偏移的起始部分,既可以是查找模式的关键字,也可以是行号,甚至是mark标记。

:'m+3,'n-5     地址偏移,从标记m+3开始,到标记n-5结束

: .+3, $          地址偏移,从当前行+3开始,到最后一行结束

  

: $          文件最后一行

: %         起始和结束范围是整个文件

:%d        删除掉整个文件内容,d是delete简写


权威的UNIX网络操作系统实训实验报告 实验一、UNIX入门(第2和3章) 实验目的与要求 1.了解掌握UNIX操作系统的发展历史,历年来的开发的情况。 2.了解掌握UNIX版本的种类和一些系统的重要特性。 3.熟悉掌握如何启动和终止(登录和退出)一个UNIX会话,能够解释口令的功能。 4.熟悉掌握命令行格式,能够对一些简单的命令进行操作并作出解释。 5.熟悉掌握与UNIX建立连接的过程和一些UNIX系统内部的操作。 实验方案 此次实验是关于UNIX入门内容,涉及要上机操作是部分比较少,主要是熟悉书本上相对应的第二章和第三章的知识点。要求自己在熟悉书本知识的同时要在自己的电脑上安装一个UNIX的操作系统来完成此次的实验,这次实验中我选择安装OPenSolaris10版本UNIX的系统,采用虚拟机安装在D盘。完成实验习题主要途径是从书本上的知识点处提起,并适当的结合Internet互联网上的资料进行知识的扩充,用QQ截图工具来完成运行结果的截图。 实验二、vi编辑器(第4和6章) 一、 实验目的与要求 1.熟悉掌握什么是编辑器,它的种类有哪些。 2.了解UNIX支持的编辑器,掌握Vi编辑器的基本情况。 3.能够熟练的使用vi编辑器完成简单的编辑作业。 4.在第四章知识的基础上了解掌握vi更多的功能以及灵活性,学习更多的高级命令,并且能够结合其他的命令解释这些命令的范围和用途。 5.熟练掌握vi编辑器临时缓冲区的操作。提供了集中根据用户需求定制的vi编辑器的方法。 二、 实验方案 此次实验主要是介绍vi编辑器,与实验一一样,编程环境:open Solaris 10,涉及要上机操作是部分比较少,主要是熟悉书本上相对应的第4章和第6章的知识点。通过实验一,在这次实验的前后我做了下面的准备工作。首先是精读课本的第4章和第6章的知识点,结合书本的例子先进行检查验证是否正确,然后把书本的习题和上机部分的内容先做了一遍,再确认没有什么问题的情况下再完成此次实验。通过这三个步骤来保证这次实验的收获达到最大。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值