Linux操作系统的VI命令

  VI是Linux系统的一个文本编辑器,该编辑器可以通过使用VI命令来操作,从而完成对文本的编辑。熟练掌握一些常用的VI命令,可以大大简化编辑操作并提高操作Linux文本的效率 。

  使用VI命令编辑文本时,有三种编辑模式——命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode)。

(一)命令模式

  命令模式可以在文本中快速定位光标在指定区域、执行复制和粘贴操作、执行删除操作等。

  ①光标移动

命令

描述

 

命令

描述

0

光标定位到开头位置

G

光标定位到结束位置

^

光标定位行首

$

光标定位行尾

Ctrl+f

光标定位到上一页

Ctrl+b

光标定位到下一页

Ctrl+d

光标定位到上半页

Ctrl+u

光标定位到下半页

[n]l

光标定位到行的第n格

[n]G

光标定位到第n行

h、j、k、l

光标向左、下、上、右移一格

  ②删除文本

命 令

描 述

 

命 令

描 述

x

删除光标后一个字符

[n]x

删除光标后n个字符

X

删除光标前一个字符

[n]X

删除光标前n个字符

dd

删除当前行

[n]dd

向下删除n行

dG

向下删除到最后一行

dw

删除当前的单词

d0

删除光标至行首

d$

删除光标至行尾

  ③删除、复制、粘贴、查找、替换、撤销

  

命令

描述

 

命令

描述

yy

复制当前行

[n]yy

向下复制n行

dd

删除当前行

[n]dd

向下删除n行

dG

向下删除到最后一行

dw

删除当前的单词

d0

删除光标至行首

d$

删除光标至行尾

r

替换光标处的字符

R

替换光标所到处的字符(按ESC键结束)

p

在下一行位置粘贴内容

/[关键字]、?[关键字]

查找关键字(按n查找下一个)

u

撤销操作

ctrl+r

反撤销操作

(二)插入模式

  插入模式可以移动和定位光标(小范围定位)、自由输入文本、替换文本等。

命令

描述

 

命令

描述

i

光标之前输入

I

光标定位到行首

a

光标之后输入

A

光标定位到行尾

o

光标定位到下一行开头

O

光标定位到上一行开头

s

替换光标位置的字符

S

替换光标位置的行

(三)底行模式

  底行模式可以查找文本、定位光标(通过查找)和保存文件等。

命 令

描  述

 

命 令

描  述

:w

保存文件

:q

退出编辑器

:q!

强制退出编辑器

:wq

保存文件并退出编辑器

:set nu

列出行号

/[关键字]

查找关键字(按n查找下一个)

  注意:在底行模式下的命令,需要按回车键才执行该命令。

(四)切换模式

  VI编辑器的3种模式实现了不同功能的操作,在某个模式下,需要切换到另一个模式,可以按图示操作。

  实现以上过程的命令:

  过程①:输入vi [文件名],按回车键执行该命令,进入命令模式

  过程②:aios键,实现命令模式——>插入模式

  过程③:Esc键,实现插入模式——>命令模式

  过程④:输入或 /,实现命令模式——>底行模式

  过程⑤:Esc键、连按Esc键2次或删除全部底行内容,实现底行模式 ——>命令模式

  过程⑥:输入:q:q!:wq,按回车键执行该命令,从命令模式退出

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

The end   万有引力+

-

-

-

-

-

Linux操作系统的VI命令的更多相关文章

  1. linux下vi命令大全

    进入vi的命令vi filename :打开或新建文件,并将光标置于第一行首vi +n filename :打开文件,并将光标置于第n行首vi + filename :打开文件,并将光标置于最后一行首 ...

  2. Linux下VI命令详细介绍

       vi 是"Visual Interface" 的简称,它在Linux 上的地位就仿佛Edit 程序在DOS上一样.它可以执行输出.删除.查找.替换.块操作等众多文本操作,而且 ...

  3. (转)linux下vi命令大全

    http://www.cnblogs.com/88999660/articles/1581524.html 进入vi的命令 vi filename :打开或新建文件,并将光标置于第一行首 vi +n ...

  4. linux下vi命令大全[转]

    进入vi的命令 vi filename :打开或新建文件,并将光标置于第一行首 vi +n filename :打开文件,并将光标置于第n行首 vi + filename :打开文件,并将光标置于最后 ...

  5. 介绍linux下vi命令的使用

    功能最强大的编辑器之一——vivi是所有UNIX系统都会提供的屏幕编辑器,它提供了一个视窗设备,通过它可以编辑文件.当然,对UNIX系统略有所知的人,或多或少都觉得vi超级难用,但vi是最基本的编辑器 ...

  6. linux下vi命令的使用

    linux vi命令详解   刚开始学着用linux,对vi命令不是很熟,在网上转接了一篇. vi编辑器是所有Unix及Linux系统下标准的编辑器,它的强大不逊色于任何最新的文本编辑器,这里只是简单 ...

  7. linux下vi命令大全(转载)

    进入vi的命令 vi filename :打开或新建文件,并将光标置于第一行首 vi +n filename :打开文件,并将光标置于第n行首 vi + filename :打开文件,并将光标置于最后 ...

  8. 【linux】linux下vi命令的使用

    进入vi的命令 vi filename :打开或新建文件,并将光标置于第一行首 vi +n filename :打开文件,并将光标置于第n行首 vi + filename :打开文件,并将光标置于最后 ...

  9. linux下vi命令(转)

    进入vi的命令 vi filename :打开或新建文件,并将光标置于第一行首 vi +n filename :打开文件,并将光标置于第n行首 vi + filename :打开文件,并将光标置于最后 ...

随机推荐

  1. 使用Gadget 做usb鼠标键盘设备

    使用Gadget 做usb鼠标键盘设备 感谢TI社区提供的好帮助啊!http://e2e.ti.com/support/arm/sitara_arm/f/791/p/571771/2103409?pi ...

  2. FPGA小例子

    AND ---与门:OR --- 或门:INV --- 非门:NAND --- 与非门:NOR --- 或非门:XOR --- 异或门:XNOR ---同或门:MUX --- 数据选择器: 1.使用一 ...

  3. BIO, NIO 和 Epoll (转载)

    很好的文章 https://eklitzke.org/blocking-io-nonblocking-io-and-epoll

  4. Virtual Memory is deprecated in Redis 2.4

    在读一个源码的讲解的文章时或者读一本关于某个技术的数据集时,可能书籍的讲解是滞后的,就是没有更上最新的代码,那么就要注意了WARNING! Virtual Memory is deprecated i ...

  5. node+webpack+vue-cli

     安装nodejs + 安装webpack + 安装vue-cli+安装脚手架模板+安装依赖+运行 1 安装nodejs 去官网安装node.js( http://www.runoob.com/nod ...

  6. IDEA 201809 Jrebel安装破解

    jrebel介绍: JRebel是一款JAVA虚拟机插件,它使得JAVA程序员能在不进行重部署的情况下,即时看到代码的改变对一个应用程序带来的影响.JRebel使你能即时分别看到代码.类和资源的变化, ...

  7. django2.2/mysql ImproperlyConfigured: mysqlclient 1.3.13 or newer is required; you have 0.9.3

      报错环境 python=3.6.5,django=2.2,PyMySQL=0.9.3 …… django.core.exceptions.ImproperlyConfigured: mysqlcl ...

  8. C博客作业06--结构体&文件

    1.本章学习总结 1.1思维导图 1.2本章学习体会 学习了结构和文件,又是懵懵的课了,我的天啊.结构还好,题目集一出就做了,不是很难,感觉掌握的还可以,不过这只是感觉而已,等到真正来写大作业的时候又 ...

  9. redis 在 php 中的应用(Set篇)

    本文为我阅读了 redis参考手册 之后编写,注意 php_redis 和 redis-cli 的区别(主要是返回值类型和参数用法) Redis的 Set 是 string 类型的无序集合.集合成员是 ...

  10. 遍历table明细是否为空

    //循环遍历 <tbody id="linedata2">,获取每行值对比 $("#linedata2 tr").each(function(i,n ...