计算机工具基础(五)——Vim
Vim
MIT《Missing in CS Class(2020):Class 3》笔记
Vim是终端环境中常用的纯文本编辑器。Vim的默认配置文件位于~/.vimrc
模式
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
相关文章:
计算机工具基础(五)——Vim
Vim MIT《Missing in CS Class(2020):Class 3》笔记 Vim是终端环境中常用的纯文本编辑器。Vim的默认配置文件位于~/.vimrc 模式 Vim有如下5种模式: 常规模式(Normal):进入Vim后的默认模式,用于阅读文件。以Esc自其他模式中退至此模式插入模…...
Android应用app实现AI电话机器人接打电话
Android应用app实现AI电话机器人接打电话 --安卓AI电话机器人 一、前言 【Dialer3.0智能拨号器】Android版手机app,由于采用蓝牙电话的方式来调用手机SIM卡发起呼叫、接听来电,并接收和处理通话的声音,通常我们以“蓝牙电话方案”来称呼它。 …...
Mobaxterm服务器常用命令(持续更新)
切换文件夹 cd path # for example, cd /gpu03/deeplearning/进入不同GPU ssh mgmt ssh gpu01 ssh gpu03寻找文件位置 find /path -name file_name #for example, find / -name lib #在根目录下搜寻名为lib文件 #for example, find /home/deeplearning -name "lib"…...
Android14窗口管理自适应投屏分辨率
环境 console:/ # cat /proc/version Linux version 6.1.57 (机密信息) (Android (10087095, pgo, bolt, lto, -mlgo, based on r487747c) clang version 17.0.2 (https://android.googlesource.com/toolchain/llvm-project d9f89f4d16663d5012e5c09495f3b30ece3d2362), LLD 17…...
Shot Studio for macOS 发布 1.0.2
Shot Studio 是一个 macOS 的 app,专门为开发者设计,主要用于各大 app 应用商店的预览图设计。 提供了非常多的模板,也预设了很多尺寸。可以直接一键使用 在 1.0.2 这个版本中新增了: 文本渐变 图层:边框、颜色、圆…...
《深度学习实战》第4集:Transformer 架构与自然语言处理(NLP)
《深度学习实战》第4集:Transformer 架构与自然语言处理(NLP) 在自然语言处理(NLP)领域,Transformer 架构的出现彻底改变了传统的序列建模方法。它不仅成为现代 NLP 的核心,还推动了诸如 BERT、…...
Starrocks入门(二)
1、背景:考虑到Starrocks入门这篇文章,安装的是3.0.1版本的SR,参考:Starrocks入门-CSDN博客 但是官网的文档,没有对应3.0.x版本的资料,却有3.2或者3.3或者3.4或者3.1或者2.5版本的资料,不要用较…...
银河麒麟高级服务器操作系统在线调整/pro/{PID}/limits文件中nofile的软限制和硬限制参数值操作方法
银河麒麟高级服务器操作系统在线调整/pro/{PID}/limits文件中nofile的软限制和硬限制参数值操作方法 一 系统环境二 使用场景三 操作步骤 一 系统环境 [rootlocalhost ~]# nkvers ############## Kylin Linux Version ################# Release: Kylin Linux Advanced Server…...
html css js网页制作成品——HTML+CSS甜品店网页设计(5页)附源码
目录 一、👨🎓网站题目 二、✍️网站描述 三、📚网站介绍 四、🌐网站效果 五、🪓 代码实现 🧱HTML 六、🥇 如何让学习不再盲目 七、🎁更多干货 一、👨…...
Open WebUI项目源码学习记录(从0开始基于纯CPU环境部署一个网页Chat服务)
感谢您点开这篇文章:D,鼠鼠我是一个代码小白,下文是学习开源项目Open WebUI过程中的一点笔记记录,希望能帮助到你~ 本人菜鸟,持续成长,能力不足有疏漏的地方欢迎一起探讨指正,比心心~…...
【Python 入门基础】—— 人工智能“超级引擎”,AI界的“瑞士军刀”,
欢迎来到ZyyOvO的博客✨,一个关于探索技术的角落,记录学习的点滴📖,分享实用的技巧🛠️,偶尔还有一些奇思妙想💡 本文由ZyyOvO原创✍️,感谢支持❤️!请尊重原创…...
蓝桥杯练习代码
一、最长公共前缀 编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 ""。 示例 1: 输入:strs ["flower","flow","flight"] 输出:"fl"示例…...
Imagination通过最新的D系列GPU IP将效率提升至新高度
Imagination DXTP GPU IP在加速移动设备和其他电力受限设备上的图形和计算工作负载时,能够延长电池续航时间。 英国伦敦 – 2025年2月25日 – 今日,Imagination Technologies(“Imagination”)宣布推出其最新的GPU IP——Imagina…...
C高级——shell(3)
一、shell的选择结构 1.回顾:C语言的选择结构:if , if else if ,if else,switch (switch的执行速度最快) 2.shell的选择结构: 单分支if 双分支 if else 多分支if elif case..in 1.1 shell的选择结构的格式 --------C语言的格式--…...
【C语言】第八期——指针、二维数组与字符串
目录 1 初始指针 2 获取变量的地址 3 定义指针变量、取地址、取值 3.1 定义指针变量 3.2 取地址、取值 4 对指针变量进行读写操作 5 指针变量作为函数参数 6 数组与指针 6.1 指针元素指向数组 6.2 指针加减运算(了解) 6.2.1 指针加减具体数字…...
docker 运行claude 的computer use
需要注意的是:这里claude操纵的是docker的虚拟服务器,不能访问本地url,需要进行端口转发 export ANTHROPIC_API_KEY%your_api_key% docker run \-e ANTHROPIC_API_KEY$ANTHROPIC_API_KEY \-v $HOME/.anthropic:/home/computeruse/.anthropi…...
JAVA面试_进阶部分_23种设计模式总结
1. 单例模式:确保某一个类只有一个实例,而且自行实例化并向整个系统提供这 个实例。 (1)懒汉式 public class Singleton { /* 持有私有静态实例,防止被引用,此处赋值为null,目的是实现延迟加载…...
边缘计算收益低的三大指标
边缘计算收益低的三大指标主要包括以下方面: 1. 资源贡献不足: 边缘计算的收益通常基于所提供的带宽、存储和计算资源来计算。如果设备的网络带宽有限、在线时间短或提供的存储容量较小,可能无法满足平台设定的最低贡献标准,从而导…...
Linux网络之传输层协议(UDP,TCP协议)
目录 重新认识端口号 端口号划分 netstat pidof UDP协议 UDP的特点 面向数据报 UDP的缓冲区 全双工和半双工 TCP协议 TCP的特点 TCP报头分析 源端口,目标端口,数据偏移(报文首部长度) 序号 确认号 窗口 6个标志位 ACK SYN …...
傅里叶分析
傅里叶分析之掐死教程(完整版)更新于2014.06.06 要让读者在不看任何数学公式的情况下理解傅里叶分析。 傅里叶分析不仅仅是一个数学工具,更是一种可以彻底颠覆一个人以前世界观的思维模式。但不幸的是,傅里叶分析的公式看起来太复…...
Qwen3-32B .NET应用开发:智能文档处理系统
Qwen3-32B .NET应用开发:智能文档处理系统 1. 开篇:为什么需要智能文档处理 每天我们都要面对各种各样的文档:合同、报告、发票、表格...手动处理这些文档不仅耗时耗力,还容易出错。想象一下,如果能有一个系统自动读…...
终极指南:如何用QtScrcpy实现高效Android投屏与键鼠控制
终极指南:如何用QtScrcpy实现高效Android投屏与键鼠控制 【免费下载链接】QtScrcpy Android实时投屏软件,此应用程序提供USB(或通过TCP/IP)连接的Android设备的显示和控制。它不需要任何root访问权限 项目地址: https://gitcode.com/barry-ran/QtScrcp…...
OpenClaw技能扩展实战:千问3.5-27B驱动公众号自动发布系统
OpenClaw技能扩展实战:千问3.5-27B驱动公众号自动发布系统 1. 为什么需要自动化公众号发布 作为一个技术博主,我每周都要在公众号发布2-3篇技术文章。最让我头疼的不是写作本身,而是发布前的繁琐流程:手动排版Markdown、上传图片…...
CVPR‘26 | 从任务统一到模态协同:电商通用多模态表征MOON 2.0
小记:自 2023 年以来,电商多模态表征模型 MOON 历经 3 年多的持续建设与迭代升级,已在阿里妈妈搜索直通车全面落地,并在多个核心场景中取得显著效果。以精排 CTR 预估模型为例,累计全量 5 期,带来大盘 CTR …...
广州邮科选型指南:挑选可调电源必须关注的四个核心参数
在电子工程师的工作台上,有一种设备兼具了灵活性与智能保护——它就是可调稳压恒流开关电源。这种电源不仅是供电工具,更像是懂得自我保护的"智能能源管家"。它如何同时实现稳压与恒流?传统电源往往只能固定输出,而这类…...
Java全核心-阿里大厂面试-Gemini版
完善更新中......一、Java 核心基础1、Java 四大引用与 ThreadLocal 深度拷问【核心连环炮】面试官:说一下 Java 的四大引用及其实际业务场景?面试官:ThreadLocal 为什么要用弱引用?不用行不行?面试官:既然…...
Pokerobo_PSx:轻量级PS2手柄嵌入式驱动库
1. Pokerobo_PSx 库概述Pokerobo_PSx 是一个专为嵌入式系统设计的轻量级 PS2 DualShock 手柄通信协议栈,面向 STM32、ESP32、nRF52 等主流 MCU 平台,提供完整、稳定、可裁剪的 PlayStation 2 游戏手柄(含 DualShock 1/2 及兼容设备࿰…...
Spring Boot 4.0 Agent-Ready不是未来式——是今天上线就必须具备的生产红线(附GDPR/等保2.0合规增强checklist)
第一章:Spring Boot 4.0 Agent-Ready不是未来式——是今天上线就必须具备的生产红线(附GDPR/等保2.0合规增强checklist)Spring Boot 4.0 正式将 JVM Agent 集成能力列为启动时强制校验项,而非可选扩展。这意味着任何未通过 java -…...
RemoteSerial:ESP32/ESP8266 Web串口调试库详解
1. RemoteSerial 库深度解析:面向 ESP8266/ESP32 的嵌入式 Web 串口监控系统RemoteSerial 是一个专为 ESP8266 和 ESP32 平台设计的轻量级、高实时性的 Web 串口监控库。它并非简单地将Serial对象映射到网页,而是构建了一套完整的异步 WebSocket 通信栈&…...
AI 时代:祛魅、适应与重新定义磐
指令替换 项目需求:将加法指令替换为减法 项目目录如下 /MyProject ├── CMakeLists.txt # CMake 配置文件 ├── build/ #构建目录 │ └── test.c #测试编译代码 └── mypass2.cpp # pass 项目代码 一,测试代码示例 test.c // test.c #includ…...
