vi编辑器的使用

vi编辑器

vi是一个命令,也是一个命令行下的编辑器,它有如下功能:

a. 打开文件、新建文件、保存文件

b. 光标移动

c. 文本编辑

d. (多行间|多列间)复制、粘贴、删除

e. 查找和替换

很多人不习惯在命令行下编辑文件,实际开发中也不会经常在命令行下编辑文件。但是在Linux系统中对文件做些简单修改时,使用vi命令的效率非常高。并且在很多时候,比如现场调试时,并没有GUI形式的编辑工具,vi是唯一选择。

1. 模式

vi编辑器有三种模式,各个模式侧重点不一样:

a. 一般模式(光标移动、复制、粘贴、删除)

b. 编辑模式(编辑文本)

c. 命令行模式(查找和替换)

vi编辑器的三种模式间切换如下图所示

注意:

a. 当不知道处于何种模式时,按ESC键返回到一般模式。

b. wq(write quit)

c. i(insert)

2. 文件的打开、新建、保存

打开文件、新建文件,命令如下(如果文件存在则打开文件,否则新建文件并打开):

$ vi  文件名

修改结束之后,输入“:” 进入命令行模式,再输入“wq”保存退出:

:wq    保存并退出文件

注意:如果文件不存在,也需要输入“:wq”才可以保存新文件,否则不会新建文件。

在编辑完成时,返回一般模式,方法如下:

a. 输入“:w”则保存文件,如果已经保存文件,输入“:q”则退出文件

b. 直接输入“:wq”保存并退出

c. 如果不想保存被修改的内容,则输入“:q!”强制退出

这些命令列表如下:

命令

描述

x

保存当前文档并且退出。

q

退出。

w

保存文档 。

q!

退出 vi/vim,不保存文档。

 

3. 编辑文件

打开文件后,默认处于“一般模式”,这时可以输入以下字母:

指令

描述

i

在当前光标所在字符的前面,转为编辑模式。

I

在当前光标所在行的行首转换为编辑模式。

a

在当前光标所在字符的后面,转为编辑模式。

A

在光标所在行的行尾,转换为编辑模式。

o

在当前光标所在行的下方,新建一行,并转为编辑模式。

O

在当前光标所在行的上方,新建一行,并转为编辑模式。

 4. 快速移动光标

在一般模式下,可以使用下面快捷键移动光标或是翻页:

移动光标

h (或左方向键)

光标左移一个字符。

l (或右方向键)

光标右移一个字符。

j (或下方向键)

光标下移一行。

k (或上方向键)

光标上移一行。

nG或ngg

光标移动到第 n行首。

n+

光标下移 n行。

n-

光标上移 n行。

屏幕翻滚

Ctrl + f

屏幕向下翻一页,相当于下一页。

Ctrl + b

屏幕向上翻一页,相当于上一页。

 

详细介绍如下:

1)快速的定位到某一行:文件头、文件尾、指定某一行

ngg  //光标移至第n行的行首(n为数字,想要跳转的行),

1gg  //就跳到第一行的行首,就是文件头

2gg  //就跳到第二行的行首

G    //转至文件结尾

2)在某一行如何快速定位到某一列:

0   //(数字零)光标移至当前行行首

$   //光标移至当前行行末

fx  //搜索当前行中下一个出现字母x的地方

注意:当你不知道vi当前处于何种模式时,使用esc键返回到一般模式。

 

5. 文本复制、粘贴、删除、撤销

在一般模式下,可以执行以下命令。

复制、删除和粘贴

cc

删除整行,并且修改整行内容。

dd

删除该行,不提供修改功能。

ndd

删除当前行向下 n行。

x

删除光标所在的字符。

X

删除光标前面的一个字符。

nyy

复制当前行及其下面 n行。

p

粘贴最近复制的内容。

s

删除光标所在字符。

r

替换光标处字符。

 

1) 复制

yy   //复制当前行(y:yank(复制))  

nyy  //复制当前行及其后的n-1行(n是数字)

2) 粘贴

p  //粘贴(p:paste)

3) 删除

dd   //删除光标所在行(d:delete)

ndd  //删除当前行及其后的n-1行(n是数字)

x    //删除光标所在位置的字符 

4) 撤销

u  //撤销上一步操作

 

6. 文本查找和替换

在一般模式下,可以执行以下命令。

1) 查找

/pattern  //从光标开始处向文件尾搜索pattern,后按下n或N

注意

n         在同一个方向重复上一次搜索命令

N         在反方向重复上一次搜索命令

注意

在/pattern之前先跳到第一行则进行全文件搜索。

2) 替换

:%s/p1/p2/g   //将文件中所有的p1均用p2替换

:%s/p1/p2/gc  //替换时需要确认

“s“ 全称:substitute替换;

“g“ 全称:global全局;

“c“ 全称:confirm,确认

参考https://www.runoob.com/linux/linux-command-manual.html

 



posted @   咸阳梁硕  阅读(1671)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App
· 张高兴的大模型开发实战:(一)使用 Selenium 进行网页爬虫
点击右上角即可分享
微信分享提示