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 打开帮助文档

相关推荐
崇山峻岭之间11 小时前
Keil5输出hex转换为bin的设置
linux·运维·服务器
谷雪_65812 小时前
Linux 网络命名空间:从内核原理到企业级容器网络架构全景实战
linux·网络·架构
qq_1631357513 小时前
Linux 【03- chgrp命令超详细教程】
linux
我会尽全力 乐观而坚强14 小时前
MySQL库与表的操作
linux·数据库·mysql
着迷不白14 小时前
Linux 磁盘管理完全指南:分区、文件系统、挂载与 LVM 实战
linux·运维·服务器
山川而川-R14 小时前
LangChain
linux·运维·服务器
QH_ShareHub14 小时前
Linux 根目录结构详解
linux·运维·服务器
郝学胜-神的一滴15 小时前
CMake 038:OBJECT目标复用编译+Linux动态库版本自动化管理
linux·c++·程序人生·软件工程·软件构建·cmake·工程配置
单位圆的日常15 小时前
FRP反向隧道实现异地SSH家用Linux
linux·运维·ssh·frp
小比特_蓝光15 小时前
匿名管道+进程池
linux