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

计算机工具基础(五)——Vim

Vim

本系列博客为MIT《Missing in CS Class(2020)》课程笔记

Vim是终端环境中常用的纯文本编辑器。

模式

Vim有如下5种模式:

  • 常规模式(Normal):进入Vim后的默认模式,用于阅读文件。以Esc自其他模式中退至此模式
  • 插入模式(Insert):用于插入文本,以i进入
  • 替换模式(Replace):用于替换文本,以r进入
  • 可视模式(Visual):用于选中文本,与在其他编辑器中按Shift+方向键选中文本等效。分为普通可视模式(以字符为单位,以v进入)、行可视模式(以行为单位,以V进入)、块可视模式(纵向选择,以Ctrl-v进入)。
  • 命令模式(Command):用于执行某些命令,以:进入

会话、缓存、标签、窗口

  • 会话(Session):保存了vim的完整工作状态,包括缓存、窗口、标签、选项等。
  • 缓存(Buffer):缓存是加载进内存中的文件,每个文件对应一个缓存。关闭窗口不会清除缓存。
  • 标签(Tab):标签负责组织窗口,每个标签包含独立的窗口布局。类似于桌面操作系统的一个桌面。Vim默认打开一个标签页,仅包含一个窗口。
  • 窗口(Window):标签页内的视图,显示缓存内容。一个标签可分割出多个窗口。

命令

以下命令适用于命令模式,不要与常规模式中的操作混淆。

  • q退出所在窗口(但不退出缓存)

    qa:退出所有窗口(但不退出缓存)
    q!:强制退出所在窗口(在缓存未写入文件的情形下)

  • w保存缓存内容至文件

  • wq保存缓存内容并退出窗口

  • e <file_name>:在此窗口覆盖的打开文件<file_name>

  • help <command>:查阅<command>的帮助手册。注意若为命令,需为:<command>

  • set <options>:用于设置选项

  • sp <file_name>:将<file_name>加载进缓存,在同一标签页内,在此窗口的下方分离出新窗口,显示内容为<file_name>。若不指定<file_name>,则分离当前窗口所显示的缓存。

    vsp <file_name>:将<file_name>加载进缓存,在同一标签页内,在此窗口的右方分离出新窗口,显示内容为<file_name>。若不指定<file_name>,则分离当前窗口所显示的缓存。

  • tabnew <file_name>:将<file_name>加载进缓存,新建一个tab,显示内容为<file_name>

  • tabn:切换到下一个(next)标签
    tabp:切换到上一个(previous)标签

快捷键

常规模式

  • G:跳到文尾 gg:跳到文首
  • H:左 J:下 K:上 L:右
  • w:word,跳至下个词首 b:begin,跳至上个词首 e:end,跳至下个词尾
  • 0:移动至行首 $:移动至行尾 ^:移动至本行首个非空字符
  • Ctrl-f:向上翻一页 Ctrl-b:向下翻一页
  • Ctrl-u:向上翻半页 Ctrl-d:向下翻半页
  • /<pattern>向后匹配模式串<pattern> ?<pattern>向前匹配字符串<pattern>
  • n:当前匹配方向的下个匹配 N:当前匹配方向的上个匹配
  • u:撤销 Ctrl-r:重做
  • y:复制(默认复制当前光标字符,可通过进入可视模式选中内容) p:粘贴

命令模式

  • Ctrl-w + 方向键:切换窗口

格式化代码

常规模式下:gg=G

相关文章:

  • LeetCode 解题思路 3(Hot 100)
  • 操作定制万年历投屏模拟点单叫号器
  • 【机器学习】 [代码篇] 30. KNN - sklearn 以及 自定义KNN 的实现
  • 【Elasticsearch】script_fields 和 runtime_fields的区别
  • 游戏引擎学习第124天
  • Graph and GNN——图的表示与图神经网络的介绍与应用
  • GateWay
  • Vue3核心编译库@vuecompiler-core内容分享
  • PDF扫描档智能方向识别:多模型投票机制的实践测试 救活古典书籍
  • 每日一题-设计浏览器历史记录,关于栈的应用
  • 鸿蒙开发第4篇__关于在鸿蒙应用中使用Java语言进行设计
  • 十、大数据资源平台功能架构
  • 使用 frp 实现内网穿透:从零到一的完整指南
  • Uniapp 小程序复制、粘贴功能实现
  • c++:多态
  • 算法题(79):两个数组的交集
  • 七、Redis集群高可用
  • 第74节 绘制点和线条( LineTo 和 MoveTo )
  • lombok 的注解说明
  • 使用DeepSeek/chatgpt等AI工具辅助网络协议流量数据包分析
  • 共绘“彩色上海”,IP SH艺术共创沙龙首期圆满举办
  • “女乘客遭顺风车深夜丢高速服务区”续:滴滴永久封禁两名涉事司机账号
  • 广东省副省长刘红兵跨省调任湖南省委常委、宣传部长
  • 海尔智家一季度营收791亿元:净利润增长15%,海外市场收入增超12%
  • 大型长读长RNA测序数据集发布,有助制定精准诊疗策略
  • 五一小长假,带着小狗去上海音乐厅