Linux命令更新-Vim 编辑器

简介

Vim 是 Linux 系统中常用的文本编辑器,功能强大、可扩展性强,支持多种编辑模式和操作命令,被广泛应用于程序开发、系统管理等领域。

1. Vim 命令模式

Vim 启动后默认进入命令模式,此时键盘输入的命令将用于控制编辑器本身,而不是直接编辑文本。命令模式下常用的命令包括:

  • 光标移动:

  • h: 左移一个字符

  • l: 右移一个字符

  • j: 下移一行

  • k: 上移一行

  • 0: 移至行首

  • $: 移至行尾

  • gg: 移至文件首行

  • G: 移至文件尾行

  • Ctrl+v: 进入可视化模式,可以使用方向键移动光标

  • 删除操作:

  • x: 删除当前光标所在字符

  • dd: 删除当前行

  • D: 删除从当前光标到行尾的所有内容

  • dw: 删除从当前光标到下一个单词末尾的所有内容

  • d$: 删除从当前光标到行尾的所有内容

  • 复制操作:

  • y: 复制当前光标所在字符

  • yy: 复制当前行

  • Y: 复制从当前光标到文件尾部的所有内容

  • yw: 复制从当前光标到下一个单词末尾的所有内容

  • y$: 复制从当前光标到行尾的所有内容

  • 粘贴操作:

  • p: 粘贴上次复制的内容

  • 撤销/重做:

  • u: 撤销上次操作

  • Ctrl+r: 重做上次撤销的操作

  • 其他命令:

  • :q: 退出 Vim 编辑器

  • :wq: 保存并退出 Vim 编辑器

  • :set nu: 显示行号

  • :set hlsearch: 高亮显示搜索结果

  • /pattern: 搜索文本内容

  • n: 向下查找下一个匹配项

  • N: 向上查找上一个匹配项

  • :w filename: 将当前文件内容保存为指定文件名

2. Vim 编辑模式

Vim 提供多种编辑模式,用于输入文本和进行编辑操作。常见模式包括:

  • 插入模式:

  • 按下 iaOo 等键进入插入模式,此时键盘输入的内容将直接插入文本。

  • 按下 Esc 键退出插入模式。

  • 替换模式:

  • 按下 rR 键进入替换模式,此时键盘输入的内容将替换当前光标所在字符或文本。

  • 按下 Esc 键退出替换模式。

  • 底线模式:

  • 按下 : 键进入底线模式,此时可以在命令行输入 Vim 命令。

  • 按下 Enter 键执行命令。

3. Vim 命令运维案例

案例一:修改配置文件

假设您需要修改 /etc/nginx/nginx.conf 文件中的配置项。

步骤:

  1. 打开配置文件:
vim /etc/nginx/nginx.conf

  1. 进入插入模式:
i

  1. 将需要修改的配置项修改为所需值。

  2. 保存并退出 Vim 编辑器:

:wq

案例二:搜索并替换文本

假设您需要在所有 PHP 文件中搜索并替换字符串 "old_value""new_value"

步骤:

  1. 打开所有 PHP 文件:
vim *.php

  1. 进入命令模式:
Esc

  1. 输入搜索命令:
/old_value

  1. 按下 nN 键查找下一个或上一个匹配项。

  2. 输入替换命令:

:s/old_value/new_value/g

  1. 保存并退出 Vim 编辑器:
:wq

案例三:使用宏命令进行重复操作

假设您需要多次删除当前行并将其内容插入到下一行。

步骤:

  1. 进入命令模式:
Esc

  1. 录制宏命令:
q

  1. 执行宏命令:
ddp

  1. 重复执行宏命令:
@10

解释:

  • q:开始录制宏命令

  • dd: 删除当前行

  • p: 将删除的内容粘贴到下一行

  • q: 结束录制宏命令

  • @10: 重复执行上次录制的宏命令 10 次

案例四:使用正则表达式进行复杂查找/替换

假设您需要在所有 CSS 文件中查找并替换所有匹配正则表达式 #\{([\w-]+)\} 的文本,将其替换为 \1.important

步骤:

  1. 打开所有 CSS 文件:
vim *.css

  1. 进入命令模式:
Esc

  1. 输入搜索命令:
/\#\{([\w-]+)\}/

  1. 输入替换命令:
:s/\#\{([\w-]+)\}/\1.important/g

  1. 保存并退出 Vim 编辑器:
:wq

解释:

  • #\{([\w-]+)\}:正则表达式,用于匹配以 # 开头、后面跟一个由字母、数字和下划线组成的单词、再跟一个 { 的文本。

  • \1:反向引用,表示匹配的第一个捕获组,即单词部分。

  • .important:替换文本,将匹配的单词后面追加 .important

  • g:全局替换,表示替换所有匹配的文本。

案例五:比较两个文件

假设您需要比较两个文件 /file1.txt/file2.txt 的差异。

步骤:

  1. 打开两个文件:
vim -d /file1.txt /file2.txt

  1. 进入比较模式:
:diffsplit

  1. 左右移动光标可以查看两个文件的差异。

  2. 按下 q 键退出比较模式。

4. Vim 高级特性

Vim 提供了丰富的功能和插件,可以满足不同用户的各种需求。以下是一些 Vim 的高级特性:

  • 可视化模式: 进入可视化模式后,可以使用方向键选择要操作的文本块,然后可以使用 dyp 等命令进行删除、复制、粘贴等操作。

  • 折叠: 可以将代码块折叠起来,隐藏不必要的部分,只显示重要内容。

  • 语法高亮: Vim 可以根据不同文件类型的语法规则对文本进行高亮显示,方便阅读和理解代码。

  • 代码补全: Vim 可以根据输入的文本内容提供建议,帮助用户快速完成代码输入。

  • 自定义配置: Vim 可以通过配置文件进行个性化配置,例如设置按键映射、配色方案等。

5. Vim 插件

Vim 拥有丰富的插件生态,可以扩展 Vim 的功能,满足各种使用需求。常用的插件管理器包括:

  • Pathogen: 传统插件管理器,使用简单。

  • Vundle: 功能强大,支持多种插件管理功能。

  • Plug: 轻量级插件管理器,易于使用。

6. Vim 学习资源

  • Vim 中文文档:https://yianwillis.github.io/vimcdoc/doc/usr_toc.html

  • Vim 在线教程:https://www.vim-adventures.com/

注意

  • 本文档仅介绍了 Vim 的基本使用方法和常见运维案例,并未涵盖所有功能和特性。

  • Vim 的学习需要循序渐进,建议从基础知识开始学习,逐步掌握高级特性。

  • 在使用 Vim 进行实际操作时,请注意备份文件,以免造成数据丢失。

总结

Vim 是一款功能强大、可扩展性强的文本编辑器,在 Linux 系统中得到了广泛应用。掌握 Vim 的使用技巧,可以提高工作效率和生产力。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

云计算【第一阶段(31)】PXE高效批量网络装机

一、系统安装 1.1、系统装机的三种引导方式 1. 硬盘 2. 光驱( u 盘) 3. 网络启动 pxe 1.2、系统安装过程 加载boot loader Boot Loader 是在操作系统内核运行之前运行的一段小程序。通过这段小程序,我们可以初始化硬件设备、建立内存空间的映…

解决mysql,Navicat for MySQL,IntelliJ IDEA之间中文乱码

使用软件版本 jdk-8u171-windows-x64 ideaIU-2021.1.3 mysql-essential-5.0.87-win32 navicat8_mysql_cs 这个问题我调试了好久,网上的方法基本上都试过了,终于是解决了。 三个地方结果都不一样。 方法一 首先大家可以尝试下面这种方法&#xff1a…

无人驾驶大热,新能源汽车智能化中的算网支持

来源新华社:百度“萝卜快跑”全无人驾驶汽车行驶在路上 当前,新能源汽车产业数智化已成为全球汽车产业数字化转型的焦点。一方面,随着人工智能、大数据、云计算等技术的深度融合,新能源汽车在自动驾驶、智能互联、能源管理等方面…

【自动驾驶汽车通讯协议】UART通信详解:理解串行数据传输的基石

文章目录 0. 前言1. 同步通讯与异步通讯1.1 同步通信1.2 异步通信 2. UART的数据格式3. 工作原理3.1 波特率和比特率3.2 UART的关键特性 4. UART在自动驾驶汽车中的典型应用4.1 UART特性4.2应用示例 5. 结语 0. 前言 按照国际惯例,首先声明:本文只是我自…

STM32MP135裸机编程:BOOT跳转到APP前关闭所有中断、清除所有中断挂起标志操作方法

0 前言 一般来说,MCU/SOC的BOOT在跳转到APP前都需要进行环境清理的操作,其中必须进行的一项操作便是关闭所有中断、清除所有中断挂起标志。本文介绍基于STM32MP135裸机编程下关闭所有中断、清除所有中断挂起标志的操作方法。 1 操作方法 STM32MP135裸…

关于Kafka Topic分区和Replication分配的策略

文章目录 1. Topic多分区2. 理想的策略3. 实际的策略4. 如何自定义策略 1. Topic多分区 如图,是一个多分区Topic在Kafka集群中可能得分配情况。 P0-RL代表分区0,Leader副本。 这个Topic是3分区2副本的配置。分区尽量均匀分在不同的Broker上&#xff0c…

怎么减少pdf的MB,怎么减少pdf的大小

在数字化时代,pdf文件因其格式稳定、跨平台兼容性强等特点而广受欢迎。然而,随着内容的丰富,pdf文件的大小也日益增大,给文件传输和存储带来了不少困扰。本文将为你介绍多种减小pdf文件大小的方法,帮助你轻松应对这一问…

【ChatGPT】深入解析Prompt提示词及如何高效使用ChatGPT

一、Prompt提示词是什么? 1.1 Prompt的定义 Prompt是人工智能领域中的一个关键概念,尤其在自然语言处理(NLP)和生成型AI模型中。简而言之,prompt是一段文本或指令,用于引导或启动AI模型的特定响应或操作。…

成为CMake砖家(2): macOS创建CMake本地文档的app

大家好,我是白鱼。 使用 CMake 的小伙伴, 有的是在 Windows 上, 还有的是在 macOS 上。之前咱们讲了 windows 上查看 cmake 本地 html 文档的方式, 这篇讲讲 macOS 上查看 cmake 本地 html 文档的方法。 1. 问题描述 当使用 CMa…

C1W1.LAB.Preprocessing+Word frequencies+Logistic_regression_model

理论课:C1W1.Sentiment Analysis with Logistic Regression 文章目录 预处理导入包Twitter dataset简介查看原始文本处理原始文本处理超链接、Twitter 标记和样式分词去除标点和停用词词干处理 process_tweet() 词频构建与可视化导入包加载数据集字典字典实例添加或…

什么是im即时通讯?WorkPlus im即时通讯私有化部署安全可控

IM即时通讯是Instant Messaging的缩写,指的是一种实时的、即时的电子信息交流方式,也被称为即时通讯。它通过互联网和移动通信网络,使用户能够及时交换文本消息、语音通话、视频通话、文件共享等信息。而WorkPlus im即时通讯私有化部署则提供…

PostgreSQL日志文件配置,记录所有操作记录

为了更详细的记录PostgreSQL 的运行日志,我们一般需要修改PostgreSQL 默认的配置文件,这里整理了一些常用的配置 修改配置文件 打开 PostgreSQL 配置文件 postgresql.conf。该文件通常位于 PostgreSQL 安装目录下的 data 文件夹中。 找到并修改以下配…

Zabbix6.0使用自带模板(Redis by Zabbix agent 2)监控Redis数据库

注意:Zabbix6.0使用Redis by Zabbix agent 2 模板可直接监控Redis数据。 1、添加Redis账号密码信息(如果Redis没有设置密码可省略此步骤) vim zabbix_agent2.confPlugins.Redis.Sessions.redis.Uritcp://redis.huayunworld.com:6379 Plugins.Redis.Sessions.redis…

机器学习和人工智能对金融行业的影响——案例分析

作者主页: 知孤云出岫 目录 引言机器学习和人工智能在金融行业的应用1. 风险管理信用评分风险预测 2. 交易高频交易量化交易 3. 客户服务聊天机器人个性化推荐 4. 反欺诈检测 机器学习和人工智能带来的变革1. 提高效率2. 降低成本3. 提升客户体验 未来发展趋势1. 更智能的风控系…

2-34 小波神经网络采用传统 BP 算法

小波神经网络采用传统 BP 算法,存在收敛速度慢和易陷入局部极小值两个突出弱点。建立了基于遗传算法的小波神经网络股票预测模型 GA-WNN。该模型结合了遗传算法的全局优化搜索能力以及小波神经网络良好的时频局部特性。运用 MATLAB 对拟合和预测过程进行仿真。结果表…

Flutter应用开发:掌握StatefulWidget的实用技巧

前言 随着移动应用的日益复杂,状态管理成为了 Flutter 应用开发中的一项重要挑战。 状态,即应用中的可变数据,它驱动着用户界面的渲染和交互。 在 Flutter 这样的声明式 UI 框架中,如何高效、可维护地管理状态,对于…

【2024】VsCode + Latex + Linux(Ubuntu) + wsl环境下配置教程 | 包含 中文配置,和 格式化处理

前言 本篇教程是针对WSL下的Ubuntu操作系统的配置教程,它和一般的Linux环境下的配置有所不同,并且和Windows环境下的也有所不同。 本篇博客编写参考了 官方文档(Tex) 和 插件官方(Texlive Workshop) 文档…

一篇文章教你如何快速上手Spring MVC框架【万字详解|包含常用注解分析讲解】

目录 一.什么是Spring Web MVC 二.Spring MVC的使用 ▐ 建立连接 RestController RequestMapping ▐ 传递参数 1.简单类型传参 2.类对象传参(RequestParam) 3.数组&集合传参 4.JSON传参(RequestBody) 5.URL中的参数…

7.13实训日志

上午 学习网络安全的过程中,我们深入了解了网络的不同层面和技术,从表层网络到深网再到暗网,以及涉及的产业分类和技术工具。这些知识不仅帮助我们理解网络的复杂性,还揭示了如何应对和防范各种网络威胁。 首先,我们…

查找PPT中某种字体的全部对应文字

本文章的目的是找到某种字体的文字,而不是替换某种字体的文字,也不是将某种字体全部替换为另外一种文字。 第一步:在PPT中按下ALTF11 出现以下窗口 第二步:点击插入->模块 第三步:将以下代码输入到窗体中 Sub F…