vim的使用

vim文本编辑器

vim介绍

vim是Linux自带的文本编辑器,具有命令模式、编辑模式、末行模式三种模式。

模式间的切换:

  • 命令模式下,按键盘上的ia等键可进入编辑模式
  • 命令模式下,输入:可进入末行模式
  • 编辑模式下,按键盘上的esc键可回到命令模式
  • 末行模式下,按一次(慢退)或两次(快退)esc键可回到命令模式
vim打开文件方式 说明
vim filename 打开或新建一个文件,并将光标置于第一行的首部
vim -r filename 恢复上次vim打开时崩溃的文件
vim -R filename 用只读的方式打开文件

命令模式

光标移动

快捷键 功能描述
h、j、k、l 光标向左、下、上、右移动
gg 光标移动到首行
G 光标移动到末行
b/B 光标向前移动一个单词
w/W 光标向后移动一个单词
ctrl+b 或 PageUp 翻屏操作,向上翻
ctrl+f 或 PageDown 翻屏操作,向下翻
ctrl+u 向上翻半屏
ctrl+d 向下翻半屏
` 光标移动到上次编辑处
数字+G 快速将光标移动到指定行
数字+上下方向键 以当前光标为准,向上/下移动n行
数字+左右方向键 以当前光标为准,向上/下移动n个字符
H 光标移动到屏幕顶部
M 光标移动到屏幕中间
L 光标移动到屏幕底部
shift+6 光标移动到行首
shift+4 光标移动到行尾

选中内容

快捷键 功能描述
v 字符选中
V 或 shift+v 行选中

复制内容

快捷键 功能描述
y 复制已选中的文本到剪贴板
n+yy 复制光标所在行,此命令前可以加数字n,表示复制n行
yw 复制光标位置的单词
ctrl+v,方向键,yy ctrl+v,并按方向键选中区块,按下yy进行复制

粘贴内容

快捷键 功能描述
p 将剪贴板中的内容粘贴到光标后
P 将剪贴板中的内容粘贴到光标前

删除

快捷键 功能描述
x 删除光标所在位置的字符
X 删除光标前一个字符
dd 删除光标所在行,删除之后,下一行上移;严格来说它是剪切命令,可以配合p命令使用
D 删除光标位置到行尾的内容,删除之后,下一行不上移;也有剪切的作用
ndd 删除当前行(包括此行)后n行文本;可以理解成剪切多行,配合p命令使用
dG 删除光标所在行一直到文件末尾的所有内容

撤销/恢复

快捷键 功能描述
u 撤销
U 撤销所有编辑
ctrl+r 恢复

字符转换

快捷键 功能描述
~ 转换大小写
u 转成小写
U 转成大写

编辑模式

快捷键 功能描述
i 在当前光标所在位置插入,光标后的文本相应向右移动
o 在光标所在行的下方插入新的一行,光标停在空行首,等待文本输入
O 在光标所在行的上方插入新的一行,光标停在空行首,等待文本输入
a 在当前光标所在位置之后插入
A 在光标所在行的行尾插入,相当于光标移动到行尾再执行a命令

末行模式

保存/退出

快捷键 功能描述
wq 保存并退出vim编辑器
wq! 保存并强制退出vim编辑器
q 不保存并退出vim编辑器
q! 不保存并强制退出vim编辑器
w 保存但不退出vim编辑器
w! 强制保存文本
w filename 另存到filename文件中
x! 保存文本,并退出编辑器
ZZ 直接退出编辑器

查找

快捷键 功能描述
/abc 从光标所在位置向前查找字符串abc
?abc 从光标所在位置向后查找字符串abc
/^abc 查找以abc为行首的行
/abc$ 查找以abc为行尾的行

行号显示

快捷键 功能描述
set nu 行号显示
set nonu 取消行号显示

文件切换

使用vim打开多个文件后,在末行模式下可以进行切换。

快捷键 功能描述
files(%a表示激活状态,#表示上一个打开的文件) 查看当前打开的所有文件
open filename 切换到filename文件
bp 切换到上一个文件
bn 切换到下一个文件

扩展

在末行模式下,输入syntax on/off,能够显示或取消显示代码颜色。

vim内置计算器的使用:

  1. 进入编辑模式
  2. "ctrl+r,光标变成引号,输入=,光标转到最后一行
  3. 输入需要计算的内容,按下Enter键,计算结果会替代引号,光标恢复

vim的配置:

  1. 文件打开时,末行模式下输入的配置为临时配置,关闭文件后配置无效
  2. 修改个人配置文件,可以永久保存个人配置(~/.vimrc,如果没有可以自行创建)
  3. 修改全局配置文件,对每个用户生效(vim自带,/etc/vimrc)

注:个人配置文件优先级更高,当个人配置和全局配置发生冲突时,系统以当前用户的个人配置文件为准

处理异常:

  • 在编辑文件后,未正常保存退出时,会产生异常退出交换文件(.原文件名.swp);将交换文件删除后,再次打开文件时,便不会有提示:"#rm -f .原文件名.swp"。
相关推荐
happyprince10 小时前
2026年04月12日全球AI前沿动态
人工智能
深挖派10 小时前
GoLand 2026.1 安装配置与环境搭建 (保姆级图文教程)
后端·golang·编辑器·go·goland
一个人旅程~10 小时前
macOS装进移动硬盘成为双系统的操作方法
linux·经验分享·macos·电脑
xixixi7777710 小时前
Token 经济引爆 AI 产业加速:从百模大战到百虾大战,谁在定义 2026 的中国 AI?
大数据·人工智能·机器学习·ai·大模型·算力·通信
爱上珍珠的贝壳10 小时前
ESP32-S3-CAM:豆包语音识别文字后控制小车(一)——注册豆包火山引擎开发者接口
人工智能·语音识别·智能硬件·火山引擎·esp32-s3·豆包语音
七七powerful10 小时前
运维养龙虾--使用Tidb skill,让 AI 写出「生产级」SQL
人工智能
一个人旅程~11 小时前
在M系列的macbook上如何使用VMware安装ARM版的Win11以及注意哪些问题?
linux·windows·经验分享·macos·电脑
IT枫斗者11 小时前
MSE Nacos Prompt 管理:AI Agent 配置的工程化治理实践
网络·人工智能·websocket·网络协议·prompt·jar
love530love11 小时前
Windows 下 vcpkg 依赖环境部署与全局化配置
人工智能·windows·vcpkg
wangfpp11 小时前
AI生成UI的工程化实践:json-render概念、与A2UI对比及基于Qwen的实现
人工智能