当前位置: 首页 > news >正文

【Linux/Ubuntu】VIM指令大全

Vim 是一款功能强大的文本编辑器,掌握其常用操作指令可以极大提高编辑效率。以下是分类整理的常用 Vim 操作指令:

一、进入与退出 Vim

  • vim 文件名:打开或新建文件并进入 Vim
  • :q:退出(未修改文件)
  • :q!:强制退出(不保存修改)
  • :w:保存文件
  • :wq:x:保存并退出
  • ZZ:保存并退出(命令模式下)

二、模式切换

  • i:在当前光标前插入
  • I:在当前行首插入
  • a:在当前光标后插入
  • A:在当前行尾插入
  • o:在当前行下方新建一行并插入
  • O:在当前行上方新建一行并插入
  • s:删除当前字符并插入
  • S:删除当前行并插入
  • Esc:从插入模式返回命令模式

三、光标移动(命令模式)

  • h:左移一个字符
  • j:下移一行
  • k:上移一行
  • l:右移一个字符
  • 0:移至行首
  • $:移至行尾
  • ^:移至行首第一个非空白字符
  • w:移至下一个单词开头
  • W:移至下一个单词开头(忽略标点)
  • e:移至当前单词结尾
  • E:移至当前单词结尾(忽略标点)
  • b:移至前一个单词开头
  • B:移至前一个单词开头(忽略标点)
  • gg:移至文件开头
  • G:移至文件结尾
  • nG:n:移至第 n 行
  • Ctrl + f:向下翻一页
  • Ctrl + b:向上翻一页
  • Ctrl + d:向下翻半页
  • Ctrl + u:向上翻半页

四、删除操作(命令模式)

  • x:删除当前字符
  • X:删除当前字符的前一个字符
  • dd:删除当前行
  • ndd:删除从当前行开始的 n 行
  • d0:删除从光标位置到行首的内容
  • d$:删除从光标位置到行尾的内容
  • dw:删除从光标位置到下一个单词开头的内容
  • dW:删除从光标位置到下一个单词开头的内容(忽略标点)
  • de:删除从光标位置到当前单词结尾的内容
  • dB:删除从光标位置到前一个单词开头的内容(忽略标点)
  • dgg:删除从当前行到文件开头的内容
  • dG:删除从当前行到文件结尾的内容

五、复制与粘贴(命令模式)

  • yy:复制当前行
  • nyy:复制从当前行开始的 n 行
  • p:在当前行下方粘贴
  • P:在当前行上方粘贴
  • yw:复制从光标位置到下一个单词开头的内容
  • y0:复制从光标位置到行首的内容
  • y$:复制从光标位置到行尾的内容
  • ygg:复制从当前行到文件开头的内容
  • yG:复制从当前行到文件结尾的内容

六、撤销与重做(命令模式)

  • u:撤销上一次操作
  • Ctrl + r:重做上一次被撤销的操作

七、查找与替换(命令模式)

  • /pattern:从当前位置向下查找 pattern
  • ?pattern:从当前位置向上查找 pattern
  • n:继续查找下一个匹配项
  • N:继续查找上一个匹配项
  • :nohl:取消高亮显示查找结果
  • :s/old/new:替换当前行第一个 old 为 new
  • :s/old/new/g:替换当前行所有 old 为 new
  • :%s/old/new:替换所有行第一个 old 为 new
  • :%s/old/new/g:替换所有行所有 old 为 new
  • :%s/old/new/gc:替换所有行所有 old 为 new,每次替换前确认

八、其他常用操作

  • .:重复上一次操作
  • ZZ:保存并退出
  • :set nu:显示行号
  • :set nonu:隐藏行号
  • :set hlsearch:开启搜索高亮
  • :set nohlsearch:关闭搜索高亮
  • :set autoindent:开启自动缩进
  • :set paste:进入粘贴模式(避免粘贴时格式错乱)
  • :set nopaste:退出粘贴模式
  • :w 新文件名:另存为新文件
  • :r 文件名:将指定文件内容插入到当前位置
  • v:进入可视模式(按字符选择)
  • V:进入可视行模式(按行选择)
  • Ctrl + v:进入可视块模式(按块选择)

这些是 Vim 中最常用的操作指令,熟练掌握它们可以满足大部分文本编辑需求。随着使用深入,还可以探索更多高级功能和自定义配置。

http://www.dtcms.com/a/297714.html

相关文章:

  • Adv. Energy Mater.:焦耳热2分钟制造自支撑磷化物全解水电极
  • 基坑渗压数据不准?选对渗压计能实现自动化精准监测吗?
  • 戴尔电脑 Linux 安装与配置指南_导入mysql共享文件夹
  • 如何制定和落实ITIL 4服务请求的标准化与自动化策略
  • c# openxml 打开加密 的word读取内容
  • (笔记)U-boot 2012.10 armv7启动汇编解析
  • C++STL系列之unordered_set和unordered_map
  • gig-gitignore工具实战开发(四):使用ai辅助生成gitignore
  • 开讲啦|MBSE公开课:第二集 MBSE远景设想
  • cocos creator 3.8.6 websocke的一直报错WebSocket is not a constructor
  • Logstash 多表增量同步 MySQL 到 Elasticsearch:支持逻辑删除与热加载,Docker 快速部署实战
  • vue项目创建流程
  • XML的简略知识点
  • PyCharm高效开发全攻略
  • RHCA - CL260 | Day01:Ceph 架构及环境介绍
  • leetcode102:二叉树的层序遍历(队列实现)
  • 栈----1.有效的括号
  • iOS WebView 调试实战,文件上传与权限弹窗异常的排查路径
  • 三维模型驱动下的光伏组件智能排列方案
  • 【深入底层】C++开发简历4+4技能描述6
  • 百特搭AI低代码平台助力企业国际化业务敏捷拓展
  • 《一种采用分布式多模态传感模块的身体尺度机器人皮肤的设计、评估与应用》论文解读
  • 【日志】unity俄罗斯方块——边界限制检测
  • 如何在离线电脑win11上安装VS2022
  • PI 思维升级 PI设计的典范转移:从阻抗思维到谐振控制
  • 在 Ansys CFX Pre 中配置 RGP 表的分步指南
  • C++中的反向迭代器
  • java面试题(中级题汇总)
  • k8s 中的 deployment,statefulset,daemonset 控制器的区别
  • 特征值与特征向量