vi/vim 编辑器 --基本命令

1 vi/vim编辑器介绍

vi 是visual interface 的简称,是Linux中最经典的文本编辑器

vim是vi的加强版。兼容了vi的所有指令,不仅能编辑文本,而且具有shell程序编辑的功能,可以通过不同颜色的字体辨别语法的正确性,极大方便了程序的设计和编辑性。

2 vi/vim编辑器的三种工作模式

命令模式(Command mode)

命令模式下,所敲的按键编辑器都理解为命令,以命令驱动不同的功能。

此模式下,不能自由进行文本编辑。

输入模式(Insert mode)

也就是所谓的编辑模式、插入模式。

此模式下,可以对文件内容进行自由编辑。

底线命令模式(Last line mode)

以:开始,通常用于文件的保存、退出。

2.1 命令模式

如果需要通过vi\vim编辑器编辑文件,输入如下命令

vi 文件路径

vim 文件路径 一般直接使用vim,因为vim兼容vi的所有功能

注意:1)如果文件路径表示的文件不存在,那么此命令会用于编辑新文件。

2)如果文件路径表示的文件存在,那么命令用于编辑已有文件。

示例

vim test.txt 若文件不存在,会自动创建新文件并进入命令模式

再点击 i ,进入输入模式

对内容进行编辑,输入this a test

点击Esc,退出输入模式,进入命令模式

在命令模式下,输入:进入底线命令模式

在底线命令模式下(即在 : 基础上),再输入wq ,回车进行保存并退出

命令模式快捷键

以下为在命令模式下,各种进入输入模式的快捷键

|------|----------|--------------------|
| 模式 | 命令 | 描述 |
| 命令模式 | i | 在当前光标位置进入输入模式 |
| 命令模式 | a | 在当前光标位置之后进入输入模式 |
| 命令模式 | I (大写i ) | 在当前行的开头,进入 输入模式 |
| 命令模式 | A | 在当前行的结尾,进入输入模式 |
| 命令模式 | o | 在当前光标下一行进入输入模式 |
| 命令模式 | O | 在当前光标上一行进入输入模式 |
| 输入模式 | Esc | 任何情况下点击Esc都能回到命令模式 |

以下还有一些命令模式下的快捷键

|----------------|------------------|--------|------------------|
| 命令 | 描述 | 命令 | 描述 |
| 键盘上、键盘k | 向上移动光标 | dd | 删除光标所在行的内容 |
| 键盘下、键盘j | 向下移动光标 | ndd | n是数字,删除当前光标向下n行 |
| 键盘左、键盘h | 向左移动光标 | yy | 复制当前行 |
| 键盘右、键盘L | 向右移动光标 | nyy | n是数字,复制当前行和下面的n行 |
| 0 | 移动光标到当前行的开头 | p | 粘贴复制的内容 |
| | 移动光标到当前行的结尾 | u | 撤销修改 | | pageup(PgUp) | 向上翻页 | ctrl+r | 方向撤销修改 | | pagedown(PdDn) | 向下翻页 | gg | 跳到首行 | | / | 进入搜索模式 | G | 跳到行尾 | | n | 向下继续搜索 | dG | 从当前行开始,向下全部删除 | | CTRL+n | 向上继续搜索 | dgg | 从当前行开始,向上全部删除 | | d | 从当前光标开始,删除到本行的结尾 | d0 | 从当前光标开始,删除本行的开头 |

2.2 底线命令模式

注意:点击Esc可退回命令模式。

以下为底线命令模式下的一些常用命令:

|--------------|--------|
| :wq | 保存并退出 |
| :q | 仅退出 |
| :q! | 强制退出 |
| :w | 仅保存 |
| :set nu | 显示行号 |
| :set nonu | 取消行号显示 |
| :set paste | 设置粘贴模式 |
| :set nopaste | 取消粘贴模式 |

相关推荐
阿里云云原生2 分钟前
如何使用通义灵码玩转Linux - AI编程助手提升效率
linux
Peter_chq3 分钟前
selenium快速入门
linux·开发语言·chrome·python·selenium
Dklau-c32 分钟前
『Linux_网络』 第一章 网络基础概念
linux·服务器·网络
Pseudo…32 分钟前
linux shell编程规范与变量(一)
linux·运维·服务器
xhzth7091138 分钟前
kali安装 老版本的frida
linux
Z字小熊饼干爱吃保安1 小时前
nginx介绍和几种安装方法
linux·运维·nginx·云计算
s_little_monster1 小时前
【Linux】线程控制函数
linux·运维·服务器·经验分享·笔记·学习·学习方法
kfepiza1 小时前
硬盘分区格式之GPT(GUID Partition Table)笔记250406
linux·windows·笔记·gpt
姝孟2 小时前
Linux学习笔记 1
linux·笔记·学习