首页 > 系统相关 >无涯教程-Linux - vi编辑

无涯教程-Linux - vi编辑

时间:2023-11-26 12:31:37浏览次数:44  
标签:文件 set 字符 vi 无涯 命令 Linux 光标

在本章中,我们将了解vim编辑器在Unix中的工作方式。

启动vi编辑器

下表列出了使用vi编辑器的基本命令-

Sr.No. Command & 描述
1

vi filename

如果尚不存在,则创建一个新文件,否则打开一个现有文件。

2

vi -R filename

以只读模式打开现有文件。

3

view filename

以只读模式打开现有文件。

以下是创建新文件 testfile 的示例(如果当前工作目录中尚不存在该文件)-

$vi testfile

上面的命令将生成以下输出-

|
~
~
~
~
~
~
~
~
~
~
~
~
"testfile" [New File]    

您会在光标之后的每一行上看到一个波浪号(〜),代字号代表未使用的行。

操作模式

使用vi编辑器时,我们通常会遇到以下两种模式-

  • 命令模式(Command Mode) - 通过此模式,您可以执行管理任务,如保存文件,执行命令,移动光标以及粘贴行或单词,如以及查找和替换。

  • 写入模式(Insert Mode) - 使用此模式可以将文本写入文件中。

vi始终以命令模式启动,要输入文本,您必须处于写入模式,只需键入 i 即可。要退出写入模式,请按 Esc 键,这将使您返回命令模式。

退出 vi

退出vi的命令是 :q 。在命令模式下,键入冒号(:)和'q',然后返回。如果您的文件已被修改,编辑器将警告您,并且不允许您退出。要忽略此消息,不保存而退出vi的命令是 :q!。

保存编辑器内容的命令是:w 。您可以将上面的命令与quit命令结合使用,或者使用 :wq 并返回。

保存更改并退出vi 的最简单方法是使用ZZ命令,在命令模式下,键入 ZZ , ZZ 命令的工作方式与:wq 命令相同。

在文件内移动

要在文件内四处移动而又不影响文本,您必须处于命令模式(按两次Esc键)。下表列出了一些可用于一次移动一个字符的命令-

Sr.No. Command & 描述
1

k

将光标向上移动一行

2

j

将光标向下移动一行

3

h

将光标向左移动一个字符位置

4

l

将光标移到右边的一个字符位置

在文件内移动时需要考虑以下几点-

  • vi 区分大小写,使用命令时需要注意大写。

  • vi 中的大多数命令都可以以要执行操作的次数开头。如, 2j 将光标向下移动两行。

在vi中的文件中还有许多其他移动方式。请记住,您必须处于命令模式(按两次Esc )。下表列出了一些在文件中移动的命令-

Sr.No. Command & 描述
1

0 or |;

将光标置于行首

2

$

将光标置于行尾

3

w

将光标定位到下一个单词

4

b

将光标定位到上一个单词

5

(

将光标定位到当前句子的开头

6

)

将光标定位到下一个句子的开头

7

E

移至空白分隔字词的末尾

8

{

向后移一段

9

}

向前移动段落

10

[[

向后移动部分

11

]]

向前移动部分

12

n |

移至当前行的 n 列

13

1G

移到文件的第一行

14

G

移到文件的最后一行

15

nG

移到文件的 n th

16

:n

移到文件的 n th

17

fc

前进到 c

18

Fc

移回到 c

19

H

移到屏幕顶部

20

nH

从屏幕顶部移至第 n th

21

M

移到屏幕中间

22

L

移至屏幕底部

23

nL

从屏幕底部移至第 n th

24

:x

冒号后跟数字将光标定位在以 x 表示的行号上

控制指令

以下命令可与Control Key一起使用以执行下表中给出的功能-

Sr.No. Command & 描述
1

CTRL+d

向前移动1/2屏幕

2

CTRL+f

全屏前进一屏

3

CTRL+u

向后移动1/2屏幕

4

CTRL+b

向后移动一整屏

5

CTRL+e

将屏幕上移一行

6

CTRL+y

将屏幕向下移动一行

7

CTRL+u

将屏幕上移1/2页

8

CTRL+d

将屏幕下移1/2页

9

CTRL+b

将屏幕向上移动一页

10

CTRL+f

将屏幕向下移动一页

11

CTRL+I

重画屏幕

编辑文件

要编辑文件,您需要处于插入模式。有多种方法可以从命令模式进入插入模式-

Sr.No. Command & 描述
1

i

在当前光标位置之前插入文本

2

l

在当前行的开头插入文本

3

a

在当前光标位置之后插入文本

4

A

在当前行的末尾插入文本

5

o

在光标位置下方为文本输入创建新行

6

O

在光标位置上方为文本输入创建新行

删除字符

这是重要命令列表,可用于删除打开文件中的字符和行-

Sr.No. Command & 描述
1

x

删除光标位置下的字符

2

X

删除光标位置之前的字符

3

dw

从当前光标位置删除到下一个单词

4

d ^

从当前光标位置删除到行首

5

d $

从当前光标位置删除到行尾

6

D

从光标位置删除到当前行的结尾

7

dd

删除光标所在的行

如上所述,vi中的大多数命令都可以以您希望操作发生的次数为开头。如, 2x 删除光标所在位置的两个字符,而 2dd 删除光标所在的两行。

变更指令

您还可以更改vi中的字符,单词或行而不删除它们。这是相关的命令-

Sr.No. Command & 描述
1

cc

删除行的内容,使您处于插入模式。

2

cw

将光标所在的单词从光标更改为单词的小写字母w末端。

3

r

替换光标下的字符。输入替换后,vi返回命令模式。

4

R

从当前光标下方的字符开始覆盖多个字符。您必须使用 Esc 停止覆盖。

5

s

用您键入的字符替换当前字符。之后,您将处于插入模式。

6

S

删除光标所在的行并将其替换为新文本。 输入新文本后,vi保持在插入模式。

复制和粘贴命令

您可以从一个地方复制行或单词,然后可以使用以下命令将它们粘贴到另一个地方:

Sr.No. Command & 描述
1

yy

复制当前行。

2

yw

从小写字母w光标所在的字符中复制当前单词,直到该单词的末尾。

3

p

将复制的文本放在光标之后。

4

P

将选中的文本放在光标之前。

高级命令

有一些高级命令可以简化日常编辑,并可以更有效地使用vi-

Sr.No. Command & 描述
1

J

将当前行与下一行连接。数量为j的命令连接了许多行。

2

<<

将当前行向左移动一个宽度。

3

>>

将当前行向右移动一个移位宽度。

4

切换光标下字符的大小写。

5

^ G

同时按Ctrl和G键以显示当前文件名和状态。

6

U

将当前行恢复到光标进入该行之前的状态。

7

u

这有助于撤消在文件中所做的最后更改。再次键入" u"将重新进行更改。

8

J

将当前行与下一行连接。计数连接那么多行。

9

:f

显示文件中当前位置的百分比(%)和文件名(文件总数)。

10

:f filename

将当前文件重命名为filename。

11

:w filename

写入文件文件名。

12

:e filename

用文件名打开另一个文件。

13

:cd filename

将当前工作目录更改为dirname。

14

:e #

在两个打开的文件之间切换。

15

:n

如果使用vi打开多个文件,请使用:n转到系列中的下一个文件。

16

:p

如果使用vi打开多个文件,请使用:p转到系列中的上一个文件。

17

:N

如果使用vi打开多个文件,请使用:N转到系列中的上一个文件。

18

:r filename

读取文件并将其插入当前行之后。

19

:nr filename

读取文件并将其插入到 n 行之后。

单词和字符搜索

vi编辑器有两种搜索: string 和 character 。对于字符串搜索,使用/和?命令。当您启动这些命令时,刚刚键入的命令将显示在屏幕的最后一行,您在其中键入要查找的特定字符串。

这两个命令仅在搜索发生的方向上有所不同-

  • /命令在文件中向前(向下)搜索。

  • ? 命令在文件中向后(向上)搜索。

n 和 N 命令分别在相同或相反的方向上重复前一个搜索命令。有些字符有特殊含义。这些字符前面必须带有反斜杠(\),以将其包含在搜索表达式中。

Sr.No. Character &描述
1

^

在行的开头进行搜索(在搜索表达式的开头使用)。

2

.

匹配一个字符。

3

*

匹配零个或多个前一个字符。

4

$

行尾(在搜索表达式的末尾使用)。

5

[

启动一组匹配或不匹配的表达式。

6

<

将其放在用反斜杠转义的表达式中,以查找单词的结尾或开头。

7

>

这有助于查看上面的“ <”字符描述。

字符搜索在一行内搜索,以找到在命令后输入的字符。 f 和 F 命令仅在当前行上搜索字符。 f 向前搜索, F 向后搜索,光标移至找到的字符的位置。

设定指令

您可以使用以下:set 命令更改vi屏幕的外观。进入命令模式后,键入:set ,然后键入以下任何命令。

Sr.No. Command & 描述
1

:set ic

搜索时忽略大小写

2

:set ai

设置自动缩进

3

:set noai

取消自动缩进

4

:set nu

在左侧显示行号的行

5

:set sw

设置软件制表符的宽度。如,您可以使用以下命令将移位宽度设置为4 — :set sw=4

6

:set ws

如果设置了 wrapscan ,但在文件底部找不到该单词,它将尝试在开头搜索

7

:set wm

如果此选项的值大于零,则编辑器将自动"自动换行"。如,要将包装边距设置为两个字符,请输入以下内容::set wm=2

8

:set ro

将文件类型更改为"只读"

9

:set term

打印终端类型

10

:set bf

丢弃输入中的控制字符

运行命令

vi可以从编辑器中运行命令。要运行命令,只需进入命令模式并键入 :! 命令。

如,如果要在尝试使用该文件名保存文件之前检查文件是否存在,可以键入:!。

替换文字

替换命令(:s/)使您可以快速替换文件中的单词或单词组。以下是替换文本的语法-

:s/search/replace/g

g 代表全局。该命令的输出是更改了光标行上的所有匹配项。

参考链接

https://www.learnfk.com/linux/linux-vi-editor.html

标签:文件,set,字符,vi,无涯,命令,Linux,光标
From: https://blog.51cto.com/u_14033984/8569843

相关文章

  • Learning Graph Filters for Spectral GNNs via Newton Interpolation
    目录概符号说明MotivationNewtonNet代码XuJ.,DaiE.,LuoD>,ZhangX.andWangS.Learninggraphfiltersforspectralgnnsvianewtoninterpolation.2023.概令谱图网络的多项式系数按照牛顿插值的方式训练.符号说明\(\mathcal{V}=\{v_1,\ldots,v_N\}\),nod......
  • Linux命令(132)之sshpass
    linux命令之sshpass1.sshpass介绍linux命令sshpass是用来实现非交换的ssh操作2.sshpass用法sshpass[参数]commandsshpass参数参数说明-p指定明文密码3.实例3.1.sshpass安装默认系统中没有sshpass命令,需要安装sshpassrpm包命令:yuminstallsshpass[root@logstash~]#yuminstal......
  • 无涯教程-Linux - 通讯管理
    在本章中,我们将详细讨论Unix中的网络通信程序,在分布式环境中,您需要与远程用户进行通信,并且还需要访问远程Unix计算机。ping实用程序ping命令将回显请求发送到网络上可用的主机。使用此命令,您可以检查您的远程主机是否响应良好。以下是使用ping命令的简单语法-$pinghostna......
  • Spring MVC学习随笔-第一个Spring MVC程序(父子项目结构、Tomcat配置、ViewResolver)
    学习视频:孙哥说SpringMVC:结合Thymeleaf,重塑你的MVC世界!|前所未有的Web开发探索之旅第二章、第一个SpringMVC程序的开发2.1开发版本JDK1.8+Maven3.6+IDEA2021+SpringFramework5.1.4Tomcat8.5.29MySQL5.7.18按照父子项目的结构,管理和创建项目,创建一个空Project作为父项......
  • python 解密linux密码
    Python解密Linux密码简介在Linux系统中,用户的密码通常被加密存储在/etc/shadow文件中,以确保用户密码的安全性。这种加密方式称为密码哈希算法,它将用户密码转换为一串不可逆的密文。然而,有时候我们需要解密这些密码,例如在恢复用户密码或进行密码破解时。本文将介绍如何使用Python......
  • 无涯教程-Linux - 环境变量
    在本章中,我们将详细讨论Unix环境。Unix的一个重要概念是environment,它是由环境变量定义的。变量是我们为其分配值的字符串。分配的值可以是数字,文本,文件名,设备或任何其他类型的数据。如,首先我们设置一个变量TEST,然后使用echo命令访问它的值-$TEST="UnixProgramming"$ec......
  • 数据分享|Eviews用ARIMA、指数曲线趋势模型对中国进出口总额时间序列预测分析
    全文链接:https://tecdat.cn/?p=34361原文出处:拓端数据部落公众号研究的背景及意义众自20世纪80年代至今,随着改革开放的深入以及中国最终加入WTO,我国的对外贸易实现了跨越式的发展,中国已经成为世界第一大出口国和第二大进口国,中国经济对世界经济做出了重大贡献。与此同时,中国经......
  • 学习Linux用户管理与文件权限
    在Linux操作系统中,用户管理和文件权限是系统安全和管理的核心。本文将深入探讨Linux用户管理和文件权限的方方面面,帮助读者更好地理解和有效地运用这些关键概念。用户管理Linux用户管理是系统管理员不可或缺的一部分,它涉及到用户的创建、权限分配、密码管理以及安全性方面的考虑......
  • Linux-No.4
    一、进程管理了解进程的基本概念掌握查看进程的基本方法熟悉信号控制进程了解进程优先级原理 1.每个进程都有唯一的进程标识PID,一个PID只能标识一个进程2.进程状态是指程序执行过程中的变化。进程状态随着程序的执行和外界条件的变化而转换,一般分为三类:就绪态、运行态、阻......
  • vim编辑器
         ......