IMX6ULL开发板学习-05(Linux之Vi/Vim编辑器的使用)

1. Vim 的三种核心模式

Vim 不同于普通编辑器,它基于模式:

  • 正常模式(Normal Mode) :启动后的默认模式。在此模式下,按键执行命令(如移动光标、删除、复制),不能直接输入文字。

  • 插入模式(Insert Mode) :用于输入文本。按 i 进入,按 Esc 返回正常模式。

  • 可视模式(Visual Mode) :用于选择文本块。按 v(字符选择)、V(行选择)或 Ctrl+v(块选择)进入,结合移动键选取,然后可进行复制、删除等操作。

  • 命令行模式(Command-Line Mode) :在正常模式下按 : 进入,底部出现冒号,可输入命令(如保存、退出、查找替换)。

记住:绝大多数时间你应该停留在正常模式,仅在输入文字时切换到插入模式。

2. 启动与退出

2.1 打开文件

bash 复制代码
vim filename        # 打开或新建文件
vim +10 filename    # 打开文件并定位到第10行
vim +/pattern file  # 打开文件并定位到第一个匹配 pattern 的行
vim file1 file2     # 同时打开多个文件(:n 切换)

2.2 保存与退出(在正常模式输入 : 命令)

  • :w 保存文件

  • :w filename 另存为 filename

  • :q 退出(文件未修改时)

  • :q! 强制退出,不保存修改

  • :wq 或 :x 保存并退出

  • ZZ 保存并退出(相当于 :wq,在正常模式直接按大写 ZZ)

3. 移动光标(正常模式下)

3.1 基本移动

  • h 左移一格

  • j 下移一行

  • k 上移一行

  • l 右移一格

3.2 单词移动

  • w 跳到下一个单词开头

  • b 跳到当前单词/上一个单词开头

  • e 跳到当前单词/下一个单词结尾

3.3 行内移动

  • 0 跳至行首(绝对行首)

  • ^ 跳至行首第一个非空白字符

  • $ 跳至行尾

3.4 页面移动

  • Ctrl+f 向下翻页(forward)

  • Ctrl+b 向上翻页(backward)

  • Ctrl+d 向下半页

  • Ctrl+u 向上半页

  • H 跳至屏幕顶端(Home)

  • M 跳至屏幕中间

  • L 跳至屏幕底端(Last)

3.5 文件内跳转

  • gg 跳至文件第一行

  • G 跳至文件最后一行

  • :n 跳至第 n 行(如 :100 跳到 100 行)

  • Ctrl+o 跳回上一个位置(后退)

  • Ctrl+i 跳向前一个位置(前进)


4. 插入文本(进入插入模式)

  • i 在光标前插入

  • I 在当前行首插入

  • a 在光标后插入(append)

  • A 在当前行尾插入

  • o 在当前行下方新开一行插入

  • O 在当前行上方新开一行插入

  • s 删除光标处字符并进入插入

  • S 删除整行并进入插入

按 Esc 返回正常模式。


5. 文本编辑操作(正常模式下)

5.1 删除

  • x 删除光标处字符(相当于 Del)

  • X 删除光标前字符(相当于 Backspace)

  • dd 删除当前行

  • d2d 或 2dd 删除从当前行开始的 2 行

  • dw 删除从光标到单词结尾

  • d$ 或 D 删除从光标到行尾

  • d^ 删除从光标到行首(非空字符)

  • dG 删除从当前行到文件末尾

  • dgg 删除从当前行到文件开头

5.2 复制与粘贴

  • yy 或 Y 复制当前行

  • y2y 或 2yy 复制 2 行

  • yw 复制一个单词

  • p 在光标后粘贴(小写 p)

  • P 在光标前粘贴(大写 P)

5.3 撤销与重做

  • u 撤销上一步操作

  • Ctrl+r 重做(恢复撤销)

5.4 替换

  • r 替换光标处的一个字符(按 r 后输入新字符)

  • R 进入替换模式(连续替换,Esc 退出)

  • ~ 切换光标处字母的大小写


6. 查找与替换

6.1 查找

  • /pattern 向下查找 pattern

  • ?pattern 向上查找 pattern

  • n 继续向同一方向查找下一个

  • N 向反方向查找上一个

  • :set hlsearch 高亮所有匹配(:set nohlsearch 取消)

  • :nohlsearch 临时取消当前高亮

6.2 替换

  • :s/old/new 将当前行第一个 old 替换为 new

  • :s/old/new/g 将当前行所有 old 替换为 new

  • :5,10s/old/new/g 在第 5 到 10 行替换

  • :%s/old/new/g 在整个文件中替换

  • :%s/old/new/gc 替换时逐个询问确认(c 表示 confirm)


7. 可视模式

  • v 进入字符可视模式,移动光标选择字符。

  • V 进入行可视模式,选择整行。

  • Ctrl+v 进入块可视模式,可选择矩形块(常用于批量注释)。

选择后可以:

  • d 删除选中内容

  • y 复制选中内容

  • p 粘贴(会覆盖选中内容)

  • ~ 切换大小写

  • U 转为大写

  • u 转为小写

  • J 合并选中的行

示例:批量注释多行

  1. Ctrl+v 进入块模式

  2. 移动光标选中多行的第一列

  3. 按 I 进入插入(在块开始处)

  4. 输入 #

  5. 按 Esc 两次,所有选中行首都会加上 #

相关推荐
东城居士6 分钟前
Linux驱动阻塞与非阻塞访问的理解
linux·嵌入式系统
无敌贵点大王9 分钟前
RTThread学习记录13——关于要使用一个外设,RTThread与cubemx到底要怎么配合?
c语言·stm32·学习·rtthread
..Dauntless..14 分钟前
【Linux】进程地址空间初步理解
linux·运维·服务器
Julien200422 分钟前
Docker 网络(一)
linux·运维·服务器·ssh·学习方法
杨云龙UP1 小时前
一次数据库查询缓慢故障复盘:大表数据增长、SQL全表扫描导致系统响应异常
linux·运维·服务器·数据库·sql·mysql
喜欢打篮球的普通人2 小时前
MiniMind 学习笔记(十二):Pretrain 实操——从版本梳理到 8GB 显卡上的真实训练
人工智能·笔记·学习
PellyKoo2 小时前
【linux运维】ubuntu+samba 用户组独占目录权限配置踩坑记
linux·运维·ubuntu
AR-26710-2 小时前
Linux Day15——系统管理复习
linux·运维
高山有多高2 小时前
【Linux笔记】Linux自定义Shell
linux·c++
m4Rk_2 小时前
【论文阅读】Agent 记忆机制(87):VizoMem——把文本历史转化为可检索的视觉记忆
论文阅读·人工智能·学习·开源·github