vi如何使用

2023-11-08

个人发现好多企业内部运维工程师,很少有人懂得VI的使用技巧,通常都是一顿按“上下左右键”,搞得我好郁闷。我本人整理了一份VI的使用技巧分享下,希望大家正确,高效,去工作。

Vi

1.  Vi +10 进入Vi 以第10行为行首

2.  Vi +空格 最后一行

3.  Vi +/关键字 查找关键字为第一个显示光标

4.  Vi –r 恢复上次编辑状态  适用于关机断电

5.  插入模式 修改删除 Unux要在命令模式删除字符

6.   :q退出 :wq保存退出 :q!不保存退出

7.  H左 l右 J下 K上

8.   a 移动到当前下一个字母前增加 A 光标当前行最后一个位置增加

9.   i 光标前面增加 I 首个非空字符前增加

10.   o 光标下新增一行 O 光标上新增一行

11.   y复制 p粘贴 e范围当前单词结尾 w下个单词的前面 b 上一个单词的第一个字母 $一行的最后一个字母 0光标左一行 yy复制整行 (光标当前位置向右句尾  )光标左边所有内容 , 空行来分割段落{ 当前位置到段落末尾 }光标左一个段落首

12.    x删除光标字符 dd删除光标行 r删除字符并替换为输入一个字符 R进入改写状态 s删除光标当前字符进入输入模式 S删除当前行进入插入模式 cc与S相同 u撤销上次操作 .重复上次操作

13. :set nu 显示行号 :/ 查找关键字所在的行 :? 查找最近上面的关键字 :数字 进入行 

14. :s 替换 /查找/要替换的内容 替换一次  /g 替换整行关键内容

15. :1,10 指定范围行号/g替换范围内所有内容 :1,$到文档末尾 %表示全文替换

16. :s/old/new用new替换行中首次出现的old

17. :s/old/new/g 用new替换行中所有出现的old

18. :% s/old/new/g用new替换整篇中出现的old

19. :!命令名称  在vi中执行shell命令 

20. :q不保存退出 ;q!强制 ;w保存 :w 文件名 另存为 :wq保存退出 命令模式ZZ保存退出 !强制执行

转载于:https://blog.51cto.com/kuanliu/929307

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

vi如何使用 的相关文章

  • Bash 解析和 shell 扩展

    我对 bash 解析输入和执行扩展的方式感到困惑 对于输入来说 hello world 作为 bash 中的参数传递给显示其输入内容的脚本 我不太确定 Bash 如何解析它 Example var hello world displaywh
  • 如何在bash中使用jq从变量中包含的json中提取值

    我正在编写一个 bash 脚本 其中存储了一个 json 值 现在我想使用 Jq 提取该 json 中的值 使用的代码是 json val code lyz1To6ZTWClDHSiaeXyxg redirect to http examp
  • 如何在 shell 脚本中操作 $PATH 元素?

    有没有一种惯用的方法从类似 PATH 的 shell 变量中删除元素 这就是我想要的 PATH home joe bin usr local bin usr bin bin path to app bin and remove or rep
  • 如何使用shell脚本从json字符串中grep特定字段值[重复]

    这个问题在这里已经有答案了 下面是文件中可用的 JSON 字符串 我需要从中提取值status在 shell 脚本中 预期输出 status success 响应 json eventDate null dateProccessed nul
  • 从 shell 命令调用 SOAP 请求

    我使用curl 向Web 服务发送SOAP 请求 并使用shell 脚本获取响应 请在下面找到我正在使用的命令 curl H Content Type text xml charset utf 8 H SOAPAction d sample
  • 如何以管理员身份在 rake 任务中运行 shell 命令?

    我有一个简短的 cmd 文件 我想将其作为部署过程的一部分运行 不幸的是 cmd 文件需要管理员权限 是否可以从 rake 中获得管理员权限 或者我是否需要以管理员身份启动 shell 您可以尝试runas http ss64 com nt
  • 使用 awk 读取文件并搜索另一个文件

    我正在读取一个文件 每行都有数字 我需要搜索另一个满足这些数字和其他条件的文件 我正在尝试使用 awk 来做到这一点 但遇到了问题 File a txt 1476 1477 1497 现在我需要打印第 12 列包含这些数字的行以及第 3 列
  • 从 UNIX 命令行向串行端口发送字节?

    我想使用命令行将字节流发送到串行端口 这可能吗 我的串口位于 dev cu usbserial A700dYoR在我的 Mac 上 例如 如果我想将整数 50 或字符串 data 发送到该串行端口 我该怎么做 我对 UNIX 的了解非常有限
  • 分叉/多线程进程|重击

    我想让我的代码的一部分更加高效 我正在考虑让它分叉成多个进程 并让它们一次执行 50 100 次 而不是只执行一次 例如 伪 for line in file do foo foo2 foo3 done 我希望这个 for 循环运行多次 我
  • 符合 POSIX 标准的 shell 相当于 Bash“while read -d $'\0' ...”?

    我正在尝试使 Bash 脚本严格符合 POSIX 标准 即消除任何潜在的 Bashisms http mywiki wooledge org Bashism 通过使用checkbashisms px script filename 在给定的
  • 在 shell 脚本中将一个子字符串替换为另一个字符串

    我有 我爱苏子并结婚 我想将 苏子 更改为 萨拉 firstString I love Suzi and Marry secondString Sara 期望的结果 firstString I love Sara and Marry 要更换
  • Shell 脚本中的块注释

    有没有一种简单的方法可以注释掉 shell 脚本中的代码块 In bash bin bash echo before comment lt lt END bla bla blurfl END echo after comment The a
  • Bash 参数引号和 eval

    我编写了一个 bash 日志记录库 用我公司当前正在使用的一些复杂脚本来实现 在进行日志调用时 我一直致力于提供调用脚本的脚本文件名 BASH SOURCE 和行号 LINENO 但是 我不想依赖用户或实现脚本来将这两个变量作为参数传递 如
  • shell中如何求数组的长度?

    shell中如何求数组的长度 例如 arr 1 2 3 4 5 我想得到它的长度 在本例中是 5 a 1 2 3 4 echo a 4
  • sh read 命令会吃掉输入中的反斜杠吗?

    也许最容易用一个例子来解释 echo echo while read in do echo in done 看来read命令将输入 中的反斜杠解释为转义符并删除它们 我需要逐行处理文件而不更改其内容 并且我不知道如何停止在这里智能读取 有任
  • 在 bash 中,如何除以两个变量并输出四舍五入到小数点后 5 位的答案? [复制]

    这个问题在这里已经有答案了 我将两个变量作为输入 将它们相除后 我希望将输出四舍五入到小数点后 5 位 我已经尝试过这种方法 gt sum 12 n 7 output scale 5 sum n bc echo output 我的代码没有显
  • 带有二进制数据的 Bash echo 命令?

    有人可以解释一下为什么这个脚本有时只返回十六进制字符串表示形式的 15 个字节吗 for i in 1 10 do API IV openssl rand 16 API IV HEX echo n API IV od vt x1 w16 a
  • #*/ 在 UNIX Shell 脚本中使用

    谁能详细说明 在 UNIX Shell 脚本中的工作原理 我已经看到它在 Korn Shell 中的使用 它专门用于删除文件的扩展名 例如 func write app log o 删除状态文件 CIE STATUS FILE 这里假设文件
  • 将变量插入 sh 脚本命令[重复]

    这个问题在这里已经有答案了 bin sh f set proj dir OutputDir for projname in lib proj1 proj2 do mv scripts projname BYTECODE proj dir s
  • 在 Django shell 会话期间获取 SQL 查询计数

    有没有办法打印 Django ORM 在 Django shell 会话期间执行的原始 SQL 查询的数量 Django 调试工具栏已经提供了此类信息 例如 5 QUERIES in 5 83MS但如何从 shell 中获取它并不明显 您可

随机推荐

  • 【详细了解c++模板】

    目录 前言 一 泛式编程 函数模板 类模板 总结 前言 打怪升级 第40天 在c 的开始阶段我们了解到了函数重载 函数重载可以允许我们使用同名函数 方便我们编写那些功能类似但参数不同的函数 例如 void Swap int x int y
  • leetcode刷题:爬楼梯

    题目 分析 通过分析得知 当台阶只有两层时 方式是两种 当台阶是1层时 方法有一中 三层时方法有三种 所以台阶每加一层 当为n层时 那么就方法就会变成爬n 2层和n 1层的方法数之和 代码如下 int climbStairs int n i
  • 深入解析Linux进程调度器-CPU负载

    说明 Kernel版本 4 14 ARM64处理器 Contex A53 双核 使用工具 Source Insight 3 5 Visio 1 概述 CPU负载 cpu load 指的是某个时间点进程对系统产生的压力 来张图来类比下 参考U
  • 高德地图----在vue中使用了vue-amap给信息窗口增加点击事件和样式【vue】【vue-amp】

    在vue中使用了vue amap给信息窗口增加点击事件和样式 在vue amap中给信息窗口增加点击事件content属性是不行了 template又一直报错 那怎么办呢 当然是简单便捷的slot啦 直接上代码
  • Hyperledger Fabric 链码启动过程实现

    注 本文最早发表于 2017 09 22 Hyperledger 源码分析之 Fabric 简介 这里讲的 Chaincode 是用户链码 User Chaincode UCC 对应用开发者来说十分重要 它提供了基于区块链分布式账本的状态处
  • Python爬虫批量访问突破访问限制封禁的方法

    坑述 数据采集常用的方法是写一个爬虫程序向网络服务器请求数据 通常是用HTML表单或其他网页文件 然后对数据进行解析 提取需要的信息 然而 批量访问时会有访问限制 更会认为频繁访问是恶意攻击 对ip进行封禁 导致我们的爬虫程序被终止 tim
  • 【css】动画:立方体相册

  • 热词科普--关于前后端分离的易懂解析

    目录 一 什么是前后端分离 二 为什么要前后端分离 未分离时期 工作方式 半分离时期 三 前后端分离的优点 四 前后端分离的缺点 五 什么场景下可以考虑前后端分离 六 基于Vue Springboot的前后端分离 Spring Boot 简
  • 小程序上传图片报uploadFile:fail parameter error: parameter.filePat…parameter.name should be String instead o

    小程序上传图片报uploadFile fail parameter error parameter filePat parameter name should be String instead of Array 阐述 原因是上传的name
  • nodejs + pkg+ puppeteer 路径问题以及 Passed function is not well-serializable 问题

    最近在使用 puppeteer 写自动化程序 发现几个问题在这里吧解决方案分享给大家 pkg 打包后的路径问题 具体路径详情看 https blog csdn net u012211003 article details 112872859
  • jQuery Dialog 弹出层对话框插件演示

    原文地址 http blog csdn net fer ba article details 7067352 dialog jquery function iframe class filter 目录 基本操作 默认的 html view
  • 【Java比较学习】重写equals方法的安全写法

    重写equals方法的正确打开方式 正文开始 Assassin 目录 重写equals方法的正确打开方式 1 什么是equals方法 1 1 equals方法 2 为什么要重写equals方法 2 1 举个例子吧 3 分析equals源码
  • linux运维ansible入门

    bilibili视频地址 ansible入门 介绍 无主无从 开箱即用 用完就走 只要能用ssh即可使用ansible 总结 分成两部分 主机 ansible 模块 主机清单 ssh playbook 完成复杂部署 使用yum安装 ansi
  • Vite和webpack区别

    Vite 和 Webpack 都是前端构建工具 Vite 是一个基于 ES modules 的构建工具 而 Webpack 则是一个 Web 应用程序的静态模块打包器 以下是 Vite 和 Webpack 之间的一些区别 构建方式 Vite
  • 微信小程序:wx.getUserInfo()获取用户信息报错

    在使用wx getUserInfo 来获取用户相关信息报错失败 为优化用户体验 使用 wx getUserInfo 接口直接弹出授权框的开发方式将逐步不再支持 从2018年4月30日开始 小程序与小游戏的体验版 开发版调用 wx getUs
  • 微服务架构的核心要点和实现原理

    摘要 本文中 我们将进一步理解微服务架构的核心要点和实现原理 为读者的实践提供微服务的设计模式 以期让微服务在读者正在工作的项目中起到积极的作用 微服务架构中职能团队的划分 传统单体架构将系统分成具有不同职责的层次 对应的项目管理也倾向于将
  • 2023备战金三银四,Python自动化软件测试面试宝典合集(六)

    马上就又到了程序员们躁动不安 蠢蠢欲动的季节 这不 金三银四已然到了家门口 元宵节一过后台就有不少人问我 现在外边大厂面试都问啥 想去大厂又怕面试挂 面试应该怎么准备 测试开发前景如何 面试 一个程序员成长之路永恒绕不过的话题 每每到这个时
  • 最小树形图的环收缩

    气死我了 最近学习关于最小树形图的问题 无论是CSDN还是博客园 真就是天下文章一大抄 图都用一模一样的 又复杂又高糊 我只是想搞懂存在环 这个环是怎么收缩的 结果给我看了屎一样图和文字表达 一气之下 写一个短文好还描述一下环是怎么收缩成点
  • AttributeError: ‘NoneType‘ object has no attribute ‘xxx‘v

    分析 在Python中 NoneType是一个类型 如同int float一样 如 gt gt gt a None gt gt gt type a
  • vi如何使用

    个人发现好多企业内部运维工程师 很少有人懂得VI的使用技巧 通常都是一顿按 上下左右键 搞得我好郁闷 我本人整理了一份VI的使用技巧分享下 希望大家正确 高效 去工作 Vi 1 Vi 10 进入Vi 以第10行为行首 2 Vi 空格 最后一