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

MacBook 终端中使用 vim命令

在 MacBook 终端中使用 vim 编辑器时,以下是一些常用命令和操作指南:


1. 基本操作

启动 vim
vim 文件名  # 打开或创建文件
退出 vim
  • 保存并退出
    • Esc,然后输入 :wq,按 Enter
  • 不保存退出
    • Esc,然后输入 :q!,按 Enter
  • 仅保存不退出
    • Esc,然后输入 :w,按 Enter

2. 模式切换

  • 命令模式(默认)
    • Esc 进入命令模式,可以执行保存、退出等操作。
  • 插入模式(编辑文本)
    • i 进入插入模式(光标前插入)。
    • a 进入插入模式(光标后插入)。
    • o 在当前行下方插入新行并进入插入模式。
    • O 在当前行上方插入新行并进入插入模式。

3. 光标移动

  • 基本移动
    • h:左移。
    • j:下移。
    • k:上移。
    • l:右移。
  • 快速移动
    • 0:移动到行首。
    • $:移动到行尾。
    • gg:移动到文件开头。
    • G:移动到文件末尾。
    • :行号:跳转到指定行(如 :10 跳转到第 10 行)。

4. 文本编辑

  • 删除
    • x:删除光标处的字符。
    • dd:删除当前行。
    • dw:删除从光标到单词末尾。
  • 复制与粘贴
    • yy:复制当前行。
    • p:粘贴到光标后。
    • P:粘贴到光标前。
  • 撤销与重做
    • u:撤销上一次操作。
    • Ctrl + r:重做撤销的操作。

5. 搜索与替换

  • 搜索
    • /关键词:向下搜索(如 /hello)。
    • ?关键词:向上搜索。
    • n 跳转到下一个匹配项,N 跳转到上一个匹配项。
  • 替换
    • :%s/旧文本/新文本/g:全局替换(如 :%s/foo/bar/g)。
    • :%s/旧文本/新文本/gc:全局替换并确认。

6. 多文件操作

  • 打开多个文件
    vim 文件1 文件2  # 同时打开多个文件
    
  • 切换文件
    • :n:切换到下一个文件。
    • :N:切换到上一个文件。
    • :ls:列出所有打开的文件。
    • :b 编号:切换到指定编号的文件(如 :b 2)。

7. 分屏操作

  • 水平分屏
    • :sp 文件名:水平分屏打开文件。
  • 垂直分屏
    • :vsp 文件名:垂直分屏打开文件。
  • 切换分屏
    • Ctrl + w + h/j/k/l:切换到左/下/上/右分屏。
    • Ctrl + w + w:循环切换分屏。

8. 其他实用命令

  • 显示行号
    • :set number:显示行号。
    • :set nonumber:隐藏行号。
  • 保存并退出所有文件
    • :xa:保存所有文件并退出。
  • 重新加载文件
    • :e!:放弃更改并重新加载文件。

总结

操作命令说明
保存并退出:wqZZ保存更改并退出
强制退出(不保存):q!放弃更改并退出
插入模式ia进入插入模式
删除当前行dd删除当前行
复制当前行yy复制当前行
粘贴pP粘贴到光标后或前
搜索/关键词向下搜索
全局替换:%s/旧/新/g替换所有匹配项
分屏:sp:vsp水平或垂直分屏

掌握这些命令后,你就能高效使用 vim 编辑文件了!如果需要更深入学习,可以查看 vim 的内置教程:

vimtutor  # 在终端运行 vim 教程

相关文章:

MacBook 终端中使用 vim命令

在 MacBook 终端中使用 vim 编辑器时,以下是一些常用命令和操作指南: 1. 基本操作 启动 vim vim 文件名 # 打开或创建文件退出 vim 保存并退出: 按 Esc,然后输入 :wq,按 Enter。 不保存退出: 按 Esc&am…...

VoIP之SBC(会话边界控制器)

‌  SBC(Session Border Controller,会话边界控制器)‌是一种在VoIP通信网络中的重要设备,用于连接处理会话边界,核心功能包含信令代理/媒体代理、网络NAT穿越、防火墙、QoS等。 经典案例 关键说明 用于客户端和核心业务服务器的互联互通支持IP接入控…...

threejs:document.createElement创建标签后css设置失效

vue3threejs,做一个给模型批量CSS2D标签的案例,在导入模型的js文件里,跟着课程写的代码如下: import * as THREE from three; // 引入gltf模型加载库GLTFLoader.js import { GLTFLoader } from three/addons/loaders/GLTFLoader.…...

安装2018版本的petalinux曲折经历

具体操作步骤 1.安装VMware Workstation15.5的虚拟机2.安装Ubuntu16.04.43.配置Ubuntu的环境1.可以复制粘贴的指令2.安装vim 4.准备安装petalinux1.先配置petalinux的安装环境2.替换镜像源1.备份原始的软件源2.从以下镜像点找到合适自己系统版本的源3.执行替换镜像源1.打开源文…...

return和print

目录 1.print的用法 2.return的用法 3. print 和 return 的区别 4.总结 1.print的用法 print 是一个函数,用于将信息输出到控制台(终端)。它主要用于显示程序运行的结果,方便用户查看。print 的作用是输出内容,而不…...

springboot411-基于Java的自助客房服务系统(源码+数据库+纯前后端分离+部署讲解等)

💕💕作者: 爱笑学姐 💕💕个人简介:十年Java,Python美女程序员一枚,精通计算机专业前后端各类框架。 💕💕各类成品Java毕设 。javaweb,ssm&#xf…...

跨平台文件互传工具

一款高效便捷的文件互传工具,支持在线快速传输各种文件格式,无需注册,直接分享文件。适用于个人和团队间的文件共享,跨平台支持,轻松解决文件传输问题。免费的文件传输服务,让你的工作更高效。 gotool...

final 关键字在不同上下文中的用法及其名称

1. final 变量 名称:final 变量(常量)。 作用:一旦赋值后,值不能被修改。 分类: final 实例变量:必须在声明时或构造函数中初始化。 final 静态变量:必须在声明时或静态代码块中初…...

Elasticsearch:使用阿里云 AI 服务进行嵌入和重新排名

作者:来自 Elastic Toms Mura 将阿里云 AI 服务功能与 Elastic 结合使用。 更多阅读,请参阅 “Elasticsearch:使用阿里 infererence API 及 semantic text 进行向量搜索”。 在本文中,我们将介绍如何将阿里云 AI 功能与 Elastics…...

【愚公系列】《鸿蒙原生应用开发从零基础到多实战》004-TypeScript 中的泛型

标题详情作者简介愚公搬代码头衔华为云特约编辑,华为云云享专家,华为开发者专家,华为产品云测专家,CSDN博客专家,CSDN商业化专家,阿里云专家博主,阿里云签约作者,腾讯云优秀博主&…...

IP属地是通过卫星定位的吗?如何保护用户隐私

在数字时代,网络空间成为了人们日常生活不可或缺的一部分。随着社交媒体、在线服务等平台的兴起,用户IP属地信息的重要性日益凸显。然而,关于IP属地是如何确定的,尤其是是否通过卫星定位这一问题,却常常引发公众的疑问…...

【云原生之kubernetes实战】在k8s环境中高效部署Vikunja任务管理工具(含数据库配置)

【【云原生之kubernetes实战】在k8s环境中高效部署Vikunja任务管理工具(含数据库配置) 前言一、Vikunja介绍1.1 Vikunja简介1.2 Vikunja主要特点1.3 使用场景二、相关知识介绍2.1 本次实践存储介绍2.2 k8s存储介绍三、本次实践介绍3.1 本次实践简介3.2 本次环境规划3.3 部署前…...

php序列化与反序列化

文章目录 基础知识魔术方法:在序列化和反序列化过程中自动调用的方法什么是 __destruct() 方法?何时触发 __destruct() 方法?用途:语法示例: 反序列化漏洞利用前提条件一些绕过策略绕过__wakeup函数绕过正则匹配绕过相…...

视频级虚拟试衣技术在淘宝的产品化实践

作为一种新的商品表现形态,内容几乎存在于手淘用户动线全流程,例如信息流种草内容、搜索消费决策内容、详情页种草内容等。通过低成本、高时效的AIGC内容生成能力,能够从供给端缓解内容生产成本高的问题,通过源源不断的低成本供给…...

音视频-WAV格式

1. WAV格式说明: 2. 格式说明: chunkId:通常是 “RIFF” 四个字节,用于标识文件类型。(wav文件格式表示)chunkSize:表示整个文件除了chunkId和chunkSize这 8 个字节外的其余部分的大小。Forma…...

c++ std::array使用笔记

c array使用笔记 1. 构造2. 成员类型3. 元素访问4. 容量相关5. 填充与交换6. 比较操作7. 迭代器总结 array 是 C 标准库中的一个容器模板,它封装了一个固定长度的内建数组,并提供了类似于其他 STL 容器的接口。与内建数组相比, array 提供了…...

第39天:安全开发-JavaEE应用SpringBoot框架Actuator监控泄漏Swagger自动化

时间轴: Java知识点: 功能:数据库操作,文件操作,序列化数据,身份验证,框架开发,第三方组件使用等. 框架库:MyBatis,SpringMVC,SpringBoot&#xf…...

浏览器JS打不上断点,一点就跳到其他文件里。浏览器控制台 js打断点,指定的位置打不上断点,一打就跳到其他地方了。

关闭JavaScript 源代码映射,F12开发者模式 设置->偏好设置->源代码/来源->JavaScript 源代码映射。 肯定不是这个原因导致的,但这个办法可以暂时解决问题,点完这个东西就隐藏了webpack,有懂的来讲讲。 又浪费一个小时…...

conda环境管理 kernel注册到jupyter notebook

本文核心目的:解决jupyter notebook找不到自己想要的指定conda环境 首先安装anaconda,在win搜索框打开anaconda prompt 按下ctrlc终止操作的时间很长。需要输入y来确认操作。 国内镜像源不能使用代理服务访问。要尝试代理服务的打开与关闭 下面是cond…...

【SpringBoot】【log】 自定义logback日志配置

前言:默认情况下,SpringBoot内部使用logback作为系统日志实现的框架,将日志输出到控制台,不会写到日志文件。如果在application.properties或application.yml配置,这样只能配置简单的场景,保存路径、日志格…...

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …...

超短脉冲激光自聚焦效应

前言与目录 强激光引起自聚焦效应机理 超短脉冲激光在脆性材料内部加工时引起的自聚焦效应&#xff0c;这是一种非线性光学现象&#xff0c;主要涉及光学克尔效应和材料的非线性光学特性。 自聚焦效应可以产生局部的强光场&#xff0c;对材料产生非线性响应&#xff0c;可能…...

在HarmonyOS ArkTS ArkUI-X 5.0及以上版本中,手势开发全攻略:

在 HarmonyOS 应用开发中&#xff0c;手势交互是连接用户与设备的核心纽带。ArkTS 框架提供了丰富的手势处理能力&#xff0c;既支持点击、长按、拖拽等基础单一手势的精细控制&#xff0c;也能通过多种绑定策略解决父子组件的手势竞争问题。本文将结合官方开发文档&#xff0c…...

WEB3全栈开发——面试专业技能点P2智能合约开发(Solidity)

一、Solidity合约开发 下面是 Solidity 合约开发 的概念、代码示例及讲解&#xff0c;适合用作学习或写简历项目背景说明。 &#x1f9e0; 一、概念简介&#xff1a;Solidity 合约开发 Solidity 是一种专门为 以太坊&#xff08;Ethereum&#xff09;平台编写智能合约的高级编…...

Android15默认授权浮窗权限

我们经常有那种需求&#xff0c;客户需要定制的apk集成在ROM中&#xff0c;并且默认授予其【显示在其他应用的上层】权限&#xff0c;也就是我们常说的浮窗权限&#xff0c;那么我们就可以通过以下方法在wms、ams等系统服务的systemReady()方法中调用即可实现预置应用默认授权浮…...

Swagger和OpenApi的前世今生

Swagger与OpenAPI的关系演进是API标准化进程中的重要篇章&#xff0c;二者共同塑造了现代RESTful API的开发范式。 本期就扒一扒其技术演进的关键节点与核心逻辑&#xff1a; &#x1f504; 一、起源与初创期&#xff1a;Swagger的诞生&#xff08;2010-2014&#xff09; 核心…...

【开发技术】.Net使用FFmpeg视频特定帧上绘制内容

目录 一、目的 二、解决方案 2.1 什么是FFmpeg 2.2 FFmpeg主要功能 2.3 使用Xabe.FFmpeg调用FFmpeg功能 2.4 使用 FFmpeg 的 drawbox 滤镜来绘制 ROI 三、总结 一、目的 当前市场上有很多目标检测智能识别的相关算法&#xff0c;当前调用一个医疗行业的AI识别算法后返回…...

python报错No module named ‘tensorflow.keras‘

是由于不同版本的tensorflow下的keras所在的路径不同&#xff0c;结合所安装的tensorflow的目录结构修改from语句即可。 原语句&#xff1a; from tensorflow.keras.layers import Conv1D, MaxPooling1D, LSTM, Dense 修改后&#xff1a; from tensorflow.python.keras.lay…...

适应性Java用于现代 API:REST、GraphQL 和事件驱动

在快速发展的软件开发领域&#xff0c;REST、GraphQL 和事件驱动架构等新的 API 标准对于构建可扩展、高效的系统至关重要。Java 在现代 API 方面以其在企业应用中的稳定性而闻名&#xff0c;不断适应这些现代范式的需求。随着不断发展的生态系统&#xff0c;Java 在现代 API 方…...

华为OD机试-最短木板长度-二分法(A卷,100分)

此题是一个最大化最小值的典型例题&#xff0c; 因为搜索范围是有界的&#xff0c;上界最大木板长度补充的全部木料长度&#xff0c;下界最小木板长度&#xff1b; 即left0,right10^6; 我们可以设置一个候选值x(mid)&#xff0c;将木板的长度全部都补充到x&#xff0c;如果成功…...