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

news/2025/2/28 1:05:29/文章来源:https://www.cnblogs.com/yerosius/p/18742409

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/890933.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

绝缘电阻测试仪科普

什么是绝缘电阻绝缘电阻是指两个绝缘介质间的电阻,当另一端安装有电压源时,绝缘介质内电荷不能流动,因而受电压源作用,在另一端产生电势差,形成电阻抵消电压势差而不致使电荷漏出。一般情况下,绝缘电阻越大,电气设备的安全性就越好,缺陷率也越低。 为什么测量绝缘电阻绝…

【CodeForces训练记录】Educational Codeforces Round 175 (Rated for Div. 2)

训练情况赛后反思 CD连续卡题,D题树上层序遍历+加法原理,鉴定为基本的图论数据结构没学好 A题 直接打表,对于 i%3 = i%5 的情况,我们发现有三个一组,三个一组连续的数,每组第一个数之间差 15,所以我们 / 15 * 3 先把整组的数量算出来,再求是组内第几个,就能得到答案了…

软工五问

这个作业属于哪个课程 课程链接这个作业要求在哪里 作业要求这个作业的目标 学习使用markdown, 接触GitHub, 建立个人博客个人介绍 📋标签 广东湛江 人 期望成为 golang后端工程师 学习经历持续学习golang及其框架, 设计模式 持续学习后端各个组件的可靠高效解决方案兴趣爱好…

清华大学推出的5册免费的 DeepSeek 学习使用指南!

前言 在当今这个信息洪流、技术飞速迭代的时代,DeepSeek的横空出世极大地降低了普通人利用人工智能技术的门槛。然而,尽管机遇就在眼前,仍有不少朋友面对DeepSeek感到无从下手,不知如何利用它来紧握时代赋予的红利。对此,清华大学展现出了高度的社会责任感与前瞻性,推出了…

拆解分析行业头部米家绿米燃气报警器怎么样?

小米绿米天然气卫士拆解,内置Zigbee模组,需要连接Zigbee 3.0网关 或者 具备Zigbee 3.0网关功能的设备报警 天然气是每家每户日常生活中都会使用到的清洁能源,因此对于天然气的安全防护时刻不能放松。小米天然气卫士是小米与业内知名品牌 赛特威尔 联手打造的一款产品,可探测…

C++ DLL 供 C# AnyCPU 调用 【 OpenCV onnxruntime】

背景 C++ 打包的DLL用到 OpenCV,用到 onnxruntime C# 软件需要打包成Any CPU版本,即可以在 x86下使用,也可以在x64下使用 C# 前端想把 C++ dll与依赖放在单独的”Libs“文件夹中,不是"Dubug"下 难点: 在C++ 中, OpenCV 和 onnxruntime 分别有x64和x86两个版本,…

Mac本地部署DeepSeek(简洁版)

1. 下载ollama2. 安装ollma 无脑安装那么最小的1.5b模型就拥有15亿的参数量,而最大的671b则有6710亿个参数,我们要使用的是前面这6个规模较小的模型。ollama run deepseek-r1:8b要等一会我不相信黑夜将至 因为火把就在我的手中。

使用OpenLPA编辑eUICC卡片

使用OpenLPA编辑eUICC卡片原文地址: [https://github.com/EsimMoe/MiniLPA/blob/main/README_zh-CN.md] 原作者:EsimMoe 许可: AGPL-3.0 license精美的现代化 LPA UI特性良好的跨平台支持 (Windows, Linux, macOS) 更友好的用户界面 i18n 多语言支持 搜索与快捷跳转 自由地管理…

UltraRAG 框架全家桶

转载:清华等团队推出 UltraRAG 框架全家桶,让大模型读懂善用知识库!引言 RAG 系统的搭建与优化是一项庞大且复杂的系统工程,通常需要兼顾测试制定、检索调优、模型调优等关键环节,繁琐的工作流程往往让人无从下手。 近日,针对以上痛点,清华大学 THUNLP 团队联合东北大学…

2024/2/27日 日志 第一次测试案例分析(4)--登录与注册和仓库方面

UserMapper点击查看代码 package com.Moonbeams.mapper;import com.Moonbeams.pojo.User; import org.apache.ibatis.annotations.Insert; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.ResultMap; import org.apache.ibatis.annotation…

基于Web的图书管理系统全面解析与实践指南

@目录一、项目背景与目标二、技术选型与开发工具(一)后端技术:Java 与 Servlet(二)前端技术:HTML、CSS 与 JavaScript(三)数据库:MySQL(四)开发工具:Eclipse三、系统架构设计(一)表示层(二)业务逻辑层(三)数据访问层四、功能模块详解(一)用户角色与权限管理…

Juniper SRX1500 防火墙 Internet与SDWAN分流配置

Chassis 管理接口fxp0 大多数SRX设备都有独立的管理接口,名称为fxp0。 低端一些的设备,比如SRX300/320是没有独立的fxp0的。 需要从接口中挑一个作为管理接口。 Interface Renumbering Juniper的堆叠叫Chassis, 堆叠的节点分别叫node0和node1。 堆叠建立以后, 在查看配置的…