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

《鸟哥的Linux私房菜基础篇》---5 vim 程序编辑器

目录

一、vim程序编辑器的简介

二、命令模式快捷键(默认模式)

1、光标移动

2、编辑操作

3、搜索与替换

三、插入模式快捷键

四、底行模式快捷键(按:进入)

五、高级技巧

1、分屏操作

2、多文件编辑

3、可视化模式


一、vim程序编辑器的简介

1、在Linux的vi编辑器中,快捷键是提高编辑效率的关键。

2、vi是原始的文本编辑器,而vim(Vi IMproved)是vi的增强版,提供了更多的功能和快捷键。用户可能实际上使用的是vim。

vi有三种主要模式:命令模式、插入模式和底行模式。

二、命令模式快捷键(默认模式)

1、光标移动
捷键功能说明
h / 左移一个字符
j / 下移一行
k / 上移一行
l / 右移一个字符
w跳到下一个单词开头
b跳到上一个单词开头
e跳到当前单词结尾
0跳到行首(绝对行首)
^跳到行首的非空白字符
$跳到行尾
Ctrl + f向下翻页(Page Down)
Ctrl + b向上翻页(Page Up)
Ctrl + d向下滚动半屏
Ctrl + u向上滚动半屏
G跳到文件末尾
nG(如 5G跳到第 n 行
gg跳到文件开头
2、编辑操作
快捷键功能说明
i进入插入模式(光标前插入)
a进入插入模式(光标后插入)
o在当前行下方插入新行
O在当前行上方插入新行
x删除光标所在字符
dd删除整行
ndd(如 3dd删除 n 行
yy复制整行
nyy(如 3yy复制 n 行
p粘贴到光标后
P粘贴到光标前
u撤销上一次操作
Ctrl + r重做(恢复撤销)
J合并当前行和下一行
~切换光标所在字符的大小写
3、搜索与替换
快捷键功能说明
/pattern向前搜索 pattern
?pattern向后搜索 pattern
n跳到下一个匹配项
N跳到上一个匹配项
:%s/old/new/g全局替换 old 为 new
:%s/old/new/gc全局替换并确认每个替换

三、插入模式快捷键

快捷键功能说明
Esc退出插入模式,返回命令模式
Ctrl + o暂时退出插入模式,执行一个命令模式命令后返回

四、底行模式快捷键(按:进入)

快捷键功能说明
:w保存文件
:q退出编辑器(未修改时)
:q!强制退出(不保存修改)
:wq 或 :x保存并退出
:set nu显示行号
:set nonu隐藏行号
:set ts=4设置 Tab 为 4 个空格
:set expandtab将 Tab 转换为空格
:s/old/new/g替换当前行所有 old 为 new

五、高级技巧

1、分屏操作
  • :sp 或 :split:水平分屏。
  • :vs 或 :vsplit:垂直分屏。
  • Ctrl + w + h/j/k/l:在分屏间切换。
2、多文件编辑
  • :e filename:打开新文件。
  • :bn 或 :bp:切换到下一个/上一个文件。
3、可视化模式
  • v:进入字符可视化模式(选择文本)。
  • V:进入行可视化模式。
  • Ctrl + v:进入块可视化模式。

掌握这些快捷键后,你可以在 vi/vim 中实现高效的文本编辑。

相关文章:

《鸟哥的Linux私房菜基础篇》---5 vim 程序编辑器

目录 一、vim程序编辑器的简介 二、命令模式快捷键(默认模式) 1、光标移动 2、编辑操作 3、搜索与替换 三、插入模式快捷键 四、底行模式快捷键(按:进入) 五、高级技巧 1、分屏操作 2、多文件编辑 3、可视化…...

spring+k8s 功能说明

以下是一个结合 Kubernetes(k8s) 和 Spring Boot 的完整实例,涵盖应用开发、容器化、部署到 Kubernetes 集群的全流程。 1. 创建 Spring Boot 应用 1.1 项目初始化 使用 Spring Initializr 生成一个简单的 REST API 项目: • 依…...

Enovia许可分析的自动化解决方案

随着企业产品生命周期管理(PLM)需求的不断演变,Enovia许可分析已成为确保资源优化和合规性的关键环节。然而,传统的手动许可分析方法往往效率低下、易出错,并且难以应对大规模数据。为了解决这一挑战,Enovi…...

【Agent】Dify Docker 安装问题 INTERNAL SERVER ERROR

总结:建议大家选择稳定版本的分支,直接拉取 master 分支,可能出现一下后面更新代码导致缺失一些环境内容。 启动报错 一直停留在 INSTALL 界面 我是通过 Docker 进行安装的,由于项目开发者不严谨导致,遇到一个奇怪的…...

【学Rust写CAD】11 2D CAD可用rust库

使用 Rust 开发 2D CAD 应用时,选择合适的库是关键。以下是一些适合用于 2D CAD 开发的 Rust 库和工具,涵盖图形渲染、几何计算、用户界面等方面: 图形渲染 lyon 简介: lyon 是一个用于 2D 图形渲染的 Rust 库,支持路径填充、描边…...

怎样基于安卓部署deepseek?

要在安卓设备上部署DeepSeek(或者类似的深度学习模型),您需要将模型从开发环境迁移到安卓应用中。具体步骤涉及将深度学习模型转化为安卓设备能够运行的格式,并配置安卓应用以支持这种模型的运行。以下是一个简化的步骤指南&#…...

【Excel使用技巧】某列保留固定字段或内容

目录 ✅ 方法一:使用 Excel 公式提取 body 部分 🔍 解释: ✅ 方法二:批量处理整列数据 🚨 注意事项 🚨 处理效果 我想保留Excel某一列的固定内容,比如原内容是: thread entry i…...

a-date-picker 格式化日期格式 YYYY-MM-DD HH:mm:ss

<template><a-range-pickerv-model:value"dateRange":show-time"{ format: HH:mm:ss, // 时间部分格式defaultValue: [moment(00:00:00, HH:mm:ss), moment(23:59:59, HH:mm:ss)] // 默认时间范围}"format"YYYY-MM-DD HH:mm:ss" // 整体…...

vue3,element-plus 表格搜索过滤数据

1、表格数据 // 表格数据 import type { User } from "/interface"; const tableData ref<User[]>([]); 2、 表格搜索过滤数据 // 搜索内容 const search ref(""); // 表格过滤数据 const tableFilterData computed(() >tableData.value.fi…...

WordPress 性能优化技术指南:打造快速加载的网站

WordPress 是全球最流行的内容管理系统&#xff08;CMS&#xff09;&#xff0c;以其灵活性和易用性深受用户喜爱。然而&#xff0c;随着网站内容和功能的增加&#xff0c;加载速度可能会变慢&#xff0c;影响用户体验和搜索引擎排名。在2025年的数字化环境中&#xff0c;网站性…...

vue中上传接口file表单提交二进制文件流

1.使用elementui上传组件 要做一个选择文件后&#xff0c;先不上传&#xff0c;等最后点击确定后&#xff0c;把file二进制流及附加参数一起提交上去。 首先使用elementui中的上传组件&#xff0c;设置auto-uploadfalse&#xff0c;也就是选择文件后不立刻上传。 <el-uplo…...

【学习笔记】卷积网络简介及原理探析

作者选择了由 Ian Goodfellow、Yoshua Bengio 和 Aaron Courville 三位大佬撰写的《Deep Learning》(人工智能领域的经典教程&#xff0c;深度学习领域研究生必读教材),开始深度学习领域学习&#xff0c;深入全面的理解深度学习的理论知识。 之前的文章参考下面的链接&#xf…...

element-plus中Cascader级联选择器组件的使用

目录 一.基本使用 二.进阶使用 1.如何获取最后一级选项的值&#xff1f; 2.如何让级联选择器的输入框只展示最后一级&#xff1f; 三.实战 1.场景描述 2.实现步骤 ①设计后端返回值Vo ②编写controller ③编写service ④编写mapper层 ⑤在前端&#xff0c;通过发送…...

计算机网络的分类——按照按拓扑结构分类

计算机的拓扑结构是引用拓扑学中研究和大小、形状无关的点、线关系的方法&#xff0c;将网络中的计算机和通信设备抽象为一个点&#xff0c;把传输介质抽象成一条线&#xff0c;由点和线组成的几何图形就是计算机网络的拓扑结构。计算机网络的拓扑结构主要由通信子网决定&#…...

【华为Pura先锋盛典】华为Pura X“阔折叠”手机发布:首次全面搭载HarmonyOS 5

文章目录 前言一、阔感体验&#xff0c;大有不同二、鸿蒙AI&#xff0c;大有智慧三、便携出行&#xff0c;大有不同四、首款全面搭载 HarmonyOS 5 的手机五、卓越性能&#xff0c;可靠安心六、红枫影像&#xff0c;大放光彩预热&#xff1a;鸿蒙电脑HarmonyOS 5 升级计划小结 前…...

MQ,RabbitMQ,MQ的好处,RabbitMQ的原理和核心组件,工作模式

1.MQ MQ全称 Message Queue&#xff08;消息队列&#xff09;&#xff0c;是在消息的传输过程中 保存消息的容器。它是应用程序和应用程序之间的通信方法 1.1 为什么使用MQ 在项目中&#xff0c;可将一些无需即时返回且耗时的操作提取出来&#xff0c;进行异步处理&#xff0…...

ETL:数据清洗、规范化和聚合的重要性

在当今这个数据呈爆炸式增长的时代&#xff0c;数据已成为企业最为宝贵的资产之一。然而&#xff0c;数据的海量增长也伴随着诸多问题&#xff0c;如数据来源多样、结构复杂以及质量问题等&#xff0c;这些问题严重阻碍了数据的有效处理与深度分析。在此背景下&#xff0c;ETL&…...

电机控制常见面试问题(十八)

文章目录 一.电机控制高级拓扑结构1.LLC 二.谈谈电压器饱和后果三.电压器绕组连接方式的影响四.有源逆变的条件 一.电机控制高级拓扑结构 1.LLC LLC是什么&#xff1f;—— 一个会"变魔术"的电源盒子 想象你有一个魔法盒子&#xff0c;能把电池的电压变大或变小&…...

stable diffusion本地安装

1. 基本环境准备 安装conda 环境 pytorch基础学习-CSDN博客 创建虚拟环境&#xff1a; conda create -n sd python3.10 一定要指定用3.10&#xff0c;过高的版本会提示错误&#xff1a; 激活启用环境&#xff1a; conda activate sd 设置pip国内镜像源&#xff1a; pip conf…...

【内网穿透】Linux部署FRP0.61.2实现rk3566 Wechat iPad协议内网穿透教程

写在前面 FRP&#xff08;Fast Reverse Proxy&#xff09;是一个由Go语言编写的开源项目&#xff0c;用于内网穿透&#xff0c;即通过公网服务器将内网服务暴露给外部访问。这对于需要在内网环境中部署但又希望外部用户能够访问这些服务的场景非常有用 Github&#xff1a;htt…...

Flutter项目升级到指定版本的详细步骤指南

一、升级前的准备工作 备份项目 使用Git提交当前所有修改&#xff1a;git commit -am "Pre-upgrade backup"或直接复制项目文件夹 查看当前环境信息 flutter --version flutter doctor二、升级Flutter SDK到指定版本 方法1&#xff1a;通过版本管理工具升级&#x…...

从零构建大语言模型全栈开发指南:第一部分:数学与理论基础-1.1.3模型参数与超参数:权重、偏置、学习率与正则化策略

👉 点击关注不迷路 👉 点击关注不迷路 👉 点击关注不迷路 文章大纲 1.1.3 模型参数与超参数:权重、偏置、学习率与正则化策略1. 模型参数:权重与偏置的数学本质1.1 参数的定义与作用2. 超参数:学习率与训练动态控制2.1 学习率的核心作用3. 正则化策略:抑制过拟合的数…...

VM虚拟机安装Ubuntu系统

前言 我现在装的Ubuntu总是死机&#xff0c;经常黑屏&#xff0c;所以我决定换个版本&#xff0c;顺便写一下笔记&#xff0c;给大家分享如何安装虚拟机 下载 这里我选择的是Ubuntu 22.04.5 LTS&#xff0c;下载链接&#xff1a;Ubuntu 22.04.5 LTS 如果访问不了网站的话&…...

从JVM底层揭开Java方法重载与重写的面纱:原理、区别与高频面试题突破

&#x1f31f;引言&#xff1a;一场由方法调用引发的"血案" 2018年&#xff0c;某电商平台在"双十一"大促期间遭遇严重系统故障。 技术团队排查发现&#xff0c;问题根源竟是一个继承体系中的方法重写未被正确处理&#xff0c;导致订单金额计算出现指数级…...

Driver具体负责什么工作

在 Apache Spark 中&#xff0c;Driver&#xff08;驱动程序&#xff09; 是 Spark 应用的核心控制节点&#xff0c;负责协调整个应用的执行流程。它是用户编写的 Spark 应用程序&#xff08;如 main() 方法&#xff09;的入口点&#xff0c;直接决定了任务的调度、资源分配和结…...

python3使用lxml解析xml时踩坑记录

文章目录 你的 XML 数据解析 XML----------------------------1. 获取 mlt 根元素的属性--------------------------------------------------------2. 获取 chain 元素的属性--------------------------------------------------------3. 获取所有 property 的值-------------…...

MySQL 中,查看执行频次、慢查询日志、SHOW PROFILE和 EXPLAIN性能分析和优化

在 MySQL 中,查看执行频次、慢查询日志、SHOW PROFILE 和 EXPLAIN 是性能分析和优化的核心工具。以下是它们的详细用法和高级语法: 一、查看 SQL 执行频次 通过 SHOW STATUS 命令可以查看 SQL 的执行频次,帮助定位高频查询。 1. 查看全局 SQL 执行频次 SHOW GLOBAL STATU…...

芋道 Spring Cloud Alibaba 消息队列 RocketMQ 入门

1. 概述 RocketMQ 是一款开源的分布式消息系统&#xff0c;基于高可用分布式集群技术&#xff0c;提供低延时的、高可靠的消息发布与订阅服务。同时&#xff0c;广泛应用于多个领域&#xff0c;包括异步通信解耦、企业解决方案、金融支付、电信、电子商务、快递物流、广告营销…...

【Go】切片

知识点关键概念切片声明var slice []int初始化切片slice : []int{1,2,3}make() 创建切片make([]int, len, cap)获取长度和容量len(slice), cap(slice)追加元素slice append(slice, value)切片截取slice[start:end]&#xff08;返回子切片&#xff09;拷贝切片copy(dest, src)&…...

html css js网页制作成品——HTML+CSS+js迪奥口红网站网页设计(4页)附源码

目录 一、&#x1f468;‍&#x1f393;网站题目 二、✍️网站描述 三、&#x1f4da;网站介绍 四、&#x1f310;网站效果 五、&#x1fa93; 代码实现 &#x1f9f1;HTML 六、&#x1f947; 如何让学习不再盲目 七、&#x1f381;更多干货 一、&#x1f468;‍&#x1f…...