在linux系统使用中,掌握熟练的vi编辑器,可以提高linux工作效率。那么vi编辑器的使用方法有哪些呢?

vi编辑器可在绝大部分linux发行版中使用。

Vi编辑器的作用:
创建或修改文件;
维护linux系统中的各种配置文件。
vi没有菜单,只有命令
vi有三种基本工作模式,分别是:命令模式(command mode)、插入模式(insert mode)和末行模式(last line mode)

命令模式下的操作一
从命令模式进入插入模式:
a:在光标后插入内容;
A:在当前行的末尾插入内容;
o:在当前行的下面插入内容;
O:在当前行的上面插入内容;
i:在光标处插入内容;
I:在当前行的行首插入内容。

命令模式下的操作二
命令模式下的跳转命令一:
上、下、左、右方向键移动;
pageup/ctrl+b: 向上翻页;
pagedown/ctrl+f: 向下翻页;
home/^/数字0: 跳到当前行的行首;
end/$: 跳到当前行的行尾;
gg/1G: 跳到文件的第一行行首;
G/shift+g: 跳到文件的最后一行;
#G/#gg: 跳到文件的第#行。
命令模式下的跳转命令二:
H:跳到当前屏幕的第一行;
M:跳到当前屏幕的中间;
L: 跳到当前屏幕的最后一行;
w:一个单词一个单词往右跳;
b: 一个单词一个单词往左跳;
f:后面跟想跳转的字母,例如f b,向右跳到最近的一个b字母处。

命令模式下的操作三
命令模式下的复制和粘贴命令:
yy: 复制当前行;
#yy:从当前行开始向下复制#行;
yw: 从光标开始复制一个单词;
y$: 复制光标处到行尾所有内容;
y^: 复制光标处到行首所有内容;
p: 将缓冲区中的内容粘贴到光标位置处之后;
P: 将缓冲区中的内容粘贴到光标位置处之前。

命令模式下的操作四
命令模式下的删除命令:
dd: 删除当前行;
#dd:从当前行开始向下删除#行;
dw: 从光标处开始删除一个单词;
d$: 删除从光标处开始到行尾所有内容;
d^: 删除从光标处开始到行首所有内容;
x/del: 删除光标处一个字符。

命令模式下的操作五
命令模式下的撤消、替换命令:
u: 撤消上一步操作;
U: 取消对当前行所作的所有编辑;
ctrl+r: 反撤消;
ZZ: 保存当前的文件内容并退出VI编辑器;
r: 替换,例如r b,将光标处所在的字符替换成b;
R: 从光标处开始连续向右替换直到按esc键停止。

命令模式下的操作六
命令模式下文件内容的查找:
/: 从光标处开始从上而下在文件中查找字符或字符串;
?: 从光标处开始从下而上在文件中查找字符或字符串;
n: 定位下一个匹配的被查找的字符或字符串;
N: 定位上一个匹配的被查找的字符或字符串。

末行模式下的操作一
保存和退出一:
w: 保存;
w aa.log: 把当前文件另存为aa.log并放到当前目录;
w /tmp/ab.log: 把当前文件另存为ab.log放到/tmp目录下;
q: 退出;
wq/x: 保存后退出;
q!: 不保存退出;

保存和退出二(重点):
10,15 w 10.log:把当前文件的10到15行,另存到当前目录的10.log文件中;
10,15s /^/#/g:在10到15行的行首插入“#”;
%s /^/#/g : 在所有行的行首插入“#”;
10,15s /^#//g: 将10到15行的行首的“#”去掉。
显示行号:set nu
不显示行号:set nonu

末行模式下的操作二
文件内容替换(重点):
s /old/new:将当前行中查找到的第一个字符串“old”替换为“new”;
s /old/new/g:将当前行中查找到的所有字符串“old”替换为“new”;
s /old/new/c:在替换命令末尾加入c命令,将对每个替换动作提示用户进行确认;
#,# s/old/new/g:在行号“#,#”范围内替换所有的字符串“old”为“new”;
%s /^c/C/g:把当前文档中所有以c开头的内容替换成C;

末行模式下的操作三
打开新文件或读入其他文件内容:
e /home/a.txt:在当前文件下,打开新的文件进行编辑;
q!:两个文件都退出来了;

linux系统之-vi编辑器的更多相关文章

  1. Linux系统下vi编辑器的一些简单使用操作

    Linux系统安装vi编辑器 打开终端,输入: sudo apt install vim 然后输入Y等待安装即可 Linux系统下使用vi编辑器的使用 安装好vim后,终端中输入vim即可进入vim编 ...

  2. linux系统下Vi编辑器或者Vim编辑器设置显示行号、自动缩进、调整tab键宽度的技巧?

    工作中嫌vim 中一个tab键的宽度太大,linux系统默认,没改之前是一个tab键宽度是8个字符,想改成4个字符, 操作如下:(注意:这是在root用户下)cd ~vim .vimrc添加如下几行: ...

  3. ubuntu系统里vi编辑器时,按方向箭头输入是乱码的ABCD字母?(图文详解)

    不多说,直接上干货! 问题详情 ubuntu系统里vi编辑器时,按方向箭头输入是乱码的ABCD字母?  解决办法 是由于预装的vim软件没更新,运行   sudo apt-get install vi ...

  4. Linux系统的vi命令

    Linux系统的vi命令 vi编辑命令 1,格式: #vi filename 2,用法: //打开或新建文件,并将光标置于第一行首 #vi + filename //打开文件,并将光标置于第n行首 # ...

  5. Linux学习之一--VI编辑器的基本使用

    vi编辑器是Linux系统下标准的编辑器.而且不逊色于其他任何最新的编辑器.可是会用的有多少呢.下面介绍一下vi编辑器的简单用法和部分命令.让你在Linux系统中畅行无阻. 基本上vi可以分为三种状态 ...

  6. 【Linux基础】VI 编辑器基本使用方法

    vi编辑器是所有Unix及Linux系统下标准的编辑器.对Unix及Linux系统的任何版本,vi编辑器是完全相同的,它是Linux中最基本的文本编辑器. 第一章vi的三种模式 第二章vi文本编辑器 ...

  7. Linux 操作系统下 VI 编辑器常用命令详细介绍

    一.Vi 简介 vi是unix世界中最通用的全屏编辑器,linux中是用的是vi的加强版vim,vim同vi完全兼容,vi就是"visual interface"的缩写.它可以执行 ...

  8. linux应用之vi编辑器的安装、配置及用法

    vi(vim是其高级版本)是linux系统上用于文本编辑的一个应用.它的功能十分强大,在日常的系统管理活动或编程中用得都很多.所以用好vi是很有必要的. 学习vi主要学的知识点有:1.vi的配置.2. ...

  9. linux vim,vi编辑器的基础

    在之前我也不知道为什么要学vim和vi编辑器,仅仅是听过别人说这个对与linux非常重要. 先说一下为什么要学习这个编辑器.个人的看书理解. 系统管理员的重要工作就是參与与设置某些重要软件的配置文件, ...

随机推荐

  1. bootstrap模态框实现相对定位拖拽

    1.正常的拖拽是用绝对定位absolute来实现的,可是bootstrap的模态框是用relative,为了统一更改方便,就照着相对定位来实现拖拽效果. $(".modal .modal-h ...

  2. Nodejs 如何制作命令行工具

    # 全局安装,安装报错是需要前面加上sudo $ sudo npm install -g xxxb # 输出帮助 $ xxxb -h Usage: xxxb 这里是我私人玩耍的命令哦![options ...

  3. 菜鸟学习Spring——SpringMVC注解版前台向后台传值的两种方式

    一.概述. 在很多企业的开法中常常用到SpringMVC+Spring+Hibernate(mybatis)这样的架构,SpringMVC相当于Struts是页面到Contorller直接的交互的框架 ...

  4. Android上使用RecyclerView实现顶部悬浮标题效果的Sticky Title View

    目前很多的项目都在使用顶部悬浮标题的效果,很明显,这的确是一个比较人性化,用户体验效果比较好的UI交互效果,对于这个效果,有很多种实现方式,如果说要用RecyclerView来实现一个分类信息展示,并 ...

  5. android 账户管理

    1.Android开发之帐户管理 2.Android 帐户管理 小记 3.Android特色开发之账户管理 4.android AccountManager and SyncManager 5.And ...

  6. 【起航计划 034】2015 起航计划 Android APIDemo的魔鬼步伐 33 App->Service->Local Service Binding 绑定服务 ServiceConnection Binder

    本例和下列Local Service Controller 的Activity代码都定义在LocalServiceActivities.Java 中,作为LocalServiceActivities ...

  7. Exchange 域用户无权管理邮箱

    将需要管理邮箱的域用户添加至“Microsoft Exchange Security Groups”用户组即可.

  8. wxpython 按钮等事件的触发

    1.按钮事件的触发 方法中第二个参数为event

  9. Java Web 常用在线api汇总(不定时更新)

    1.Hibernate API Documentation (3.2.2.ga) http://www.hibernate.org/hib_docs/v3/api/ 2.Spring Framewor ...

  10. Browser进程和浏览器内核(Renderer进程)的通信过程

    看到这里,首先,应该对浏览器内的进程和线程都有一定理解了,那么接下来,再谈谈浏览器的Browser进程(控制进程)是如何和内核通信的, 这点也理解后,就可以将这部分的知识串联起来,从头到尾有一个完整的 ...