10 vi简介(重点)
1.为什么学习vi?
- vi很多系统都预装,如果我们的系统没有图像界面,可以使用vi
- vi是轻量级且执行快速的编辑器
2.vi的几种模式
命令模式、插入模式、底行模式
1) 命令行模式(command mode)
控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到 last line mode。
2) 插入模式(Insert mode)
只有在Insert mode下,才可以做文字输入,按「ESC」键可回到命令行模式。
3) 底行模式(last line mode)
将文件保存或退出vi,也可以设置编辑环境,如寻找字符串、列出行号……等。
不过一般我们在使用时把vi简化成两个模式,就是将底行模式(last line mode)也算入命令行模式command mode)
一、启动与关闭vi
1.启动
huiubantu@ubuntu:~$ vi
或者新建一个vi文件
huiubantu@ubuntu:~$ rm -f foo.txt
huiubantu@ubuntu:~$ vi foo.txt 会出现一个每行开头都是波浪号~的空文件,波浪号~指示那一行不存在文本
2.关闭vi,需要注意是在命令模式下
:q #在vi编辑器中
或者确认真的关闭vi
:q!
二、编辑模式
1.进入插入模式
i按键进入,之后可以输入文本,当按下ESC按键,退出插入模式并返回命令模式
2.保存我们的工作
命令模式下(就是ESC之后)输入ex命令
:w 另外,保存并退出可以用:w再用:q 也可以直接用:wq
三、基本编辑操作
1.撤销上一次的修改
命令模式下,按u按键
2.追加文本(在行尾)
命令模式下,A按键
3.打开新的一行
命令状态下,o按键在当前行的下边打开一行,O按键在当前行的上边一行打开一行
4.删除文本
x按键会删除光标位置的一个字符,x命令之前带一个数字指明要删除的字符个数;
d命令之前带上一个数字指明要执行的删除次数,d命令之后总是带上一个移动命令,用来控制删除的范围
5.剪切、复制和粘贴文本
d 命令,删除的部分被复制到一个粘贴缓冲区中(看作剪切板)。过后我们执行小 p 命令把剪切板中的文本粘贴到光标位置之后,或者是大 P 命令把文本粘贴到光标之前。
y 命令用来“拉”(复制)文本,和 d 命令剪切文本的方式差不多。 这里有一些详细命令不像述
6.连接行
J按键用来把行与行之间连接起来(区别小写的 j 是用来移动光标)
四、查找和替换
1.查找一行
f命令查找一行,移动光标到下一个所指定的字符上。
如fa命令就是把光标定位到了同一行中的下一个出现的a字符上
2.查找整个文件
/命令
当你输入/命令后,一个 “/” 字符会出现在屏幕底部。下一步,输入要查找的单词或短语后,按下回车。光标就会移动到下一个包含所查找字符串的位置。通过 n 命令来重复先前的查找。
3.全局查找和替换
使用以下ex命令
:%s/line/Line/g :是运行一个ex命令 %制定操作的行数是从第一行到最后一行 s指定操作是替换 /line/Line是查找类型与替换类型 g是全局的意思
五、编辑多个文件
1.格式 vi file1 file2 file3……
2.文件之间的转换
从这个文件转到另一个文件
:n
回到先前的文件使用
:N
3.从一个文件复制内容到另一个文件
首先转换到缓冲区 1( foo.txt),输入:
:buffer
下一步,把光标移到第一行,并且输入yy来复制这一行
然后,转换到第二个缓冲区
:buffer 2
移动光标到第一行,输入p命令把我们从前边文件中复制的一行粘贴到这个文件
4.插入整个文件到另一个文件
首先,打开要粘贴到的一个文件的vi会话
huiubantu@ubuntu:~$ vi ls-output.txt
然后在最后一行输入ex命令
:r foo.txt 表示读入foo.txt文件的所有内容
六、保存文件
1.命令模式下,输入ZZ会保存并退出当前文件
2.ex命令:wq同样会保存并退出当前文件
七、移动光标
命令模式下,vi提供了大量的移动命令,不详述
10 vi简介(重点)的更多相关文章
- Debian Vi 简介
1.Vi 简介 Vi 是 Unix 世界里极为普遍的全萤幕文书编辑器,几乎可以说任何一台 Unix 机器都会提供这套软体.Linux 当然也有,它的 vi 其实是 elvis (版权问题),不 ...
- 140227项目开发及上线过程遇到的10个问题(重点: FCK过滤替换)
1.替换条件判断问题 String s = (String)map2.get("contentIntro"); if(s != null && s.length() ...
- Day01_UNIX基础及VI简介
2013年09月29日 星期日 11时35分58秒 Linux 是一个区别于Windows的操作系统 Linux 是一个多用户的操作系统 Linux 系统通过账号区分不同的用户 在使用Linux系统的 ...
- -1-0 Java 简介 java是什么 java简单介绍
Java是一门纯粹的面向对象的高级的平台无关的编程语言 官网介绍: 了解 Java 技术 https://www.java.com/zh_CN/about/ 推荐词条: https://zh.wik ...
- ML.NET 0.10特性简介
IDataView被单独作为一个类库包 IDataView组件为表格式数据提供了非常高效的处理方式,尤其是用于机器学习和高级分析应用.它被设计为可以高效地处理高维数据和大型数据集.并且也适合处理属于更 ...
- Apache Commons Lang » 3.10使用简介
============================================================= 行文介绍: 1.诞生背景 2.引入方案 3.简单介绍 4 .详情介绍 文档: ...
- 2017/2/10:Manven简介与项目管理(入门)
1.Maven工程的创建 2.使用Manven manven配置文件主要集中在 http://m.blog.csdn.net/article/details?id=50316383
- Linux:vi & vim(待学)
VI编辑器_终端编辑器 目标 vi简介 打开和新建文件 三种工作模式 常用命令查询 1 简介 1.1 学习vi的目的 在工作中, 要对 服务器上的 文件进行 简单 的修改, 可以使用 ssh 登录到远 ...
- Redis从入门到高级笔记【涵盖重点面试题】
NoSQL数据库 DBEngines网站中会统计目前数据库在全世界的排名 1.1 什么是NoSQL 最常见的解释是"non-relational",很多人说它是"Not ...
随机推荐
- Django——model字段类型 2
Django 通过models实现数据库的创建.修改.删除等操作,Django中model作为数据资源指定了字段以及一些相应的功能,通常每个model对应数据库中的一张表,(每个model都是从dja ...
- 序列化、反序列化(实体类或要序列化的对象类必须实现Serializable接口)
package com.phone.shuyinghengxie; import java.io.Serializable; /* 一个类的对象要想序列化成功,必须满足两个条件: 该类必须实现 jav ...
- [Java解惑]字符串
声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...
- C#中Monitor和Lock以及区别
Monitor对象 1.Monitor.Enter(object)方法是获取锁,Monitor.Exit(object)方法是释放锁,这就是Monitor最常用的两个方法,当然在使用过程中为了避免获取 ...
- LINQ之路 4:LINQ方法语法
书写LINQ查询时又两种语法可供选择:方法语法(Fluent Syntax)和查询语法(Query Expression). LINQ方法语法是非常灵活和重要的,我们在这里将描述使用链接查询运算符的方 ...
- linux终端vi同时显示多个文件的分屏操作及切换操作
以前看到那边分屏操作的觉得很高端,现在初步整理了一下. 这里不是那个用代码实现的分屏,完全属于linux的操作命令 一.打开并显示文件 1.打开 这个不用说了,就是vi xx.c,或者vi xx1.c ...
- Nexus4铃声目录
1. 我的铃声 是通过下面的命令 传到手机上面去的: “ adb push fringe_01_long.mp3 /sdcard/ZC/ adb push fringe_02_short.mp3 /s ...
- Http状态总结
常见的http状态总结: 如果向您的服务器发出了某项请求要求显示您网站上的某个网页,那么,您的服务器会返回 HTTP 状态代码以响应该请求.一些常见的状态代码为: 200 - 服务器成功返回网页 40 ...
- JS获得事件发出者
因为ff下本身不支持srcElement而是支持target,你这里这么用也是为了兼容浏览器,但是event.srcElement.id这么写会从event.srcElement里找id属性,这样是默 ...
- 阿里云+wordpress搭建个人博客网站
[正文] 在阿里云上搭建使用个人博客主要分为以下几个步骤: 1.购买阿里云ECS主机 2.购买域名 3.申请备案 4.环境配置 5.安装wordpress 6.域名解析 声明一下,本人对服务器端的知识 ...