IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> Linux学习日记2——vi和vim -> 正文阅读

[开发工具]Linux学习日记2——vi和vim

?学习视频链接

Python基础之Linux基础入门(Ubuntu)_哔哩哔哩_bilibiliicon-default.png?t=M276https://www.bilibili.com/video/BV17x411972F?spm_id_from=333.1007.top_right_bar_window_custom_collection.content.click

目录

一、vi简介

1.1 学习 vi 的目的

1.2 vi 和 vim

二、打开和新建文件

2.1 打开和新建文件

2.2 打开文件并且定位行

2.3 异常处理

三、vi 的三种工作模式

3.1 三种工作模式

3.2 末行模式命令

四、vi 常用命令

4.1 光标移动

4.2 程序员常用的光标移动

4.3 选中文本(可视模式)

4.4 撤销和恢复撤销

4.5 删除文本

4.6 复制、粘贴

4.7 替换

4.8 缩排和重复执行

4.9 查找

4.10 查找并替换

4.11 插入命令

4.12 综合案例1

4.13?综合案例2

五、分屏命令

5.1 末行命令扩展

5.2 分屏命令


一、vi简介

1.1 学习 vi 的目的

1、在工作中,要对服务器上的文件进行简单的修改,可以使用 ssh 远程登录到服务器上,并且使用 vi 进行快速的编辑即可

2、常见需要修改的文件包括:

(1) 源程序

(2) 配置文件,例如ssh的配置文件~/. ssh/config

3、在没有图形界面的环境下,要编辑文件, vi是最佳选择!

4、每一个要使用Linux的程序员,都应该或多或少的学习一些vi的常用命令

1.2 vi 和 vim

在很多Linux 发行版中,直接把vi做成vim的软连接

1、vi

(1) vi 是 Visual interface 的简称,是 Linux 中最经典的文本编辑器

(2) vi 的核心设计思想一让程序员的手指始终保持在键盘的核心区域, 就能完成所有的编辑操作

2、vi的特点:

(1) 没有图形界面的功能强大的编辑器

(2) 只能是编辑文本内容,不能对字体、段落进行排版

(3) 不支持鼠标操作

(4) 没有菜单

(5) 只有命令

3、vi 编辑器在系统管理、服务器管理编辑文件时,其功能永远不是图形界面的编辑器能比拟的

4、vim

vim = vi improved

vim 是从 vi 发展出来的一个文本编辑器,支持代码补全、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用,被称为编辑器之神

二、打开和新建文件

2.1 打开和新建文件

1、简介:

在终端中输入vi在后面跟上文件名即可

$ vi 文件名

如果文件已经存在,会直接打开该文件

如果文件不存在,会新建一个文件

2、操作流程:

?

按 i 插入内容?

按 Esc 再按 : 输入 w 保存文

文件就已经生成了:?

3、其中有一些简单的指令:

再这个页面把光标移动到相应的行前面

?输入 y + y + 19 + p 复制 19 份

u 往后撤回

ctrl + r 往前撤回

2.2 打开文件并且定位行

1、简介:

在日常工作中,有可能会遇到打开一个文件,并定位到指定行的情况

例如:在开发时,知道某一行代码有错误,可以快速定位到出错代码的位置

这个时候,可以使用以下命令打开文件

$ vi 文件名 +行数

提示:如果只带上 + 而不指定行号,会直接定位到文件末尾

2、操作流程

wq 保存退出 vim

?只是用 + 号

+ 和 数字配合

?

2.3 异常处理

1、简介

如果 vi 异常退出,在磁盘上可能会保存有交换文件

下次再使用 vi 编辑该文件时,会看到以下屏幕信息,按下字母 d 可以删除交换文件即可

提示:按下键盘时,注意关闭输入法

2、操作流程

写好了文件,处于插入的状态,直接退出终端

?

?重新打开终端,查看到有一个 swp 的文件

?打开文件

?出现这个页面

按 D 删除交换文件,后面桌面就没有 .swp 文件了,前面在代码中没有保存的部分也丢失了。

三、vi 的三种工作模式

3.1 三种工作模式

1、命令模式

打开文件首先进入命令模式,是使用 vi 的入口

通过命令对文件进行常规的编辑操作,例如:定位、翻页、复制、粘贴、删除....

在其他图形编辑器下,通过快捷键或者鼠标实现的操作,都在命令模式下实现

2、末行模式——执行保存、退出等操作

要退出 vi 返回到控制台,需要在末行模式下输入命令

末行模式是 vi 的出口

3、编辑模式——正常的编辑文字

3.2 末行模式命令

命令英文功能
wwrite保存
qquit退出,如果没有保存,不允许退出
q!quit强行退出,不保存退出
wqwrite&quit保存并退出
x保存并退出

四、vi 常用命令

4.1 光标移动

1、上下左右

命令功能手指
h向左食指
j向下食指
k向上中指
l向右无名指

2、行内移动

命令英文功能
wword向后移动一个单词
bback向前移动一个单词
0行首
^行首,第一个不是空白字符的位置
$行尾

3、行数移动

命令英文功能
gggo文件顶部
Ggo文件末尾
数字gggo移动到 数字 对应行数
数字Ggo移动到 数字 对应行数
:数字移动到 数字 对应行数

4、屏幕移动

命令英文功能
Ctrl + bback向上翻页
Ctrl + fforward向下翻页
HHead屏幕顶部
MMiddle屏幕中间
LLow屏幕底部

4.2 程序员常用的光标移动

1、段落移动

vi中使用空行来区分段落

在程序开发时,通常一段功能相关的代码会写在一起——之间没有空

命令功能
{上一段
}下一段

2、括号切换

在程序世界中,()、 []、{} 使用频率很高,而且都是成对出现的

命令功能
%括号匹配及切换

4.3 选中文本(可视模式)

学习复制命令前,应该先学会怎么样选中要复制的代码

在 vi 中要选择文本,需要先使用 Visual 命令切换到可视模式

vi 中提供了三种可视模式,可以方便程序员选择选中文本的方式

按ESC可以放弃选中,返回到命令模式

命令模式功能
v可视模式从光标位置开始按照正常模式选择文本
V可视行模式选中光标经过的完整行
Ctrl + v可视快模式垂直方向选中文本

可视模式下,可以和移动命令连用,例如:ggVG 能够选中所有内容(和移动光标配合使用)

4.4 撤销和恢复撤销

在学习编辑命令之前,先要知道怎样撤销之前一次错误的编辑动作

命令英文功能
uundo撤销上次命令
CTRL + rredo恢复撤销的命令

4.5 删除文本

命令英文功能
xcut删除光标所在字符,或者选中文字
d(移动命令)delete删除移动命令对应的内容
dddelete

删除光标所在行,可以ndd复制多行

Ddelete删除至行尾

1、提示:如果使用可视模式已经选中了一段文本,那么无论使用 d 还是 x,都可以删除选中文本

2、组合命令:

5 + x:删除光标后5个字符

dw? 从光标位置删除到单词末尾

d0? 从光标位置删除到一行的起始位置

d}? 从光标位置删除到段位结尾

ndd? 从光标位置向下连续删除 n 行

d 代码行 G? 从光标所在行 删除到 指定代码行 之间的所有代码

d'a? 从光标所在行 删除到 标记 a 之间的所有代码

4.6 复制、粘贴

1、vi 中提供有一个被复制文本的缓冲区

(1) 复制 命令会将选中的文字保存在缓冲区

(2) 删除 命令删除的文字会被保存在缓冲区

(3) 在需要的位置,使用 粘贴 命令可以将缓冲区的文字插入到光标所在位置

命令英文功能
y(移动命令)copy复制
yycopy复制一行,可以 n yy 复制多行
ppaste

粘贴

2、实际操作:

数字 + yy:复制从光标开始后的多少行,跳转行(15 + G),然后 p 粘贴

y + }:复制段落,跳转行,然后 p 粘贴

3、提示:

命令 d、x 类似于图形界面的剪切操作 —— CTRL + x

命令 y 类似于图形界面的复制操作 —— CTRL + C

命令 p 类似于图形界面的粘贴操作 —— CTRL + V

vi 中的文本缓冲区同样只有一个,如果后续做过复制、剪切操作,之前缓冲区中的内容会被替换

4、注意:

vi 中的文本缓冲区和系统的剪贴板不是同一个

所以在其他软件中使用 CTRL + C 复制的内容,不能在 vi 中通过 p?命令粘贴

可以在编辑模式下使用鼠标右键粘贴

4.7 替换

命令英文功能工作模式
rreplace替换当前字符命令模式
Rreplace替换当前行光标后的字符替换模式

R 命令可以进入替换模式,替换完成后,按下 ESC 可以回到命令模式

替换命令 的作用就是不用进入 编辑模式,对文件进行 轻量级的修改

4.8 缩排和重复执行

命令功能
>>向右增加缩进
<<向左减少缩进
.重复上次命令

1、缩排命令在开发程序时,统增加代码的缩进比较有用!

(1) 一次性在选中代码前增加4个空格,就叫做增加缩进

(2) 一次性在选中代码前删除4个空格,就叫做减少缩进

2、在可视模式下,缩排命令只需要使用一个 > 或者 <

(1) 在程序中,缩进通常用来表示代码的归属关系

(2) 前面空格越少,代码的级别越高

(3) 前面空格越多,代码的级别越低

3、案例

4.9 查找

1、常规查找

命令功能
/str查找 str

(1) 查找到指定内容之后,使用 Next 查找下一个出现的位置:

n:查找下一个

N:查找上一个

(2) 如果不想看到高亮显示,可以随便查找一个文件中不存在的内容即可

(3) 案例:

2、单词快速匹配

命令功能
*向后查找当前光标所在单词
#向前查找当前光标所在的单词

(1) 在开发中,通过单词快速匹配,可以快速看到这个单词在其他什么位置使用过

(2)? 案例:

4.10 查找并替换

1、在 vi 中查找和替换命令需要在末行模式下执行

2、记忆命令格式:

:%s///g

3、全局替换

一次性替换文件中的所有出现的旧文本

命令格式如下:

:%s/旧文本/新文本/g

4、可视区域替换

先选中要替换文字的范围

命令格式如下:

:s/旧文本/新文本/g

5、确认替换

如果把末尾的 g 改成 gc 在替换的时候,会有提示!推荐使用

:%s/旧文本/新文本/gc

y —— yes —— 替换
n —— no —— 不替换
a —— all —— 替换所有
q —— quit —— 退出替换
l —— last —— 最后一个,并把光标移动到行首
^E —— 向下滚屏
^Y —— 向上滚屏

4.11 插入命令

在 vi 中除了常用的 i 进入编辑模式外,还提供了以下命令同样可以进入编辑模式:

命令英文功能常用
iinsert在当前字符前插入文本常用
Iinsert在行首插入文本较常用
aappend在当前字符后添加文本
Aappend在行末添加文本较常用
o在当前行后面插入一空行常用
O在当前行前面插入一空行常用

4.12 综合案例1

1、要求:

(1) 在开发中,可能会遇到连续输入 N 个同样的字符

在 python 中有简单的方法,但是在其他语言中通常需要自己输入

(2) 例如:********** 连续10个星号

2、要实现这个效果可以在命令模式下:

(1) 输入 10,表示要重复 10 次

(2) 输入 i 进入编辑模式

(3) 输入 * 也就是重复的文字

(4) 按下 ESC 返回到命令模式,返回之后 vi 就会把第 2、3 两步的操作重复 10 次

3、提示:

正常开发时,在进入编辑模式之前,不要按数字

4、代码:

yy5p 增加 5 个空行

?输入数字 10,按 i 进入编辑模式,输入一个 *,按 ESC 退出编辑模式

按下一下 . 再次增加

4.13?综合案例2

1、要求

利用可视块给多行代码增加注释

在开发中,可能会遇到一次性给多行代码增加注释的情况

在 Python 中,要给代码增加注释,可以在代码前增加一个 #

2、要实现这个效果可以在命令模式下

(1) 移动到要添加注释的第1行代码,按个来到行首

(2) 按 CTRL + v 进入可视块模式

(3) 使用 i 向下连续选中要添加的代码行

(4) 输入 I 进入编辑模式,并在行首插入,注意:一定要使用I

(5) 输入 # 也就是注释符号

(6) 按下 ESC 返回到命令模式,返回之后 vi 会在之前选中的每一行代码前插入 #

3、代码

0 跳到行首,按 CTRL + v 进入可视化模式

?输入 I 进入编辑模式,并且输入 # 空格

?按 ESC 返回命令模式

五、分屏命令

输入 vi 的高级命令 —— 可以同时编辑和查看多个文件

5.1 末行命令扩展

末行命令主要是针对文件进行操作的:保存、退出、保存&退出、搜索 & 替换、另存、新建、浏览文件?

命令英文功能
:e .edit会打开内置的文件浏览器,浏览要当前目录下的文件
:n 文件名new?新建文件
:w 文件名write另存并未,但是仍然编辑当前文件,并不会切换文件

提示:切换文件之前,必须保证当前这个文件已经被保存

1、:e .

?按回车进入编辑:

?

使用下面写法也能跳转

2、:n 文件名

?

?

3、:w 文件名

另存为一个新的文件,可以用于阶段性备份

5.2 分屏命令

1、使用分屏命令,可以同时编辑和查看多个文件

命令英文功能
:sp [文件名]split横向增加分屏
:vsp [文件名]vertical split纵向增加分屏

2、切换分屏窗口

分屏窗口都是基于 Ctrl + w?这个快捷键的,w 对应的英文单词时 window

命令英文功能
wwindow切换到下一个窗口
rreverse互换窗口
cclose关闭当前窗口,但是不能关闭最后一个窗口
qquit退出当前窗口,如果时最后一个窗口,则关闭 vi
oother关闭其他窗口

按 ctrl + w 再按一下 w

显示不同的内容:

?

?

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2022-03-15 22:47:55  更:2022-03-15 22:48:03 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 6:30:00-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码