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 删除当前行

  • d2d2dd 删除从当前行开始的 2 行

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

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

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

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

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

5.2 复制与粘贴

  • yyY 复制当前行

  • y2y2yy 复制 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 两次,所有选中行首都会加上 #

相关推荐
wuminyu6 小时前
专家视角看Java字节码加载与存储指令机制
java·linux·c语言·jvm·c++
.小小陈.6 小时前
Linux 线程概念与控制:从底层原理到实战应用
linux·运维·jvm
网络工程小王6 小时前
【LangChain 大模型6大调用指南】调用大模型篇
linux·运维·服务器·人工智能·学习
wangbing11256 小时前
各linux版本的包管理命令
linux·运维·服务器
qq_571099356 小时前
学习周报四十三
学习
Joseph Cooper7 小时前
Linux/Android 跟踪技术:ftrace、TRACE_EVENT、atrace、systrace 与 perfetto 入门
android·linux·运维
小郑加油7 小时前
python学习Day12:pandas安装与实际运用
开发语言·python·学习
比昨天多敲两行8 小时前
Linux基础开发工具(下)
linux·运维·服务器
MegaDataFlowers9 小时前
英语六级我还在背单词:Unit 1(Lesson 2)
学习
笨笨饿9 小时前
69_如何给自己手搓一个串口
linux·c语言·网络·单片机·嵌入式硬件·算法·个人开发