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

linux中vim常用命令大全

前言

Linux有大量的配置文件,所以 Linux的文本处理工具也是比较多的,其中编辑一些配置文件时,常用的工具就是 vim。在Linux中,Vim编辑器是一个非常强大的文本编辑工具,它提供了多种模式和命令来满足不同的编辑需求。以下是Vim的一些常用命令和操作:

一、启动与退出Vim

  • 直接启动Vim并进入命令模式:vim
  • 启动Vim并打开(或创建)指定文件名的文件:vim filename
  • 在打开文件前,先执行指定的命令:vim -c cmd file
  • 恢复上次异常退出的文件:vim -r file
  • 以只读的方式打开文件,但可以强制保存:vim -R file
  • 保存修改并退出Vim::wq 或 ZZ
  • 强制退出Vim,不保存修改::q!
  • 如果未对文件进行修改,则退出Vim;如果文件已修改,则提示保存或放弃修改::q

启动Vim并创建文件text.txt

 启动Vim并打开上次保存的文件text.txt

二、Vim的模式

  • 命令模式(Normal Mode)‌:在此模式下,可以使用快捷键进行光标移动、复制粘贴、删除等操作。
  • 插入模式(Insert Mode)‌:在此模式下,可以输入文本。按下Esc键可以回到命令模式。
  • 可视模式(Visual Mode)‌:按下v进入字符选择模式,V进入行选择模式,Ctrl+v进入块选择模式。在可视模式下,可以使用移动命令来选择文本区域,然后执行复制、粘贴、删除等操作。

插入模式

 可视模式

三、光标移动

  • 使用上下左右箭头键h, j, k, l或↑, ↓, ←, →移动光标。
  • $移动到光标所在行的行尾。
  • 0或Home移动到本行第一个字符。
  • gg移动到文件头部。
  • G或Shift+g移动到文件底部。

四、文本编辑‌

  1. y复制。
  2. d删除。
  3. p粘贴。
  4. u撤销。
  5. 进入插入模式:按i进入插入模式,在光标前插入;按a在光标后插入;按o另起一行

五、查找与替换

  1. /string查找字符串。使用n查找下一个匹配项,使用N查找上一个匹配项。
  2. :s/old/new/g在当前行替换字符串。
  3. :%s/old/new/g在全文替换字符串。

查找字符串

六、删除操作

  • dd删除当前行。
  • Ndd删除当前行和接下来的N-1行。
  • :start,endd删除从start到end之间的所有行。
  • :g/pattern/d删除所有匹配pattern的行。

七、其他命令

  • :set nu显示行号。
  • :set nonu隐藏行号。
  • :w保存文件但不退出Vim。
  • :e /path/to/file打开指定路径的文件。

显示行号 

另外常用的命令提示:

  1. 1G ,2G,3G........NG ,跳到第1.2.3 N 行开头
  2. /^d 快速定位到以 d 开头的行
  3. /txt$ 快速定位的到以txt 结尾的行
  4. y 复制. yy 3yy ygg yG (以行为单位)
  5. d 删除 dd 3dd dgg dG(以行为单位)
  6. ndd:删除光标所在的向下n行
  7. ESC 回到一般模式
  8. u 恢复前一个操作
  9. v 进入可视模式
  10. ^v 进入可视块模式 Ctrl +v
  11. V 进入可视行模式
  12. A  shift + A 在当前行尾插入
  13.  :![Command]    在vi编辑器中执行外部Command命令   【:!date】查看当前时间
  14. R 进入替换模式 在光标后进行批量替换,类似于为Windows上的 文本Insert
  15. /string  --->  查找字符串【n继续向下查找,N反向继续查找,支持正则表达式查找: /^the】
  16. 翻页:Ctrl+f(PageDown)向下翻一页,Ctrl+d向下翻半页;Ctrl+b(PageUp)向上翻一页,Ctrl+u向上翻半页

快速定位到以 3 开头的行

八、替换命令

:s 命令实现字符串替换

  • :s/str1/str2/          --->  [:范围s/ old/ new]  默认当前行
  • :s/str1/str2/g        ---> g 全部替换,不加g只替换一个
  • : .,$s/str1/str2/g   --->  当前行到最后一行,全部替换
  • :1,$s/str1/str2/g   ---> 第一行到最后一行,全文
  • : %s/str1/str2/g    --->  全文

九、多文件编辑

vim 后面可以有多个文件

vim mybatis.config test.txt
  • n 编辑下一个文件
  • N 编辑上一个文件
  • files 显示当前正在编辑的所有文件

十、多视窗编辑

可以支持在同一个窗口打开多个文件,使用 :sp filename 命令

:sp /home/filename
  • 每一个窗口都有自己单独的模式和命令
  • Ctrl+w+↓ 切换到下一个窗口
  • Ctrl+w+↑ 切换到上一个窗口

相关文章:

linux中vim常用命令大全

前言 Linux有大量的配置文件,所以 Linux的文本处理工具也是比较多的,其中编辑一些配置文件时,常用的工具就是 vim。在Linux中,Vim编辑器是一个非常强大的文本编辑工具,它提供了多种模式和命令来满足不同的编辑需求。以…...

计算机的错误计算(八十九)

摘要 探讨反双曲余切函数 acoth(x) 在 附近的计算精度问题。 Acoth(x) 函数的定义为: 其中 x 的绝对值大于 1 . 例1. 计算 acoth(1.000000000002) . 不妨在 Excel 的单元格中计算,则有: 若在Python中用定义直接计算,则有几乎…...

深入理解java并发编程之aqs框架

跟synchronized 相比较,可重入锁ReentrankLock其实原理有什么不同? 所得基本原理是为了达到一个目的;就是让所有线程都能看到某种标记。synchronized通过在对象头中设置标记实现了这一目的,是一种JVM原生的锁实现方式。而Reentran…...

ubuntu配置tftp、nfs

tftp配置 tftp是简单文件传输协议,基于udp实现传输。这里的简单文件,指的是不复杂、开销不大的文件。 先在ubuntu中安装tftp,输入命令:sudo apt-get install tftp-hpa tftpd-hpa。 接着配置tftp。 输入命令:sudo v…...

Sklearn的datasets模块与自带数据集介绍

datasets 模块 用 dir() 函数查看 datasets 模块的所有属性和函数 import sklearn.datasets as datasets# 列出 sklearn.datasets 模块中的所有属性和函数 print(dir(datasets)) datasets 模块下的数据集有三种类型: (1)load系列的经典数…...

css 个人喜欢的样式 速查笔记

起因&#xff0c; 目的: 记录自己喜欢的&#xff0c; 觉得比较好看的 css. 下次用的时候&#xff0c;直接复制&#xff0c;很方便。 1. 个人 html 模板&#xff0c; 导入常用的 link 设置英语字体: Noto导入默认的 css使用网络 icon 图标导入 Bootstrap css 框架 html <…...

C/C++ let __DATE__ format to “YYYY-MM-DD“

C/C let DATE format to “YYYY-MM-DD” code&#xff1a; #include <iostream> #include <string>class compileDate {// 静态函数&#xff0c;用来格式化并返回编译日期 static std::string formatCompileDate() {// 编译时的日期&#xff0c;格式为 "MMM…...

git如何灵活切换本地账号对应远程github的两个账号

git如何灵活切换本地账号对应远程github的两个账号 问题&#xff1a; 有时候我们会同时维护两个github的账号里面的仓库内容&#xff0c;这时候本地git需要频繁的切换ssh&#xff0c;以方便灵活的与两个账号的仓库可以通信。这篇日记将阐述我是怎么解决这个问题的。1. 第一个账…...

Python中实现函数的递归调用

在Python中&#xff0c;函数的递归调用是一种非常强大且常用的编程技巧&#xff0c;它允许函数在其执行过程中调用自身。递归调用在解决许多问题时都显得尤为方便&#xff0c;比如遍历树形结构、计算阶乘、实现快速排序等。然而&#xff0c;递归也需要谨慎使用&#xff0c;因为…...

Multisim使用手册

目录 原件库&#xff1a; 基础元件库&#xff1a; 最右侧的分析仪们&#xff1a; 示波器&#xff1a; 交流分析&#xff1a; 操作&#xff1a; dB 一、幅频特性曲线 二、相频特性曲线 下载资源&#xff08;有汉化&#xff09;&#xff1a;Multisim 14.0电路设计与仿真…...

线程的六种状态

优质博文&#xff1a;IT-BLOG-CN 线程的状态在Thread.State这个枚举类型中定义&#xff1a;共有6种状态&#xff0c;可以调用线程Thread种的getState()方法获取当前线程状态。 public enum State { /** * 新建状态(New)&#xff1a; * 当用new操作符创建一个线程时&#…...

全球热门剪辑软件大搜罗

如果你要为你的视频进行配音那肯定离不开音频剪辑软件&#xff0c;现在有不少音频剪辑软件免费版本就可以实现我们并不复杂的音频剪辑操作。这次我就给你分享几款能提高剪辑效率的音频剪辑工具。 1.福晰音频剪辑 链接直达>>https://www.foxitsoftware.cn/audio-clip/ …...

swagger-bootstrap-ui页面空白,也没报错

回想起来&#xff0c;代码层面没有进行什么大的调整&#xff0c;增加了配置文件&#xff0c;application.yml中的 spring:profiles:active: sms # dev --> smsname: sms-server swagger配置未调整导致空白 修改profile 问题解决...

15.2 JDBC数据库编程2

15.2.1 数据库访问步骤 使用JDBC API连接和访问数据库&#xff0c;一般分为以下5个步骤: (1) 加载驱动程序 (2) 建立连接对象 (3) 创建语句对象 (4) 获得SQL语句的执行结果 (5) 关闭建立的对象&#xff0c;释放资源 下面将详细描述这些步骤 15.2.2 加载驱动程序 要使…...

Spark数据介绍

从趋势上看&#xff0c;DataFrame 和 Dataset 更加流行。 示例场景 数据仓库和 BI 工具集成&#xff1a; 如果你需要处理存储在数据仓库中的结构化数据&#xff0c;并且希望与 BI 工具集成&#xff0c;那么 DataFrame 和 Dataset 是首选。 机器学习流水线&#xff1a; 在构建机…...

【0基础】制作HTML网页小游戏——贪吃蛇(附详细解析)

我在昨天的文章&#xff08;贪吃蛇HTML源码&#xff09;里面分享了网页版贪吃蛇小游戏的源码&#xff0c;今天就来给大家详细讲解一下每部分代码是如何运作的&#xff0c;以及以后要如何美化贪吃蛇的UI界面&#xff0c;在哪里修改等。 目录 一、代码运作 1、HTML结构: 2、C…...

Vscode python无法转到函数定义

今天上午换了电脑&#xff0c;使用Vscode发现找不到对应的函数定义了。 使用了网上的全部教程。一点用没有。重启电脑&#xff0c;重启Vscode也没有作用。最后通过重装vscode&#xff0c;解决问题。&#xff08;也不知道Vscode什么毛病&#xff09; 重点语句&#xff1a; 去官网…...

Python中的上下文管理器(with语句)及其作用

Python中的上下文管理器&#xff08;Context Manager&#xff09;是一种通过with语句来管理资源&#xff08;如文件、网络连接、线程锁等&#xff09;的机制。with语句旨在简化常见的资源管理任务&#xff0c;如资源的获取、使用后的清理等。使用上下文管理器可以确保资源在使用…...

CTK框架(八):服务追踪

目录 1.简介 2.实现方式 3.具体实现 3.1.新建插件PluginA​​ 3.2.新建插件PluginB 4.服务追踪的优势 5.应用场景 6.总结 1.简介 CTK服务追踪是一种机制&#xff0c;用于在CTK插件框架中追踪和管理插件提供的服务。当一个插件注册了一个服务到服务注册中心后&#xff0…...

[针对于个人用户] 显卡与计算卡性能对比表

笔者使用 Quadro M4000 显卡用于 LLM 相关任务&#xff0c;但奈何该卡发布的年代过于久远&#xff0c;以至于 LLM 相关任务只能使用例如&#xff1a;Phi3 mini、Qwen 2 2B、GLM 4 8B 以及 Gemini v2 2B等小参数模型&#xff0c;且速度不堪理想&#xff0c;也经常因为显卡过热降…...

2024年智能录屏解决方案全攻略,从桌面到云端

如果你有过录屏经验那你一定遇到过被限制录制时长或者录制的画面比较模糊之类的情况。这次我我推荐几款免费录屏软件&#xff0c;让我们可以更自由的录制屏幕画面。 1.福晰REC大师 链接&#xff1a;www.foxitsoftware.cn/REC/ 这款软件便捷好操作&#xff0c;而且符合我这次…...

CentOS7.9下snmp v3 inform搭建监控端

1.基础环境配置 为了防止防火墙及selinux等的影响,需关闭防火墙及selinux等,具体参考: Linux常规基础配置_linux基础配置-CSDN博客 2.安装snmp yum源配置,具体参考: Linux常规基础配置_linux基础配置-CSDN博客 snmp安装命令: yum install -y net-snmp net-snmp-ut…...

水库大坝安全监测方案,双重守护,安全无忧

水库作为重要的水利设施&#xff0c;在防洪、灌溉及供水等方面发挥着重要作用。然而随着时间的推移&#xff0c;大坝面临着自然老化、设计标准不足及极端天气等多重挑战&#xff0c;其安全性与稳定性日益受到关注。水库堤坝险情导致的洪涝灾害给人民生命财产和经济社会发展带来…...

yolov8实现图片验证码识别

1、环境准备 1.1、安装miniconda 地址&#xff1a;Index of /anaconda/miniconda/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror 注意&#xff1a;为避免不兼容的问题&#xff0c;推荐下载py38版本&#xff0c;我下载的是Miniconda3-py38_23.1.0-1-Windows-x86_…...

代码随想录训练营 Day56打卡 图论part06 108. 冗余连接 109. 冗余连接II

代码随想录训练营 Day56打卡 图论part06 一、卡码108. 冗余连接 题目描述 有一个图&#xff0c;它是一棵树&#xff0c;他是拥有 n 个节点&#xff08;节点编号1到n&#xff09;和 n - 1 条边的连通无环无向图&#xff08;其实就是一个线形图&#xff09;&#xff0c;如图&…...

QT天气预报

json 理论 什么是JSON? 规则 被大括号包括的是JSON对象,被中括号包括的是JSON数组. JSON数组JSON对象 实验 构建JSON 用代码实现如下json内容: //构建JSON void WirteJson() {QJsonObject rootObject;//1.插入name字段rootObject.insert("name","china&quo…...

JavaWeb中处理 Web 请求的方式总结

文章目录 JavaWeb中处理 Web 请求的方式总结1. 原始的 Servlet 方式1.1. 环境搭建**创建 Maven 或 Gradle 项目**&#xff1a;**添加 Servlet 依赖**&#xff1a;**创建 Servlet 类**&#xff1a;**配置项目**&#xff1a;**配置 Tomcat**&#xff1a; 1.2. 路由机制1.3. 示例代…...

React的事件与原生事件的执行顺序?

react自身实现了一套自己的事件机制&#xff0c;包括事件注册、事件的合成、事件冒泡、事件派发等&#xff0c;虽然和原生的是两码事&#xff0c;但也是基于浏览器的事件机制下完成的。 react 的所有事件并没有绑定到具体的dom节点上而是绑定在了document 上&#xff0c;然后由…...

【Java】Runtime与Properties获取系统信息

Java系列文章目录 补充内容 Windows通过SSH连接Linux 第一章 Linux基本命令的学习与Linux历史 文章目录 Java系列文章目录一、前言二、学习内容&#xff1a;三、问题描述四、解决方案&#xff1a;4.1 代码4.2 运行结果 五、总结&#xff1a; 一、前言 这些都被淘汰比较少用了…...

基于SpringBoot的社团管理系统

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、SSM项目源码 系统展示 基于JavaSpringBootVueMySQL的社团管理系统【附源码文档】、…...