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

掌握Vim:Linux系统维护的瑞士军刀 - 常用命令深度解析

在Linux的世界里,Vim编辑器犹如一位沉默的剑客,它的命令就是那锋利的剑刃,能够在代码的海洋中劈波斩浪。对于每一位Linux系统用户来说,掌握Vim的常用命令,就如同获得了维护系统的瑞士军刀。今天,让我们一起深入Vim的内心世界,解锁那些使用频率最高的命令,让我们的系统维护之路更加得心应手。

一. Vim的启动与退出:启程与归途

1.启动Vim

  • vim filename:打开或创建一个文件。
  • vim -R filename:以只读模式打开文件。

2.退出Vim

  • :q:退出Vim,如果文件有修改则提示。
  • :q!:强制退出,不保存修改。
  • :wq 或 :x:保存修改并退出。

二. 光标移动:舞动在代码的海洋

  • hjkl:分别对应左、下、上、右移动光标。
  • 0:移动到行首。
  • $:移动到行尾。
  • gg:移动到文件开头。
  • G:移动到文件末尾。
  • Ctrl + f:向下翻页。
  • Ctrl + b:向上翻页。

三. 文本编辑:雕刻代码的艺术

1.插入模式

  • i:在光标前插入。
  • a:在光标后插入。
  • o:在当前行下方插入新行。
  • O:在当前行上方插入新行。

2.删除文本

  • x:删除光标所在字符。
  • dd:删除当前行。
  • dw:删除单词。
  • d$:删除到行尾。

3.复制与粘贴

  • yy:复制当前行。
  • yw:复制单词。
  • p:在光标后粘贴。
  • P:在光标前粘贴。

4.撤销与重做

  • u:撤销上一次操作。
  • Ctrl + r:重做被撤销的操作。

四. 搜索与替换:寻找与改变的艺术

1.搜索

  • /pattern:向下搜索模式。
  • ?pattern:向上搜索模式。
  • n:重复上一次搜索。
  • N:反向重复上一次搜索。

2.替换

  • :%s/old/new/g:全局替换文件中的“old”为“new”。
  • :s/old/new/g:替换当前行的“old”为“new”。

五. 高级功能:Vim的隐藏技能

1.多窗口编辑

  • :split 或 :sp:水平分割窗口。
  • :vsplit 或 :vsp:垂直分割窗口。
  • Ctrl + w + h/j/k/l:在窗口间切换。

2.宏录制

  • q{register}:开始录制宏到指定寄存器。
  • q:停止录制。
  • @{register}:执行寄存器中的宏。

3.自动补全

  • Ctrl + n:使用关键字自动补全。
  • Ctrl + x + Ctrl + f:文件名自动补全。

六.结语

Vim编辑器不仅仅是一个文本编辑工具,它是Linux系统维护的得力助手,是每一位系统管理员手中的利器。通过掌握这些常用命令,你将能够在代码的世界中自由穿梭,高效地完成系统维护工作。记住,Vim的学习之路永无止境,每一次的深入探索都将使你更加强大。现在,让我们握紧这把瑞士军刀,开启Linux系统维护的新篇章吧!

相关文章:

掌握Vim:Linux系统维护的瑞士军刀 - 常用命令深度解析

在Linux的世界里,Vim编辑器犹如一位沉默的剑客,它的命令就是那锋利的剑刃,能够在代码的海洋中劈波斩浪。对于每一位Linux系统用户来说,掌握Vim的常用命令,就如同获得了维护系统的瑞士军刀。今天,让我们一起…...

C++数组和指针应用实例 -- 实现计算器

C 的数组和C 语言一样&#xff0c;C完全兼容C语言的指针&#xff0c;但是会多出一个this指针 用C实现计算器 case1: 基本实现: #include <iostream>using namespace std;int add(int a,int b) {return ab; }int minu(int a,int b) {return a-b; }int mul(int a,int b) …...

【多电压流程 Multivoltage Flow】- 5.特定工具使用建议(6.Formality)

使用Formality进行形式验证 Formality支持具有低功耗特性的功能等效性检查,如时钟门控、多阈值电压(multiple-Vt)、多电压供电、电源门控以及动态电压和频率缩放。Formality能够识别低功耗单元,例如隔离单元、电平转换器、始终开启单元、保持寄存器和电源门。 Formality支持…...

力扣 72. 编辑距离 python AC

动态规划 class Solution:def minDistance(self, word1, word2):size1 len(word1)size2 len(word2)dp [[0] * (size2 1) for _ in range(size1 1)]for i in range(1, size1 1):dp[i][0] dp[i - 1][0] 1for i in range(1, size2 1):dp[0][i] dp[0][i - 1] 1for i in…...

vue 发布项目

You are not allowed to force push code to a protected branch on this project. 分支做了保护&#xff0c;git中设置允许强制推送...

springBoot实现发送邮箱验证码 redis缓存源码

要在Spring Boot中实现发送邮箱验证码并使用Redis进行缓存&#xff0c;你需要遵循几个步骤。以下是一个简化的示例&#xff0c;展示了如何整合这些功能&#xff1a; 添加依赖 首先&#xff0c;确保你的pom.xml&#xff08;Maven&#xff09;或build.gradle&#xff08;Gradle…...

QT--4

QT 使用定时器完成闹钟 #include "widget.h" #include "ui_widget.h"void Widget::timestart() {timer.start(1000); }void Widget::timeend() {timer.stop(); }Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(t…...

感染了后缀为.360勒索病毒如何应对?数据能够恢复吗?

导言&#xff1a; 在数字化时代的浪潮中&#xff0c;网络安全问题如同暗流涌动&#xff0c;威胁着每一个互联网用户的安宁。而近年来&#xff0c;一种名为.360勒索病毒的新型网络威胁逐渐浮出水面&#xff0c;以其独特的加密方式和狡猾的传播策略&#xff0c;给全球网络安全带…...

JavaSE多态

多态&#xff1a;一个对象在不同条件下表示的不同形态就叫多态。在程序中&#xff0c;多态是父类引用指定子类对象就叫多态。 多态是面向对象程序设计中的第三个特征 // 多态 class Father {String name;public void desc() {System.out.println("----------");Sys…...

M 有效算法

M 有效算法 本题考验二分知识&#xff0c;思路是二分k的取值&#xff0c;就按第一组样例来说当我们k取值为1的时候我们遍历数组想让|8-x|<k1的话x的取值范围是7-9&#xff0c;想让|3-x|<k2的话x的取值范围是1-5&#xff0c;两者x的区间不重合&#xff0c;说明肯定没有x能…...

知识付费系统制作,托管机构如何提高体验课转化率?要注意什么?

现在托管机构非常流行&#xff0c;一所学校周边就会出现好几家托管机构&#xff0c;所以竞争非常激烈。很多托管机构为了扩大生源&#xff0c;会选择体验课来让学生体验&#xff0c;至于如何提高体验课转化率&#xff0c;就看机构的本事了。 1、市场调研&#xff1a;摸清当前我…...

【iOS逆向与安全】网上gw如何自动登录与签到SM2,SM3,SM4算法加解密

1.下载 app 2.frida 调试 3.抓包查看接口 4.分析加密数据 5.易语言编写代码 1 .开始下载 下载好发现有越狱检测&#xff0c;检测点为&#xff1a; -[AppDelegate isJailBreak]; 于是编写插件xm代码 : %hook AppDelegate- (void)isJailBreak{NSLog("AppDelegate is…...

《CKA/CKAD应试指南/从docker到kubernetes 完全攻略》学习笔记 第14章 包管理helm v3

前言 考试大纲: 了解helm是如何工作的,从而实现快速部署应用 本章要点: 考点1:添加helm源 考点2:使用helm 部署应用 前面在使用wordpress + mysql 部署博客应用的时候,需要做许多工作,需要每个pod创建pv和pvc,然后分别创建每个应用pod及svc,整个过程非常麻烦. 如果搭建博客的…...

蓝桥杯备战.19有奖问答dfs

P9230 [蓝桥杯 2023 省 A] 填空问题 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) #include<bits/stdc.h> using namespace std; #define endl \n //#define int long long const int N 2e510; int a[N],w[N]; int ans 0; void dfs(int score,int cnt) {if(cnt>3…...

【JS红宝书学习笔记】第1、2章 初识JS

第1章 什么是JavaScript JavaScript 是一门用来与网页交互的脚本语言&#xff0c;包含以下三个组成部分。 ECMAScript&#xff1a;由 ECMA-262 定义并提供核心功能。文档对象模型&#xff08;DOM&#xff09;&#xff1a;提供与网页内容交互的方法和接口。浏览器对象模型&…...

学习java

在实验室看见这本书&#xff0c;无聊看了下&#xff0c;写出了第一个java代码 成功下载了eclipse并且汉化。 写了自己的第一个java程序&#xff1a; package ttttt;public class ttttt {public static void main(String[] args) {System.out.println("hello world")…...

Redis日常维护流程及技巧:确保稳定性与性能

目录 一、监控和报警设置 1.实时监控&#xff1a;洞察Redis的脉搏 &#xff08;1&#xff09;. 资源使用监控 &#xff08;2&#xff09;. 数据访问模式监控 &#xff08;3&#xff09;. 持久化监控 &#xff08;4&#xff09;. 客户端连接 2.报警机制&#xff1a;快速响…...

牛客华为机试题——难度:入门(python实现)

HJ7 取近似值 HJ9 提取不重复的整数 HJ46 截取字符串 HJ58 输入n个整数&#xff0c;输出其中最小的k个 HJ101 输入整型数组和排序标识&#xff0c;对其元素按照升序或降序进行排序 HJ7 取近似值 描述&#xff1a;写出一个程序&#xff0c;接受一个正浮点数值&#xff0c;输…...

数据结构与算法学习笔记之线性表五---循环链表的表示和实现(C++)

目录 前言 1.双向链表的定义 2.双向链表的表示和实现 1.定义 2.初始化 3.销毁 4.清空 5.表长 6.获取数据元素 7.前驱节点 8.后继节点 9.插入 10.删除 11.遍历 12.完整代码 前言 记录下双向链表的表示和实现。 1.循环链表的定义 循环链表(circular linked list)…...

微信小程序生命周期揭秘:从启动到消亡的全过程剖析【附代码】

微信小程序生命周期揭秘&#xff1a;从启动到消亡的全过程剖析 一、小程序生命周期概览核心生命周期函数 二、深入理解生命周期回调2.1 onLoad: 首次亮相的准备2.2 onShow: 重登舞台的瞬间2.3 onReady: 舞台就绪&#xff0c;静待表演2.4 onHide & onUnload: 谨慎离场&#…...

Llama-3.2V-11B-cot惊艳案例:电影截图角色关系推演与剧情发展预测展示

Llama-3.2V-11B-cot惊艳案例&#xff1a;电影截图角色关系推演与剧情发展预测展示 1. 视觉推理工具简介 Llama-3.2V-11B-cot是基于Meta多模态大模型开发的高性能视觉推理工具&#xff0c;专为双卡4090环境深度优化。该工具不仅修复了视觉权重加载的关键问题&#xff0c;还支持…...

Qwen2.5-VL-7B-Instruct实操手册:对话历史自动保存+一键清空功能详解

Qwen2.5-VL-7B-Instruct实操手册&#xff1a;对话历史自动保存一键清空功能详解 1. 开篇&#xff1a;你的全能视觉助手来了 今天给大家介绍一个特别实用的工具——基于Qwen2.5-VL-7B-Instruct多模态大模型的视觉交互工具。这个工具专门为RTX 4090显卡优化过&#xff0c;用上了…...

OpCore-Simplify:智能配置驱动的OpenCore EFI自动化构建工具

OpCore-Simplify&#xff1a;智能配置驱动的OpenCore EFI自动化构建工具 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify &#x1f914; 配置黑苹果的痛…...

XC6206-1.8V是什么?有哪些作用?

本文主要介绍XC6206-1.8V是什么&#xff1f;有哪些作用&#xff1f;XC6206-1.8V是一款超低功耗、高精度的固定输出低压差线性稳压器&#xff08;LDO&#xff09;&#xff0c;核心作用是把较高电压转换成稳定的1.8V输出&#xff0c;专门为电池供电和低功耗设备设计。图文来源&am…...

避开这些坑!高德DragRoute插件获取路线坐标的5个常见问题解决方案

高德地图DragRoute插件实战&#xff1a;路线坐标获取的深度避坑指南 当开发者需要在地图上绘制复杂路线时&#xff0c;高德地图的DragRoute插件无疑是个强大工具。但在实际项目中&#xff0c;从简单的A到B路径绘制&#xff0c;到包含多个途经点的复杂路线坐标获取&#xff0c;开…...

从YOLOv5到YOLOv8:停车位检测模型演进与实战性能对比

1. YOLO系列模型的技术演进路径 YOLO&#xff08;You Only Look Once&#xff09;系列模型作为目标检测领域的标杆算法&#xff0c;从2015年诞生至今已经经历了多次重大迭代。每次版本更新都带来了显著的性能提升和架构创新&#xff0c;这使得YOLO系列在实时目标检测任务中始终…...

绿色低碳+高效交付:中集模块化数据中心用实力印证中国方案全球竞争力

随着人工智能与绿色转型成为全球经济增长核心引擎&#xff0c;高算力需求正推动数据中心建设向预制化、高效能方向加速演进。中集集团&#xff08;000039.SZ/2039.HK&#xff09;凭借工业化制造与全球交付优势&#xff0c;2025年在模块化数据中心&#xff08;AIDC&#xff09;领…...

计算机网络 之 【自定义协议、序列化与反序列化】(C++使用JSON示例)

目录 1.自定义协议与序列化/反序列化 2.Json简介 Json是什么 第三方库提供&#xff0c;使用时包含头文件 JSON 的数据类型 JSON结构示例 C使用JSON示例 1.自定义协议与序列化/反序列化 协议的必要性 协议是通信双方的约定&#xff0c;它定义了数据的格式和含义&#xff…...

3分钟搞定!Windows 11 LTSC 24H2微软商店终极安装指南

3分钟搞定&#xff01;Windows 11 LTSC 24H2微软商店终极安装指南 【免费下载链接】LTSC-Add-MicrosoftStore Add Windows Store to Windows 11 24H2 LTSC 项目地址: https://gitcode.com/gh_mirrors/ltscad/LTSC-Add-MicrosoftStore 你是否正在使用Windows 11 24H2 LTS…...

【限时公开】20年农业AI工程师压箱底的17条精度校验铁律:从田间采集到模型上线零容错实践手册

第一章&#xff1a;农业图像识别精度校验的底层逻辑与行业特殊性农业图像识别并非通用计算机视觉任务的简单迁移&#xff0c;其精度校验需直面田间场景固有的复杂性&#xff1a;光照剧烈波动、作物生长阶段连续变化、病斑形态高度异质、背景杂草与土壤纹理干扰显著。这些因素共…...