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"。
相关推荐
大模型探索者2 小时前
2026 企业智能体平台选型指南:从通用到行业深耕,怎么选?
大数据·人工智能
深圳行云创新2 小时前
北极星知识图谱平台|太空越来越“拥挤”,知识图谱如何预测空间碎片碰撞风险?
人工智能·知识图谱
Am-Chestnuts2 小时前
国产AI多轮对话归档与多格式导出实践
人工智能·word
菜地里的小菜鸟3 小时前
将linux程序打成.run包
linux·将linux程序打成run包·运维自动安装包
workflower3 小时前
装备企业的 AI 路线图
人工智能·深度学习·机器学习·设计模式·机器人
AKAMAI3 小时前
Linode接口及默认防火墙现已全面开放使用
人工智能·云计算
前端开发江鸟4 小时前
RAG 回答错了,问题到底出在召回、重排,还是生成?
人工智能
美狐美颜SDK开放平台4 小时前
直播app开发如何实现主播级美颜效果?美颜sdk开发方案详解
人工智能·音视频·美颜sdk·视频美颜sdk·美颜api
东方小月4 小时前
从零开发一个 Coding Agent(四):使用状态机校验大模型事件流
前端·人工智能·后端
大龄码农有梦想4 小时前
使用大模型服务如何保证数据安全?企业 AI 安全、私有化部署与治理实践
人工智能·私有化部署·数据安全·信创·ai agent·智能体·智能体开发平台