Linux下 vim(vi)编辑器的使用-各种模式介绍

进入Vim

创建一个文件进入编辑

bash 复制代码
vi filename

一、编辑模式介绍

vi / vim 编辑器中,删除字符的操作取决于你当前所处的模式。vi 有三种主要模式:

  • 普通模式(Normal mode):启动后默认进入,用于导航和执行命令
  • 插入模式(Insert mode):用于输入文本
  • 命令行模式(Command-line mode) :通过 : 进入,用于保存、退出等
模式 说明 进入方式 退出方式
普通模式(Normal mode) 默认模式,用于导航、编辑命令(如删除、复制、跳转) 启动 Vim 自动进入;按EscCtrl+[ 从其他模式返回 i/a/o等进入插入模式,或: 进入命令行模式
插入模式(Insert mode) 输入文本内容 在普通模式下按: •i(当前光标前插入) •a(光标后插入) •o(下一行新建行) •I(行首插入) •A(行尾插入) EscCtrl+[ 返回普通模式
命令行模式(Command-line mode) 执行保存、退出、搜索、替换等命令 在普通模式下按:(冒号)就是shift+; Enter执行命令,或Esc 取消返回普通模式

💡 还有可视模式(Visual mode)(用于选择文本):

  • v:字符级选择
  • V:整行选择
  • Ctrl+v:块选择(列模式)

二、普通模式(Normal Mode)常用命令

1.光标移动

命令 作用
h/j/k/l 左 / 下 / 上 / 右
w 跳到下一个单词开头
b 跳到上一个单词开头
e 跳到当前/下一个单词结尾
0(零) 跳到行首
^ 跳到行首第一个非空白字符
$ 跳到行尾
gg 跳到文件开头
G 跳到文件末尾
5G:5 跳到第 5 行
Ctrl+d/Ctrl+u 向下 / 向上翻半页
Ctrl+f/Ctrl+b 向下 / 向上翻整页

2.编辑操作(删除、复制、粘贴)

命令 作用
x 删除当前字符
X 删除前一个字符
dw 删除到下一个单词开头
d$D 删除到行尾
d0 删除到行首
dd 删除整行
5dd 删除5 行
yy 复制(yank)当前行
5yy 复制 5 行
yw 复制一个单词
p 在光标粘贴
P 在光标粘贴
u 撤销(undo)
Ctrl+r 重做(redo)
.(点) 重复上一次编辑操作

3.查找与替换

命令 作用
/word 向下搜索word,按n下一个,N 上一个
?word 向上搜索
:%s/old/new/g 全文将old替换为new(全局)
:s/old/new/g 仅当前行替换
:%s/old/new/gc 全文替换,每处确认(c = confirm)

✍️ 三、插入模式(Insert Mode)操作

  • 正常打字输入即可
  • 常用快捷键(部分终端支持):
    • Backspace:删除前一个字符
    • Delete:删除后一个字符(部分环境不支持)
    • Ctrl+h:等效 Backspace
    • Ctrl+w:删除前一个单词
    • Ctrl+u:删除整行已输入内容

⚠️ 插入模式下无法使用xdd等命令!需先按Esc 回普通模式。


📜 四、命令行模式(Command-line Mode)常用命令

在普通模式下按: 进入:

命令 作用
:w 保存文件
:q 退出(无修改时)
:wq:x 保存并退出
:q! 强制退出(不保存)
:w filename 另存为filename
:set nu :set number 显示行号
:set nonu 隐藏行号
:syntax on 开启语法高亮
:!ls 执行 shell 命令(如:!pwd
:r filename 读入另一个文件内容到当前光标下
:help 打开帮助文档

相关推荐
☆凡尘清心☆9 小时前
CentOS Stream 9 源码编译搭建 Zabbix7.0.29 完整部署方案(部署成功)
linux·运维·centos
予昊9 小时前
Linux 资源控制实战分析:用 LXC 亲手造一个 “迷你虚拟机“
linux·运维·服务器
allforgood9 小时前
管理网络安全
linux
灵晔君9 小时前
【Linux】进程控制(一)——进程创建、进程终止与进程等待
linux·c语言·算法
wsad05329 小时前
CentOS 10 上使用 Docker Compose 部署 Discuz X5.0 论坛完整教程
linux·docker·centos·discuz
张宇Joaquin10 小时前
openEuler编译和更换内核的方法
java·linux·服务器
小此方10 小时前
Re:Linux系统篇(五十六)线程篇 · 九:基于阻塞队列的生产者消费者模型与条件变量
linux·运维·服务器
迷途之人不知返10 小时前
自动化工程的构建
linux·自动化
Escalating_xu10 小时前
【Linux】库制作与链接原理:从静态库、动态库到 ELF、重定位、GOT 与 PLT
linux·运维·服务器
三言老师19 小时前
秘诀-如何远程SSN访问家里的八台电脑(frp 实操方案)
linux·运维·ssh