学习vi和vim编辑器(5):越过基础的藩篱
本章将对之前学习的编辑命令如" c "。" d "。“ y ”等命令进行总结,并学习一些新的知识:其它进入vi的方法,利用缓冲区来存储拖曳或删除的文本以及怎样在文件里做标记。
很多其它命令的组合:
之前已经不止一次讲过,对于" c ", " d "," y "等命令具有"command""TextObject"的使用形式,即这些编辑命令能够与光标移动命令进行组合使用。通过光标移动命令来表示编辑命令将会影响的文本范围。如今将这些组合命令进行简单的总结,也是对之前学习知识的回想:
更改 删除 复制 从光标位置到......
cH dH yH 当前屏幕顶端
cM dM yM 当前屏幕中间
cL dL yL 当前屏幕底端
c+ d+ y+ 下一行
c5| d5| y5| 本行第五列
c2)
d2) y2) 往下第二个句子(文件结束方向)c{ d{ y{ 往前一个段落(文件開始方向)
c/pattern d/pattern y/pattern 往下pattern第一次出现的地方
cn dn yn 下一个模式
cG dG yG 到文件结尾
c9G d9G y9G 到文件第九行
打开vi的选项:
之前已经讲过 "vi filename"这样的简单的方法来使用vi编辑器打开文件。还有非常多好用的vi命令打开选项。前进到特定位置:能够在命令行中指定打开文件后光标第一次移动的方式。比如依据行号或搜索结果移动。
vi +n file:在第n行打开文件;
vi + file:在最后一行打开file;
vi +/pattern file:在第一个出现pattern的地方打开file;
这些命令中能够使用" + "。也能够使用" - ",一般来说,两种方法都能接受。但实际測试时。发现用" - "会出现错误,例如以下图所看到的,是不是书上又讲错了?临时先记录下来吧。
这些vi编辑器的打开选项对程序猿来说很实用。
比如当编译一个源文件时出错时,编译器都会把编译出错的相关行号信息显示出来。因此我们能够直接在打开文件时就定位当对应的行上。例如以下图所看到的:
并且,当我们在编辑文件的时候。假设正好编辑到一半而不得不临时离开时,能够在当前位置用某个模式标记起来,如"HERE",当我们回来时,仅仅须要"vi +/HERE file"就可以。
仅仅读模式:能够以仅仅读模式打开一个文件,这样就不必操心不经意间改动文件了:
vi -R filename;
view filename;
view命令也像vi命令,事实上view仅仅是vi的链接:
假设在仅仅读模式中想要改动文件并保存改动,则须要使用" :w! "。感叹号就代表覆盖掉仅仅读模式。
恢复缓冲区:当编辑文件时,假设系统发生了错误。此时自从上一次存档以来所做的文件修改都会消失,能够使用-r选项恢复系统死机时的编辑缓冲区。
vi -r 或者 ex -r:得到系统保存下来的全部文件列表;
vi -r filename:能够恢复文件名称相应的编辑缓冲区。
:pre:强制系统即使在没有死机时也保存缓冲区;
善加利用缓冲区:
之前已经提过,对于最后一次删除或拖曳的内容(删除和拖曳操作共享同样的缓冲区)会被保存到缓冲区中,能够使用放置命令将这些文本放回到文件里。
同一时候,vi编辑器会将最后九次删除操作保存到有编号的缓冲区中,能够恢复这些缓冲区中的不论什么一个。
可是仅仅有以行为单位的删除本文才会被保存到编号缓冲区中,对于删除一行中的一部分,或者单词的一部分等,都不会被保存到编号缓冲区中。此时仅仅能在删除操作发生之后马上用p命令进行恢复。
在这些编号缓冲区中,最后一次删除的内容保存在缓冲区1,倒数第二次删除的内容保存到缓冲区2,依此类推。假设要恢复某个编号缓冲区内容,首先输入 "(双引號),再指定缓冲区编号,再使用放置命令,比如 "1p。
假设不确定哪个缓冲区中存放了要恢复的内容,不须要不停的输入 "np进行尝试。相反,由于在p命令之后使用反复命令" . "时。会自己主动添加缓冲区的编号,再结合撤销命令(u)。就可以按编号逐步查看每一个缓冲区的内容,从而进行正确的恢复。命令形式例如以下:"1pu.u.u.u.
依此类推。
同一时候。vi能够将拖曳或删除的文本放在以字母为标号的命名缓冲区中,这些文本能够保存到26个缓冲区(a-z)中,而且能够在编辑会话的不论什么时候使用放置命令来恢复这些文本。假设某个命名缓冲区中已经存放了文本,此时继续向该缓冲区中放置文本,则新的文本会覆盖该缓冲区中已经存在的文本,即之前的文本会消失。
要将文本保存到命名缓冲区中,须要在拖曳或删除命令之前加上双引號(")以及缓冲区的名字(a-z)。比如:"add即将删除的该行内容保存到命名为a的缓冲区中。恢复时,仅仅须要输入双引號,加上缓冲区的名字(a-z)。以及放置命令p,就可以恢复某个命名缓冲区的内容,如"ap。
当使用大写字母指定缓冲区时。拖曳或删除的文本会附加到对应的缓冲区中。
对一处做标记:
能够在文本的某处做一个看不见的书签。然后在别处编辑时,能够依据相关的命令回到对应的书签位置。须要注意的是,标记仅仅在当前编辑会话中有效。并不会存储在文件里。
mx:将当前位置标记为x(x能够是不论什么字符);
'x:(单引號)将光标移动到标记x所在行的第一个字符。
`x:(反引號)将光标移动到以x标记的字符处;
``:(两个反引號)在移动位置之后,回到上一个标记;
'':(两个单引號)回到上一个标记所在行的开头;
本章vi编辑器命令总结:
vi +n,vi +,vi +/pattern。vi -R,view。 vi -r,:pre,"1p,"ayy。"ap,mx。'x,`x,``,''。
学习vi和vim编辑器(5):越过基础的藩篱的更多相关文章
- 学习vi和vim编辑器(1):vi文本编辑器
UNIX系统中有非常多编辑器.能够分为两种类型:行编辑器和全屏编辑器.行编辑器每次仅仅能在屏幕中显示文件的一行,如ed和ex编辑器.全屏编辑器能够在屏幕上显示文件的一部分. vi(读为vee-eye) ...
- Linux学习之十三-vi和vim编辑器及其快捷键
vi和vim编辑器及其快捷键 1.vi与vim区别 它们都是多模式编辑器,不同的是vim 是vi的升级版本,它不仅兼容vi的所有指令,而且还有一些新的特性在里面. vim的这些优势主要体现在以下几个方 ...
- Linux系统vi或者vim编辑器中如何显示行号
设置行号很简单 我们要到vi或者vim编辑器的命令模式下,输入set number :set number 按下回车就显示行号了 那么怎么关闭行号呢? 很简单,我们只要再到vi或者vim编辑器的命令模 ...
- Linux 入门记录:五、vi、vim 编辑器
一.vi.vim编辑器 vi 是一个命令行界面下的文本编辑工具,最早在 1976 年由 Bill Joy 开发.当时名字叫做 ex.vi 支持绝大多数操作系统(最早在类 Unix 操作系统的 BSD上 ...
- vi与vim编辑器与解决vim编辑异常
目录 一:vi与vim编辑器 二:解决vim编辑异常 一:vi与vim编辑器 vim是vi的升级版编辑器,就是vim比vi丰富一些. 1.安装vim 命令 yum install vim -y 2.打 ...
- linux学习笔记--vi与vim编辑器
vi编辑器全名为Visual Interface,即为可视化接口,类似于Windows中的记事本 vim相当于是vi的一个升级版本,包含vi的一切操作命令,vim相对于vi做了哪些提升: 1.vim支 ...
- Vi 和 Vim 编辑器详细使用方法
学习linux的一项必会技能,熟练使用vi/vim编辑器那便最重要的了.不过一堆操作看的也是太头疼了,以下整理了些常用到的命令. 工作模式 vi编辑界面有三种不同的工作模式,分别为命令模式.输入模式. ...
- 五、Vi和Vim编辑器
1. Vim编辑器: 在Linux下一般使用vi编辑器来编辑文件.vi既可以查看文件也可以编辑文件.三种模式: 命令行.插入.底行模式 切换到命令行模式:按Esc键: 切换到插入模式:按 i .o.a ...
- Linux实操篇 vi和vim编辑器
vi和vim的基本介绍 所有的Linux系统都会内建vi文本编辑器. vim具有程序编辑的能力,可以看做是vi的增强版本,可以主动的以字体颜色辨别语法的正确性,方便程序设计.代码补完.编译及错误跳转等 ...
随机推荐
- Oracle-2 - :超级适合初学者的入门级笔记--定义更改约束,视图,序列,索引,同义词
接着我上一篇的写,在这感觉到哇 内容好多啊 上一篇,纯手打滴,希望给个赞! 添加约束的语法: 使用 alter table 添加或删除约束,但是不能修改约束 有效化或无效化约束 添加not nul ...
- SharePoint Online 创建用户和组
前言 本文介绍如何在Office 365中创建用户和组,这里所说的用户和组,是指Office 365中的用户和组,我们可以用这里的用户登录Office 365环境,用组的概念来管理用户,而非Share ...
- C#操纵Excel,此工作薄包含嵌入对象,Office 2007的设定方法
C#操纵Excel,插入OLE对象时报“此工作薄包含嵌入对象,EXCEL可能无法从这些对象中删除个人信息.”, 如网上所述,Office 2003可以通过“菜单>>工具>>选项 ...
- Espresso浅析和使用
欢迎大家前往腾讯云社区,获取更多腾讯海量技术实践干货哦~ Espresso是一个Google官方提供的Android应用UI自动化测试框架.Google希望,当Android的开发者利用Espress ...
- iPhone X 网页导航概念
以下内容由Mockplus团队翻译整理,仅供学习交流,Mockplus是更快更简单的原型设计工具. 在移动应用程序设计中,选择汉堡菜单按钮还是标签栏作为导航一直是个古老的争论话题.目前看来,由于 ...
- 后台工作者HangFire与ABP框架Abp.Hangfire及扩展
HangFire与Quartz.NET相比主要是HangFire的内置提供集成化的控制台,方便后台查看及监控,对于大家来说,比较方便. HangFire是什么 Hangfire是一个开源框架(.NET ...
- 查看Page结构
SQL Server存储数据的基本单元是Page,每一个Page的大小是8KB,数据文件是由Page构成的.在同一个数据库上,每一个Page都有一个唯一的资源标识,标识符由三部分组成:db_id,fi ...
- hotspot虚拟机的调试
3这篇文章,怎么说呢.是踩了很多坑得出来了,也是在自己快要崩溃的时候得出来了的. 连续踩了差不多10来个小时的坑,还好是出来了. 这篇文章是调试虚拟机的,其实网上也能找到一些文章,但是每个人的环境不一 ...
- Oracle存储过程和自定义函数
新博客文章链接,欢迎大家评论探讨 概述 存储过程和存储函数是指存储在数据库中供所有用户程序调用的子程序叫存储过程.存储函数. 异同点: 存储过程和存储函数的相同点:完成特定功能的程序. 存储过程和存储 ...
- java版Web Socket,实现消息推送
# web socket是什么? WebSocket协议是基于TCP的一种新的网络协议. 它实现了浏览器与服务器全双工(full-duplex)通信,允许服务器主动发送信息给客户端. ## 用途 实时 ...