vi命令

       vi命令是UNIX操作系统和类UNIX操作系统中最通用的全屏幕纯文本编辑器。

       Linux中的vi编辑器叫vim,它是vi的增强版(vi Improved),与vi编辑器完全兼容,而且实现了很多增强功能。

vi编辑器支持编辑模式和命令模式,编辑模式下可以完成文本的编辑功能,命令模式下可以完成对文件的操作命令,要正确使用vi编辑器就必须熟练掌握着两种模式的切换。
默认情况下,打开vi编辑器后自动进入命令模式。从编辑模式切换到命令模式使用“esc”键,从命令模式切换到编辑模式使用“A”、“a”、“O”、“o”、“I”、“i”键。
vi编辑器提供了丰富的内置命令,有些内置命令使用键盘组合键即可完成,有些内置命令则需要以冒号“:”开头输入。常用内置命令如下:
文件列表:指定要编辑的文件列表。多个文件之间使用空格分隔开。
vi编辑器有三种工作方式:命令方式、输入方式和ex转义方式。通过相应的命令或操作,在这三种工作方式之间可以进行转换。

三种

工作

方式

命令方式

在Shell提示符后输入命令vi,进入vi编辑器,并处于vi的命令方式。

此时,从键盘上输入的任何字符都被作为编辑命令来解释,

例如,a(append)表示附加命令,i(insert)表示插入命令,x表示删除字符命令等。

如果输入的字符不是vi的合法命令,则机器发出“报警声”,光标不移动。

另外,在命令方式下输入的字符(即vi命令)并不在屏幕上显示出来,

例如,输入i,屏幕上并无变化,但通过执行i命令,编辑器的工作方式却发生变化:由命令方式变为输入方式。

输入方式
通过输入vi的插入命令(i)、附加命令(a)、打开命令(o)、替换命令(s)、修改命令(c)或取代命令(r)可以从命令方式进入输入方式。
在输入方式下,从键盘上输入的所有字符都被插入到正在编辑的缓冲区中,被当做该文件的正文。
进入输入方式后,输入的可见字符都在屏幕上显示出来,而编辑命令不再起作用,仅作为普通字母出现。
例如,在命令方式下输入字母i,进到输入方式,然后再输入i,就在屏幕上相应光标处添加一个字母i。
由输入方式回到命令方式的办法是按下Esc键。
如果已在命令方式下,那么按下Esc键就会发出“嘟嘟”声。
为了确保用户想执行的vi命令是在命令方式下输入的,不妨多按几下Esc键,听到嘟声后再输入命令。
ex转义方式
vi和ex编辑器的功能是相同的,二者的主要区别是用户界面。在vi中,命令通常是单个字母,如a,x,r等。
而在ex中,命令是以Enter;键结束的命令行。vi有一个专门的“转义”命令,可访问很多面向行的ex命令。
为使用ex转义方式,可输入一个冒号(:)。作为ex命令提示符,冒号出现在状态行(通常在屏幕最下一行)。
按下中断键(通常是Del键),可终止正在执行的命令。
多数文件管理命令都是在ex转义方式下执行的(例如,读取文件,把编辑缓冲区的内容写到文件中等)。转义命令执行后,自动回到命令方式。
例如:则从文件第一行至文件末尾($)将大写I全部替换成小写i。
vi编辑器的三种工作方式之间的转换如图所示:

 

转载于:https://www.cnblogs.com/xiaoxiaoweng/p/7716701.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/428644.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

1189C. Candies

C. Candies&#xff1a;题目 思维题&#xff0c;我是笨蛋。我看了半天也没想明白怎么dp&#xff0c;可恶啊。#include <bits/stdc.h> using namespace std; #define int long long vector<int> a((int)6e5); vector<int> b((int)6e5), c((int)6e5); const i…

SQL基本语法

SQL 基本语法 表库操作 创建表create table 表名(字段名 类型(长度) 约束,字段名 类型(长度) 约束); 创建主键约束id int primary key, primary key(id) // 在创建表最后创建主键约束 删除主键alter table 表名 drop primary key; 主键自动增长主键字段后加auto_increment(只适…

136. Single Number

Given an array of integers, every element appears twice except for one. Find that single one. 题目含义&#xff1a;给定的数组中&#xff0c;每个数字出现两次&#xff0c;只有一个数字出现了一次&#xff0c;找出这个数字 1 public int singleNumber(int[] nums) {…

797B. Odd sum

B. Odd sum&#xff1a;题目 一道小小的贪心#include <bits/stdc.h> using namespace std; #define int long long vector<int> a((int)6e5); vector<int> b((int)6e5), c[(int)6e5]; const int mod 1e9 7; string s; multiset<int> se; signed mai…

602B. Approximating a Constant Range

B. Approximating a Constant Range&#xff1a;题目 可恶啊&#xff0c;不知道为什么我双指针的代码不过&#xff0c;重新写了个。。。。。#include <bits/stdc.h> using namespace std; #define int long long vector<int> a((int)6e5); vector<int> b((i…

1415C. Bouncing Ball

C. Bouncing Ball&#xff1a;题目 很好的dp&#xff0c;1400分难见的题#include <bits/stdc.h> using namespace std; #define int long long vector<int> a((int)6e5); vector<int> b((int)6e5), c[(int)6e5]; const int mod 1e9 7; string s; signed m…

几种直播流媒体协议

题外话&#xff1a; HTTP渐进下载流媒体播放: 基于TCP。 yy、乐视、爱奇艺、优酷土豆、搜狐视频、花椒直播&#xff0c;主要还是通过rtmp&hls来实现的&#xff0c; 但他们也意识到rtmp的天生缺陷&#xff0c;所以不管是技术预研也好&#xff0c;还是测试版也好&#xff0c…

253B. Physics Practical

B. Physics Practical&#xff1a;题目 太简单的题目了&#xff0c;和dp没啥关系#include <bits/stdc.h> using namespace std; #define int long long vector<int> a((int)6e5); vector<int> b((int)6e5), c[(int)6e5]; const int mod 1e9 7; signed mai…

程序常识

闰年判定&#xff08;三种情况&#xff1a;或&#xff09;&#xff1a; 非整百年&#xff1a;能够被4整除&#xff0c;且不能被100整除&#xff08;year % 4 0 && year % 100 ! 0&#xff09;。整百年&#xff1a;能够被400整除&#xff08;year % 400 0&#xff09;…

940B. Our Tanya is Crying Out Loud

B. Our Tanya is Crying Out Loud&#xff1b;题目 1特判&#xff0c;因为除1还是本身&#xff0c;这点就很淦#include <bits/stdc.h> using namespace std; #define int long long vector<int> a((int)6e5); vector<int> b((int)6e5), c[(int)6e5]; const …

548B. Mike and Fun

B. Mike and Fun&#xff1a;题目 太离谱了呀&#xff0c;这啥遍历题啊。。。#include <bits/stdc.h> using namespace std; #define int long long vector<int> a((int)6e5); vector<int> b((int)6e5), c[(int)6e5]; const int mod 1e9 7; int g[1001][1…

EntityFramwork常见问题

1.常用的语句有哪些 添加migration dotnet ef migrations add [MIgrationName] 删除刚添加的migration dotnet ef migrations remove 更新数据库 dotnet ef database update、 2.在代码中用 attribute (code first) 限制表中字段的类型及主外键 主键 [Key]自…

359B. Permutation

B. Permutation&#xff1a;题目 很容易就发现&#xff0c;按顺序正好等于0。把i和i2换一次可以加2&#xff0c;所以k是多少就换几次#include <bits/stdc.h> using namespace std; #define int long long vector<int> a((int)6e5); vector<int> b((int)6e5)…

180C. Letter

C. Letter&#xff1a;题目 #include <bits/stdc.h> using namespace std; #define int long long vector<int> a((int)6e5); vector<int> b((int)6e5), c[(int)6e5]; const int mod 1e9 7; string s; signed main() {cin>>s;int n s.length();s …

KindEditor富文本编辑器上传功能PHP语言报错问题

问题产生过程&#xff1a;项目原本使用的是Ueditor编辑器&#xff0c;由于其中js代码有使用parentNode获取HTML节点&#xff0c;IE浏览器内核不支持parentNode &#xff0c;会有二次加载富文本编辑器不渲染的问题&#xff0c;所以更换编辑器为kindeditor&#xff0c;其中上传文…

E. Anfisa the Monkey

44E. Anfisa the Monkey 老题目&#xff0c;不更新&#xff0c;不值1400分&#xff0c;建议减分#include <bits/stdc.h> using namespace std; #define int long long vector<int> a((int)6e5); vector<int> b((int)6e5), c[(int)6e5]; const int mod 1e9 …

QA-3:

Q:这样创建的按钮和在ui里拖动创建的有什么区别,为什么ui里(edit signals/slots)的我看不到代码 A:基本没有区别。UI 文件是基于 XML 的描述性文件。Qt 使用特殊的编译器&#xff08;uic&#xff09;将 UI 文件翻译成 C 源代码&#xff0c;然后再进行编译。使用 UI 文件可以进行…

B. File List

174B. File List:题目 可恶啊&#xff0c;写了一堆bug&#xff0c;最讨厌字符串处理了(〃&#xff1e;目&#xff1c;)#include <bits/stdc.h> using namespace std; // #define int long long string s, ss ""; vector<string> ve; signed main() {//…

SQLServer 的存储过程与java交互

一、 存储过程简介 Sql Server的存储过程是一个被命名的存储在服务器上的Transacation-Sql语句集合,是封装重复性工作的一种方法,它支持用户声明的变量、条件执行和其他强大的编程功能。 存储过程相对于其他的数据库访问方法有以下的优点&#xff1a; &#xff08;1&#xff…

[译]Javascript中的闭包(closures)

本文翻译youtube上的up主kudvenkat的javascript tutorial播放单 源地址在此: https://www.youtube.com/watch?vPMsVM7rjupU&listPL6n9fhu94yhUA99nOsJkKXBqokT3MBK0b 本次视频中我们将通过例子来理解Javascript中的闭包(closure) 什么是闭包(closure)? 一个闭包就是一个在…