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

相关推荐
春日见2 小时前
三分钟安装window Docker,并与Ubuntu(WSL)建立连接
linux·人工智能·windows·驱动开发·机器学习·docker·容器
头发还没掉光光2 小时前
IPV4地址不足,私有IP无法访问,使用NAT技术、内网穿透与打洞逐个解决
linux·网络·网络协议·tcp/ip
HIT_Weston2 小时前
110、【Ubuntu】【Hugo】搭建私人博客:搜索功能(六)
linux·运维·ubuntu
90的程序爱好者2 小时前
Linux 常用命令分类整理
linux·运维·服务器
坐怀不乱杯魂2 小时前
Linux - 线程的同步与互斥
linux·c++
HABuo2 小时前
【linux基础I/O(一)】文件系统调用接口&文件描述符详谈
linux·运维·服务器·c语言·c++·ubuntu·centos
拾光Ծ2 小时前
【Linux】一切皆文件:深入理解文件与文件IO
linux·c语言·运维开发·系统编程·重定向·linux开发·文件io
先生先生3932 小时前
docker/linux
linux·运维·服务器
独隅2 小时前
Ollama 在 Linux 上的完整安装与使用指南:从零部署到熟练运行大语言模型
linux·运维·语言模型