linux中vim实用命令大全

news/2024/9/17 22:38:06/ 标签: vim, linux, ssh, 命令模式, 运维, 服务器, centos

在这里插入图片描述

感谢浪浪云支持发布
浪浪云活动链接 :https://langlangy.cn/?i8afa52


文章目录

    • 1. 快速保存和退出
    • 2. 局部替换
      • 替换当前行中的文本
      • 替换当前行中的所有匹配
      • 替换整个文件中的内容
      • 确认替换
    • 3. 高效删除和复制
      • 删除命令
      • 复制命令
      • 粘贴命令
    • 4. 快速移动
      • 行内移动
      • 屏幕内移动
      • 文件内移动
    • 5. 可视模式操作
      • 进入可视模式
      • 替换操作
      • 可视模式下的常用操作
    • 6. 撤销与重做
      • 撤销和重做
    • 7. 快速缩进
      • 缩进和取消缩进
      • 自动缩进
    • 8. 临时修改字符大小写
    • 9. 查找和替换
      • 搜索文本
      • 跳转搜索结果
      • 替换文本
    • 10. 自动补全
      • 插入模式下的自动补全
    • 11. 复制和粘贴系统剪贴板
      • 系统剪贴板
    • 12. 运行外部命令
      • 外部命令
      • 快捷命令
    • 13. 重复命令
      • 重复最后一个命令

Vim 是一款功能强大、灵活、高效的文本编辑器,多用于编程及其他文本处理工作。然而,许多用户仅仅掌握了 Vim 的基本操作,而忽视了一些实用的小技巧和高级功能。本文将介绍一些实用且极其有用的 Vim 技巧和功能,帮助您更高效地使用 Vim。

1. 快速保存和退出

  • :w:保存文件
  • :q:退出 Vim
  • :wqZZ:保存并退出
  • :q!:强制退出(不保存)
  • :x:保存并退出(相当于 :wq

2. 局部替换

替换当前行中的文本

vim">:s/old/new/

替换当前行中第一个匹配的 “old” 字符串为 “new”。

替换当前行中的所有匹配

vim">:s/old/new/g

将当前行中所有的 “old” 替换为 “new”。

替换整个文件中的内容

vim">:%s/old/new/g

在整个文件中将所有 “old” 替换为 “new”。

确认替换

vim">:%s/old/new/gc

在整个文件中替换所有 “old”,并在替换前进行确认。

3. 高效删除和复制

删除命令

  • dd:删除(剪切)当前行。
  • dw:删除一个单词。
  • d$:删除到行尾。
  • d^:删除到行首。
  • D:删除从当前光标位置到行末(相当于 d$)。
  • diw:删除光标所在单词(不包含空格)。

复制命令

  • yy:复制当前行。
  • yw:复制一个单词。
  • y$:复制到行尾。
  • yiw:复制光标所在单词(不包含空格)。

粘贴命令

  • p:在光标后粘贴。
  • P:在光标前粘贴。

4. 快速移动

行内移动

  • 0:移动到行首。
  • $:移动到行末。
  • w:移动到下一个单词的开头。
  • e:移动到当前单词的末尾。
  • b:移动到上一个单词的开头。

屏幕内移动

  • H:移动到屏幕顶部。
  • M:移动到屏幕中间。
  • L:移动到屏幕底部。

文件内移动

  • gg:移动到文件开头。
  • G:移动到文件结尾。
  • :123:跳转到第 123 行。

5. 可视模式操作

进入可视模式

  • v:进入字符可视模式。
  • V:进入行可视模式。
  • <Ctrl-v>:进入块可视模式。

替换操作

  • c:在可视模式下,选中内容后,按 c 可以删除选中内容并进入插入模式。
  • >:在可视模式下,选中多行后按 > 可以增加缩进。
  • <:在可视模式下,选中多行后按 < 可以减少缩进。

可视模式下的常用操作

  • d:删除选中部分。
  • y:复制选中部分。
  • uU:改变选中部分的大小写(u 转小写,U 转大写)。

6. 撤销与重做

撤销和重做

  • u:撤销上一个操作。
  • <Ctrl-r>:重做撤销的操作。

7. 快速缩进

缩进和取消缩进

  • >>:右移当前行。
  • <<:左移当前行。

自动缩进

  • =:自动调整当前行的缩进。例如,=G 自动调整当前行到文件末尾的缩进。

8. 临时修改字符大小写

  • ~:在普通模式下,切换光标下字符的大小写。
  • gU:在普通模式下,将选中内容转为大写。例如,gUiw 将当前单词转为大写。
  • gu:在普通模式下,将选中内容转为小写。例如,guiw 将当前单词转为小写。

9. 查找和替换

搜索文本

  • /pattern:向下搜索 pattern
  • ?pattern:向上搜索 pattern

跳转搜索结果

  • n:跳转到下一个匹配项。
  • N:跳转到上一个匹配项。

替换文本

  • :s/old/new/:替换当前行第一个匹配的 old
  • :%s/old/new/g:替换整个文件所有的 old
  • :%s/old/new/gc:替换整个文件所有的 old,并在每次替换前确认。

10. 自动补全

插入模式下的自动补全

  • <Ctrl-n>:向下查找并完成前缀匹配的单词。
  • <Ctrl-p>:向上查找并完成前缀匹配的单词。

11. 复制和粘贴系统剪贴板

系统剪贴板

  • "+y:复制选中文本到系统剪贴板。
  • "+p:从系统剪贴板粘贴内容。
  • 如果涉及到多个寄存器(如 19),选择合适寄存器并使用前缀 " 可以更加灵活地操作不同的复制粘贴来源。

12. 运行外部命令

外部命令

  • :!command:在 Vim 中运行外部命令。例如,:!ls 列出当前目录文件,:!python % 运行当前 Python 文件(假设必须为 Python 文件)。

快捷命令

  • :w !sudo tee %:在没有权限保存时,可以使用该命令切换为 sudo 保存文件。

13. 重复命令

重复最后一个命令

  • .:重复执行上一次的命令。这在重复相同的编辑操作时非常方便。

这些技巧虽然简单,却非常实用,可以大大提高你在 Vim 编辑文本时的效率。希望这些技巧对你有所帮助!

感谢浪浪云支持发布
浪浪云活动链接 :https://langlangy.cn/?i8afa52
在这里插入图片描述


http://www.ppmy.cn/news/1524508.html

相关文章

虚幻5|不同骨骼受到不同伤害|小知识(2)

1.蓝图创建一个结构&#xff0c;B_BoneDamage 结构里添加一个浮点变量&#xff0c;表示伤害倍数 2.当我们创建了一个结构&#xff0c;就需要创建一个数据表格&#xff0c;数据表格可以选择对应的结构 不同骨骼不同倍数伤害&#xff0c;骨骼要对应骨骼网格体的名称 3.把我们br…

timm从本地加载预训练模型

想要从timm加载本地预训练模型&#xff0c;首先是参考timm.create_model()从本地加载pretrained模型 将 model timm.create_model(modelxxx, pretrainedTrue, xxx)改为 pretrained_cfg timm.models.create_model("modelxxx").default_cfg pretrained_cfg[file] …

SFC CSS 功能:深层选择/插槽选择器/动态绑定

深层选择器​ 如果您希望样式中的选择器scoped“深入”&#xff0c;即影响子组件&#xff0c;则可以使用:deep()伪类&#xff1a; <style scoped> .a :deep(.b) {/* ... */ } </style> 以上内容将被编译为&#xff1a; .a[data-v-f3f3eg9] .b {/* ... */ }提示 创…

飞利浦的精益转型之路:从传统制造到智能制造的华丽蜕变

飞利浦作为一家拥有百年历史的全球知名品牌&#xff0c;其在精益转型方面的经验值得我们深入研究和借鉴。本文将从飞利浦的转型背景、转型过程、转型成效以及给我们的启示等方面&#xff0c;探讨飞利浦如何成功实现精益转型&#xff0c;从而在新的市场竞争中脱颖而出。 一、转型…

Spring-Bean 生命周期

Spring 是一个强大的 Java 框架&#xff0c;广泛应用于企业级应用开发中。Spring 框架的核心是它的依赖注入机制&#xff08;DI&#xff09;&#xff0c;而 Bean 是 DI 的基本单位。在 Spring 中&#xff0c;Bean 的生命周期从创建到销毁&#xff0c;涉及多个阶段和机制 一、S…

【Vue】状态管理模式Vuex

数据共享 流程搭建变更状态辅助函数分割模块 流程 Vuex是一个Vue的状态管理工具&#xff0c;状态就是数据&#xff08;某个状态在很多个组件来使用 &#xff0c;多个组件共同维护一份数据&#xff09; 搭建 1&#xff09;Vuex我们在脚手架搭建项目的时候直接搭建好了&#xff0…

Axios 掌握现代 Web 开发的 HTTP 客户端

Axios: 掌握现代 Web 开发的 HTTP 客户端 在现代 Web 开发中&#xff0c;与后端进行数据交互是不可或缺的一部分。Axios 是一个流行的基于 Promise 的 HTTP 客户端&#xff0c;它提供了一种简洁、高效的方式来发送异步请求。本文将引导初学者学会使用 Axios&#xff0c;并探讨…

Qt实现登录界面

本文基于Qt实现一个简单的登录界面&#xff0c;主要使用到Widget、button、edit等控件&#xff0c;基于自定义的信号槽实现界面的跳转&#xff0c;使用绘图设备添加背景图等。 1. 创建主界面 设计主界面的样式&#xff0c;并添加相关的控件。如下显示&#xff1a; 代码如下&…

python如何把数据导出生成pdf?

文章目录 前言介绍多种生成PDF的方法一、使用reportlab二、使用FPDF三、使用Pandas与pdfkit总结 前言介绍多种生成PDF的方法 在Python中&#xff0c;将数据导出并生成PDF文件&#xff0c;你可以使用多种库来实现&#xff0c;其中比较流行的有reportlab和FPDF&#xff08;针对简…

JavaScript中的控制流语句:break、continue、return、throw

在JavaScript编程中&#xff0c;控制流语句是控制代码执行流程的重要工具。这些语句包括break、continue、return和throw&#xff0c;它们可以在循环、函数以及其他代码块中使用&#xff0c;以改变正常的执行顺序。下面我们将逐一探讨这些语句的用途和示例。 break break语句…

echarts X轴文本太长 formatter自定义文本的显示方式

如果ECharts中X轴的文本太长&#xff0c;可以通过设置axisLabel的rotate属性来旋转标签&#xff0c;或者使用formatter函数来自定义文本的显示方式。另外&#xff0c;可以开启axisLabel的interval属性来控制显示的标签的间隔。 option {tooltip: {},xAxis: {type: category,d…

构建Vue项目的侧边栏组件:Aside

构建Vue项目的侧边栏组件&#xff1a;Aside 在Vue项目中&#xff0c;侧边栏&#xff08;Aside&#xff09;是一个常见的组件&#xff0c;用于展示导航菜单。本文将详细介绍如何创建一个侧边栏组件&#xff0c;包括如何引入el-menu组件、定义路由、传递props以及编写MenuTree子…

LRU go cache的实现

目录 LRU算法LRU原理LRU实现Redis LRU算法实现1. 内存淘汰策略2. LRU算法的实现3. LRU vs LFURedis中的LRU使用场景 基于LRU的缓存库go-cache安装使用代码解析 hashicorp/golang-lru安装使用代码解析 groupcache安装使用代码解析缓存淘汰算法并发缓存组一致性哈希防止缓存击穿—…

LeetCode之双指针

125. 验证回文串 class Solution {public boolean isPalindrome(String s) {// 获取输入字符串 s 的长度int len s.length();// 创建一个 StringBuilder 对象 result 用于存储处理后的字符串StringBuilder result new StringBuilder();// 遍历输入字符串 sfor (int i 0; i …

[N1CTF 2018]eating_cms1

进入到页面是一个login登录页面 . 去访问他的register.php页面进入注册页面. 注册进入. 一眼文件包含. 去读取一下user.php http://2641f658-8af4-4626-92d0-ceb19180ea92.node5.buuoj.cn:81/user.php?pagephp://filter/convert.base64-encode/resourceuser 解码. <?p…

git中,隐藏application.properties文件,修改不用提交了

git中&#xff0c;隐藏application.properties文件&#xff0c;修改不用提交了 A、将文件名放入 .gitignore 文件中 B、执行git命令隐藏文件 执行在ide上执行命令 a、执行隐藏命令 git rm --cached src/main/resources/application.properties b、执行提交命令 git commit -m…

AI产品经理:2024年职场发展的新机遇

前言 这两年&#xff0c;AI 骤然“火”了起来&#xff0c;可谓出现了重大“转折”。就在这短短两年间&#xff0c;全球各大“大厂”几乎在同一时间争先恐后地跟进 AI 技术。从 ChatGPT 发布起&#xff0c;谷歌、Facebook、亚马逊等纷纷紧跟其后&#xff0c;国内的百度、腾讯、…

NLP从零开始------文本中阶处理之序列到序列模型(完整版)

1. 序列到序列模型简介 序列到序列( sequence to sequence, seq2seq) 是指输入和输出各为一个序列(如一句话) 的任务。本节将输入序列称作源序列&#xff0c;输出序列称作目标序列。序列到序列有非常多的重要应用&#xff0c; 其中最有名的是机器翻译( machine translation), 机…

【EI会议末轮截稿通知】第三届电子信息技术国际学术会议(EIT 2024)

第三届电子信息技术国际学术会议&#xff08;EIT 2024&#xff09; The 3rd International Conference on Electronic Information Technology 重要信息 大会官网&#xff1a;www.ic-eit.net 三轮截稿时间&#xff1a;2024年9月16日23:59分&#xff08;后续不再征稿&#x…

鸿蒙(API 12 Beta6版)GPU加速引擎服务【自适应VRS】

XEngine Kit提供自适应VRS功能&#xff0c;其通过合理分配画面的计算资源&#xff0c;视觉无损降低渲染频次&#xff0c;使不同的渲染图像使用不同的渲染速率&#xff0c;能够有效提高渲染性能。 接口说明 以下接口为自适应VRS设置接口&#xff0c;如要使用更丰富的设置和查询…