当前位置: 首页 > 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;也经常因为显卡过热降…...

如何告别模组管理噩梦:XXMI启动器的3个革命性解决方案

如何告别模组管理噩梦&#xff1a;XXMI启动器的3个革命性解决方案 【免费下载链接】XXMI-Launcher Modding platform for GI, HSR, WW and ZZZ 项目地址: https://gitcode.com/gh_mirrors/xx/XXMI-Launcher 你是否曾经为管理多个游戏的模组而感到头疼&#xff1f;每个游…...

2026年5月19日OpenBSD 7.9发布:多架构更新、内核创新,安全与性能双提升!

2026年5月19日&#xff0c;开源操作系统OpenBSD 7.9正式发布&#xff0c;作为第60个版本&#xff0c;它带来内核与用户空间多层面更新&#xff0c;预计在开源社区持续发挥重要作用。平台支持全面扩展arm64架构新增Rockchip RK3588与RK3576芯片支持&#xff0c;amd64平台MAXCPUs…...

告别环境报错:用Docker 10分钟在本地/服务器部署YOLOv8完整开发环境

告别环境报错&#xff1a;用Docker 10分钟在本地/服务器部署YOLOv8完整开发环境 在计算机视觉领域&#xff0c;YOLOv8作为当前最先进的目标检测模型之一&#xff0c;其强大的性能和易用性吸引了大量开发者和研究者。然而&#xff0c;传统的手动搭建开发环境过程往往令人望而生畏…...

极域电子教室破解指南:快速恢复电脑控制权的完整方案

极域电子教室破解指南&#xff1a;快速恢复电脑控制权的完整方案 【免费下载链接】JiYuTrainer 极域电子教室防控制软件, StudenMain.exe 破解 项目地址: https://gitcode.com/gh_mirrors/ji/JiYuTrainer 你是否曾经在学校的计算机教室中&#xff0c;面对被极域电子教室…...

【Lovable开发者私藏资源包】:含官方未公开API文档、调试插件源码与CI/CD配置清单

更多请点击&#xff1a; https://kaifayun.com 第一章&#xff1a;Lovable应用开发完整教程 Lovable 是一个面向现代 Web 应用的轻量级响应式框架&#xff0c;专为构建高交互性、可访问性强且易于维护的单页应用&#xff08;SPA&#xff09;而设计。它不依赖虚拟 DOM&#xff…...

chatgpt-mirai-qq-bot内存持久化:文件和Redis存储方案对比

chatgpt-mirai-qq-bot内存持久化&#xff1a;文件和Redis存储方案对比 你是否在为聊天机器人的记忆管理而烦恼&#xff1f;在多轮对话中&#xff0c;如何确保机器人能够记住上下文&#xff0c;同时保证数据的安全性和性能&#xff1f;chatgpt-mirai-qq-bot提供了两种内存持久化…...

毕业论文难写?2026年AI写作辅助网站排行榜权威发布,轻松定稿不是梦!

写论文效率低、熬夜赶稿、查重不过关&#xff1f;别慌&#xff01;2026 年最新 AI 论文写作工具合集来了&#xff0c;覆盖选题、大纲、初稿、润色、降重、格式、文献引用全流程&#xff0c;帮你精准匹配最适合的学术助手&#xff0c;彻底告别论文内耗&#xff01;&#x1f3c6;…...

3个企业级验证码识别架构设计:DdddOcr技术选型与性能优化策略

3个企业级验证码识别架构设计&#xff1a;DdddOcr技术选型与性能优化策略 【免费下载链接】ddddocr 带带弟弟 通用验证码识别OCR pypi版 项目地址: https://gitcode.com/gh_mirrors/dd/ddddocr 引言&#xff1a;验证码识别在企业自动化系统中的战略价值 在当今数字化时…...

ElevenLabs越南文TTS落地全链路:从API密钥配置、SSML控制到本地化韵律校准(含实测MOS评分对比)

更多请点击&#xff1a; https://codechina.net 第一章&#xff1a;ElevenLabs越南文TTS落地全链路概览 ElevenLabs 作为当前高保真语音合成领域的领先平台&#xff0c;其对越南语&#xff08;vi-VN&#xff09;的支持已进入生产就绪阶段。尽管官方文档未单独设立越南语专区&a…...

二代壳脱壳新思路:Hook CreateFromRawDexFile捕获原始DEX

1. 为什么“二代壳”让传统脱壳方法集体失效&#xff1f;——从Dex加载链路说起你有没有试过用经典的dumpdex脚本在Android 10设备上跑&#xff0c;结果dump出来的dex文件一打开就是满屏java.lang.ClassNotFoundException&#xff1f;或者用dex2oat反编译出的odex&#xff0c;反…...