vim常用快捷键

CentOS / Ubuntu 系统上,会经常用到vim但是想用快捷键的比较多,每次查询比较麻烦,所以整理一下,喜欢的小伙伴欢迎点赞👍+收藏❤️+评论噢~

vim 是一个非常常用的文本编辑器,它提供了大量快捷指令和命令来帮助用户快速编辑文件。以下是一些常用的 vim 快捷指令,分为基本操作、模式切换、光标移动、文本编辑等多个部分。

1. 模式切换

  • 命令模式 (默认模式):在该模式下可以执行删除、复制、粘贴等操作,启动 vim 后默认进入该模式。
  • 插入模式 :可以进行文本编辑。
    • i:进入插入模式,在当前光标位置之前插入。
    • I:进入插入模式,在行首插入。
    • a:进入插入模式,在当前光标位置之后插入。
    • A:进入插入模式,在行尾插入。
  • 可视模式 :选择文本块进行操作。
    • v:进入可视模式,按光标移动键选择字符。
    • V:进入可视行模式,选择整行。
  • 退出插入模式 :按 Esc 退出插入模式,返回到命令模式。

2. 文件操作

  • :w:保存文件。
  • :w filename:另存为指定文件名。
  • :q:退出 vim
  • :q!:强制退出 vim,不保存。
  • :wqZZ:保存并退出 vim
  • :e filename:打开一个新的文件进行编辑。
  • :set nu:显示行号。
  • :set nonu:隐藏行号。

3. 光标移动

  • h:向左移动一个字符。
  • j:向下移动一行。
  • k:向上移动一行。
  • l:向右移动一个字符。
  • 0:移动到当前行的行首。
  • $:移动到当前行的行尾。
  • gg:移动到文件的开头。
  • G:移动到文件的末尾。
  • H:移动到屏幕的顶部。
  • M:移动到屏幕的中间。
  • L:移动到屏幕的底部。
  • Ctrl + f:向下翻页。
  • Ctrl + b:向上翻页。

4. 文本编辑

  • 删除
    • x:删除当前光标所在的字符。
    • dw:删除从光标位置到下一个单词开头。
    • d$:删除光标到行尾的内容。
    • dd:删除整行。
  • 复制与粘贴
    • yyY:复制当前行。
    • p:在光标后粘贴。
    • P:在光标前粘贴。
  • 替换
    • r:替换当前光标下的字符。
    • R:进入替换模式,覆盖文本,直到按下 Esc 退出。
  • 撤销与重做
    • u:撤销上一步操作。
    • Ctrl + r:重做撤销的操作。
  • 修改文本
    • cw:修改一个单词,从光标位置到单词结尾,然后进入插入模式。
    • C:删除当前光标到行尾的内容,然后进入插入模式。
    • cc:删除整行并进入插入模式。

5. 搜索与替换

  • 搜索
    • /pattern:向下搜索指定的字符串 pattern
    • ?pattern:向上搜索指定的字符串 pattern
    • n:重复上一次的搜索(向下)。
    • N:重复上一次的搜索(向上)。
  • 替换
    • :s/old/new/g:替换当前行中所有匹配的 oldnew
    • :%s/old/new/g:替换整个文件中所有的 oldnew
    • :%s/old/new/gc:替换整个文件中的 oldnew,并在每次替换前进行确认。

6. 缩进与格式化

  • >>:右缩进当前行。
  • <<:左缩进当前行。
  • =:自动对齐代码。
  • gg=G:格式化整个文件。

7. 窗口操作

  • :split filename:sp filename:水平分割窗口并打开文件。
  • :vsplit filename:vsp filename:垂直分割窗口并打开文件。
  • Ctrl + w + w:在窗口之间切换。
  • Ctrl + w + q:关闭当前窗口。

8. 退出 Vim

  • :q:退出编辑器(如果未修改文件)。
  • :q!:强制退出,不保存修改。
  • :wqZZ:保存并退出。
  • :x:与 :wq 类似,保存并退出。

9. 其他实用命令

  • :noh:关闭高亮搜索结果。
  • J:合并当前行与下一行。
  • .:重复上一次的操作。

总结

这些是 vim 的常用快捷指令和命令,通过熟练掌握这些快捷键,可以大幅提高在 vim 中编辑文件的效率。如果你刚开始使用 vim,建议从最常用的光标移动和基本编辑命令开始,逐步掌握更多高级功能。

直到上班后才明白"少壮不努力,老大图伤悲"的真正含义

相关推荐
柏木乃一7 分钟前
进程(8)虚拟地址空间/虚拟内存概述.part1
linux·服务器·c++·进程·虚拟内存·fork
oMcLin28 分钟前
CentOS 7.6 磁盘空间不足导致服务崩溃:如何有效清理日志文件和临时文件
linux·运维·centos
秋风不问归客32 分钟前
linux 网络相关命令 及常用场景
linux·服务器·网络
牛奶咖啡1339 分钟前
Linux文件快照备份工具rsnapshot的实践教程
linux·服务器·文件备份·文件快照备份·rsnapshot·定时备份本地或远程文件·查看指定命令的完整路径
大模型铲屎官40 分钟前
【操作系统-Day 47】揭秘Linux文件系统基石:图解索引分配(inode)与多级索引
linux·运维·服务器·人工智能·python·操作系统·计算机组成原理
拾光Ծ1 小时前
Linux 进程控制:进程终止与等待・waitpid 选项参数与状态解析(告别僵尸进程)
linux·运维·服务器·进程控制
linux修理工1 小时前
ubuntu 2204 tsinghua
linux·运维·ubuntu
琥珀.1 小时前
查看linux下java服务进程是否正常
java·linux·运维
oMcLin1 小时前
Ubuntu 22.04 无法安装依赖包:解决 apt‑get 错误“Could not resolve”
linux·运维·ubuntu
QyynerBoomer1 小时前
Linux进程创建详解
linux·运维·服务器