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"。
相关推荐
CopyLower3 分钟前
AI赋能电商:智能购物推荐、会员分类与商品定价的创新探索
人工智能·分类·数据挖掘
界面开发小八哥5 分钟前
界面控件DevExpress WinForms v24.2新功能预览 - 人工智能(AI)
人工智能·.net·界面控件·devexpress·ui开发
2zcode7 分钟前
基于YOLOv8深度学习的独居老人情感状态监护系统(PyQt5界面+数据集+训练代码)
人工智能·深度学习·yolo
藓类少女10 分钟前
【深度学习】模型训练时减少GPU显存占用
人工智能·深度学习
苏涵.11 分钟前
深度学习实验十二 卷积神经网络(3)——基于残差网络实现手写体数字识别实验
人工智能·深度学习·神经网络·cnn
林伟_fpga12 分钟前
极限失控的大模型使电力系统面临的跨域攻击风险及应对措施
人工智能·gpt·网络安全
文柏AI共享13 分钟前
Word Embedding
人工智能·自然语言处理·word·embedding
科学最TOP15 分钟前
时序论文22|ICML24港科大:面向多变量不规则的时间序列预测方法
人工智能·深度学习·transformer·时间序列·论文解读
n***859438 分钟前
一键AI换脸软件,支持表情控制,唇形同步Facefusion-3.0.0发布!支持N卡和CPU,一键启动包
人工智能·github·开源软件
超甜的布丁mm1 小时前
【图像检测】深度学习与传统算法的区别(识别逻辑、学习能力、泛化能力)
图像处理·人工智能·python·深度学习·算法·视觉检测·卷积神经网络