vim常用命令

Vi(全称为"Visual Editor")和Vim("Vi IMproved")是在Linux和其他UNIX系统上常用的文本编辑器。它们是命令行界面下的文本编辑工具,可以用于编辑各种类型的文件。

基础介绍

先不要用vim创建文件,因为你会退不出来。

有人说让一个未接触过vim的人来退出,就会得到真正的随机字符串。(

Vi/Vim有三种基本工作模式:命令模式(Command mode)、插入模式(Insert mode)、底行模式(Last line mode)。

  • 进入命令模式:启动Vi/Vim后默认进入命令模式,可以执行各种编辑命令。
  • 进入插入模式:在命令模式下按下i键可以进入插入模式,此时可以输入文本内容。
  • 进入底行模式:在命令模式下按下冒号:可以进入底行模式,可以执行一些高级操作,如保存、退出等。

那么要怎么知道现在在那个模式呢?看右下角的提示。

  • 命令模式(空):
  • 插入模式(--INSERT--):
  • 底行模式(:):

## 最基本的命令(创建和退出)

  • 创建
shell 复制代码
vim a.txt # 之后就会通过该命令直接使用vim进入到a.txt
  • 进入命令模式

ESC就会从其他模式进入到命令模式。

  • 进入插入模式

用很多种方法,先用最简单的i进入。

  • 进入到底部模式

:进入。

  • 退出

先进入命令模式,在进入底部模式,在底部输入wq(保存退出,还有其他的命令,!q强制退出)。

这样就保证至少会退出vim了。

在刚开始学vim时一定要用自己拿的准的命令来写,如果不确定一定在使用时要再搜搜,否则不保证你通过搜索能退出!!!

在刚开始学vim时一定要用自己拿的准的命令来写,如果不确定一定在使用时要再搜搜,否则不保证你通过搜索能退出!!!

在刚开始学vim时一定要用自己拿的准的命令来写,如果不确定一定在使用时要再搜搜,否则不保证你通过搜索能退出!!!

在熟悉或者入门之后基本上能通过搜索引擎解决遇到的问题。

移动(基础 | 常用)

之后的命令很难通过截图等形象的展示出来,如果感觉有歧义或者不理解的地方可以看其他博文和chatgpt进行参照。

键盘按键 作用
h 或 向左箭头键(←) 光标向左移动一个字符
j 或 向下箭头键(↓) 光标向下移动一个字符
k 或 向上箭头键(↑) 光标向上移动一个字符
l 或 向右箭头键(→) 光标向右移动一个字符

数字 + h/j/k/l表示向方向h/j/l/l移动数字

e.g. 3j向下移动3行。

  • 移动到第几行

nG:表示移动到第n行。

gg:等价于1G表示移动到第一行。

G:表示移动到最后一行。

  • 行内移动

可以用上面的数字 + h/l命令。

移动到行的第一个字符位置:^

移动到行的最后一个字符位置:$

插入(基础 | 常用)

常用i,a,o

删除和粘贴(基础)

可视模式

在Vim中,v是可视模式(Visual mode)的命令。可视模式允许你选中文字块,以便进行复制、剪切、粘贴和其他编辑操作。

通过按下v键,可以进入普通可视模式(Normal visual mode)。在普通可视模式下,你可以使用移动命令来选择文本块。例如:

  • 使用方向键或快捷键移动光标以选择文本块。
  • jk键向下或向上移动光标,扩大或缩小选择区域。
  • hl键向左或向右移动光标。

删除

x:删除光标后面的一个字符。

X:删除光标前面的一个字符。

dd:删除一整行。

复制和粘贴

y是复制。p是粘贴。我是常跟v使用。

搜索,替代

  • 向下找名为word的字符串
vim 复制代码
/word
  • 向上找名为word的字符串
vim 复制代码
?word
  • 重复前面的操作
vim 复制代码
n
  • 反向前面的操作
vim 复制代码
N
  • 在n1到n2行内查找字符串word,并将其改为world。
vim 复制代码
:n1,n2s/word/world/g
  • 从第一行到最后一行寻找 word1 字符串,并将该字符串取代为 word2 !(常用)
vim 复制代码
:1,$s/word/word1/g
vim 复制代码
:%s/word/word1/g

g -- 全局。 c -- 是否需要确认。

其他常用命令

  • 撤销前面的操作

u

  • 显示行号和取消行号
vim 复制代码
set nu 
set nonu
  • 将编辑的数据存储为另一个文件
vim 复制代码
w filename

Linux vi/vim | 菜鸟教程 (runoob.com)

Vim 快速入门 - 知乎 (zhihu.com)

相关推荐
爱网络爱Linux10 小时前
【系列】每天一个 Linux 命令(53)startx 命令
linux·rhce·rhca·linux运维·linux命令大全·红帽认证
ZhengEnCi10 小时前
L2A-一个域名如何访问多台云服务器-子域名、路径前缀与Nginx反向代理选型指南
linux·人工智能
M78佐菲11 小时前
51单片机学习笔记:ds18b20要点整理
linux·笔记·嵌入式硬件·学习·51单片机
高亦真11 小时前
今天是学习嵌入式的第37天
linux·学习·算法
一个有温度的技术博主11 小时前
Linux 核心命令速查指南:从文件操作到系统运维
linux·服务器
小小的木头人12 小时前
Docker 环境下迁移 containerd 数据目录:从 `/var/lib/containerd` 到 `/data/containerd`
linux·docker
东城居士12 小时前
验证第一个Linux字符驱动程序
linux·嵌入式系统
网硕互联的小客服15 小时前
各个版本的Linux系统如何修改远程端口ssh端口?
linux·运维·服务器·网络
T1mzhou15 小时前
ARM64 Linux 6.10 内核驱动(12):dd.c:probe/ remove、延迟 probe
linux·服务器·c语言·arm开发·arm
yunwei3718 小时前
eBPF 示例教程:实现 `scx_nest` 调度器
linux·后端·性能优化