vi的复制粘贴命令

2023-11-16

vi编辑器有3种模式:命令模式、输入模式、末行模式。掌握这三种模式十分重要:

  命令模式:vi启动后默认进入的是命令模式,从这个模式使用命令可以切换到另外两种模式,同时无论在任何模式下只要按一下[Esc]键都可以返回命令模式。在命令模式中输入字幕“i”就可以进入vi的输入模式编辑文件。

  输入模式:在这个模式中我们可以编辑、修改、输入等编辑工作,在编辑器最后一行显示一个“--INSERT--”标志着vi进入了输入模式。当我们完成修改输入等操作的时候我们需要保存文件,这时我们需要先返回命令模式,在进入末行模式保存。

  末行模式:在命令模式输入“:”即可进入该模式,在末行模式中有好多好用的命令。

4.编辑操作
  进入输入模式命令
  i插入命令 a附加命令 o打开命令 c修改命令
  r取代命令 s替换命令 Esc退出命令

  输入模式的操作
  Home光标到行首
  End 光标到行尾
  Page Up和Page Down上下翻页
  Delect删除光标位置的字符

  删除操作(命令模式使用)
  x删除光标处的单个字符
  dd删除光标所在行
  dw删除当前字符到单词尾包括空格的所有字符
  #x例如3x删除光标处向右的三个字符
  #dd例如3dd从当前行开始向下删除三行文本

  撤销操作
  u命令取消最近一次的操作,可以使用多次来恢复原有的操作
  U取消所有操作
  Ctrl+R可以恢复对使用u命令的操作

  复制操作
  yy命令复制当前整行的内容到vi缓冲区
  yw复制当前光标所在位置到单词尾字符的内容到vi缓存区,相当于复制一个单词
  y$复制光标所在位置到行尾内容到缓存区
  y^复制光标所在位置到行首内容到缓存区
  #yy例如:5yy就是复制5行
  #yw例如:2yw就是复制两个单词

  如果要复制第m行到第n行之间的内容,可以在末行模式中输入m,ny例如:3,5y复制第三行到第五行内容到缓存区。

5.查找和替换
  vi的查找和替换功能主要在末行模式完成:

  至上而下的查找
  / 要查找的字符窜,其中/代表从光标所在位置起开始查找,例如:/ work

  至下而上的查找
  ?要查找的字符窜 例如:/ work

  替换
  :s/old/new用new替换行中首次出现的old
  : s/old/new/g 用new替换行中所有出现的old
  :#,# s/old/new/g用new替换从第#行到第#行中出现的old
  :% s/old/new/g用new替换整篇中出现的old

  如果替换的范围较大时,在所有的命令尾加一个c命令,强制每个替换需要用户进行确认,例如:s/old/new/c 或s/old/new/gc

  6恢复文件
  vi在编辑某一个文件时,会生成一个临时文件,这个文件以 . 开头并以 .swp结尾。正常退出该文件自动删除,如果意外退出例如忽然断电,该文件不会删除,我们在下次编辑时可以选择一下命令处理:

  O只读打开,不改变文件内容
  E继续编辑文件,不恢复.swp文件保存的内容
  R将恢复上次编辑以后未保存文件内容
  Q退出vi
  D删除.swp文件
  或者使用vi -r 文件名来恢复未保存的内容

在GUI下:
(1)可按i进入插入模式
(2)使用鼠标拖动反选要粘贴的内容,按鼠标左键复制选定块到缓冲区
(3)然后将光标移到要粘贴处,按鼠标中键(两键鼠标可同时按左右键),粘贴缓冲区内容。

在纯文本终端下:
(1)选定文本块,使用v进入可视模式;移动光标键选定内容
(2)复制选定块到缓冲区,用y;复制整行,用yy
(3)剪切选定块到缓冲区,用d;剪切整行用dd
(4)粘贴缓冲区中的内容,用p

在同一编辑窗打开第二个文件,用:sp [filename]
在多个编辑文件之间切换,用Ctrl+w

命令前面加数字表示重复次数,加字母表示使用的缓冲区名称。
获取帮助,用:help [内容或命令]

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

vi的复制粘贴命令 的相关文章

  • 使用 lambda 表达式注册类型

    我想知道如何在 UnityContainer 中实现这样的功能 container RegisterType
  • 在c#中执行Redis控制台命令

    我需要从 Redis 控制台获取 客户端列表 输出以在我的 C 应用程序中使用 有没有办法使用 ConnectionMultiplexer 执行该命令 或者是否有内置方法可以查找该信息 CLIENT LIST是 服务器 命令 而不是 数据库
  • ComboBox DataBinding 导致 ArgumentException

    我的几个类对象 class Person public string Name get set public string Sex get set public int Age get set public override string
  • 如何使用 Castle Windsor 将对象注入到 WCF IErrorHandler 实现中?

    我正在使用 WCF 开发一组服务 该应用程序正在使用 Castle Windsor 进行依赖注入 我添加了一个IErrorHandler通过属性添加到服务的实现 到目前为止一切正常 这IErrorHandler对象 一个名为FaultHan
  • 函数参数的默认参数是否被视为该参数的初始值设定项?

    假设我有这样的函数声明 static const int R 0 static const int I 0 void f const int r R void g int i I 根据 dcl fct default 1 如果在参数声明中指
  • 为什么在 WebApi 上下文中在 using 块中使用 HttpClient 是错误的?

    那么 问题是为什么在 using 块中使用 HttpClient 是错误的 但在 WebApi 上下文中呢 我一直在读这篇文章不要阻止异步代码 https blog stephencleary com 2012 07 dont block
  • C# 数据表更新多行

    我如何使用数据表进行多次更新 我找到了这个更新 1 行 http support microsoft com kb 307587 my code public void ExportCSV string SQLSyntax string L
  • File.AppendText 尝试写入错误的位置

    我有一个 C 控制台应用程序 它作为 Windows 任务计划程序中的计划任务运行 此控制台应用程序写入日志文件 该日志文件在调试模式下运行时会创建并写入应用程序文件夹本身内的文件 但是 当它在任务计划程序中运行时 它会抛出一个错误 指出访
  • 告诉 Nancy 将枚举序列化为字符串

    Nancy 默认情况下在生成 JSON 响应时将枚举序列化为整数 我需要将枚举序列化为字符串 有一种方法可以通过创建来自定义 Nancy 的 JSON 序列化JavaScript 原始转换器 https github com NancyFx
  • 在 NaN 情况下 to_string() 可以返回什么

    我使用 VS 2012 遇到了非常令人恼火的行为 有时我的浮点数是 NaN auto dbgHelp std to string myFloat dbgHelp最终包含5008角色 你不能发明这个东西 其中大部分为0 最终结果是 0 INF
  • 如何在 C 中安全地声明 16 位字符串文字?

    我知道已经有一个标准方法 前缀为L wchar t test literal L Test 问题是wchar t不保证是16位 但是对于我的项目 我需要16位wchar t 我还想避免通过的要求 fshort wchar 那么 C 不是 C
  • C++ int 前面加 0 会改变整个值

    我有一个非常奇怪的问题 如果我像这样声明一个 int int time 0110 然后将其显示到控制台返回的值为72 但是当我删除前面的 0 时int time 110 然后控制台显示110正如预期的那样 我想知道两件事 首先 为什么它在
  • 保护 APK 中的字符串

    我正在使用 Xamarin 的 Mono for Android 开发一个 Android 应用程序 我目前正在努力使用 Google Play API 添加应用内购买功能 为此 我需要从我的应用程序内向 Google 发送公共许可证密钥
  • 检测到严重错误 c0000374 - C++ dll 将已分配内存的指针返回到 C#

    我有一个 c dll 它为我的主 c 应用程序提供一些功能 在这里 我尝试读取一个文件 将其加载到内存 然后返回一些信息 例如加载数据的指针和内存块的计数到 c Dll 成功将文件读取到内存 但在返回主应用程序时 程序由于堆损坏而崩溃 检测
  • 在屏幕上获取字符

    我浏览了 NCurses 函数列表 似乎找不到返回已打印在屏幕上的字符的函数 每个字符单元格中存储的字符是否有可访问的值 如果没有的话Windows终端有类似的功能吗 我想用它来替换屏幕上某个值的所有字符 例如 所有a s 具有不同的特征
  • 使 Guid 属性成为线程安全的

    我的一个类有一个 Guid 类型的属性 该属性可以由多个线程同时读写 我的印象是对 Guid 的读取和写入不是原子的 因此我应该锁定它们 我选择这样做 public Guid TestKey get lock testKeyLock ret
  • C++ new * char 不为空

    我有一个问题 我在 ASIO 中开发服务器 数据包采用尖头字符 当我创建新字符时 例如char buffer new char 128 我必须手动将其清理为空 By for int i 0 i lt 128 i buffer i 0x00
  • 实体框架中的“it”是什么

    如果以前有人问过这个问题 请原谅我 但我的任何搜索中都没有出现 它 我有两个数据库表 Person 和 Employee 对每个类型的表进行建模 例如 Employee is a Person 在我的 edmx 设计器中 我定义了一个实体
  • 可访问性不一致:参数类型的可访问性低于方法

    我试图在两个表单之间传递一个对象 基本上是对当前登录用户的引用 目前 我在登录表单中有一些类似的内容 private ACTInterface oActInterface public void button1 Click object s
  • 如何在richtextbox中使用多颜色[重复]

    这个问题在这里已经有答案了 我使用 C windows 窗体 并且有 richtextbox 我想将一些文本设置为红色 一些设置为绿色 一些设置为黑色 怎么办呢 附图片 System Windows Forms RichTextBox有一个

随机推荐

  • echarts legend文字颜色

    legend textStyle color fft
  • 一个有意思的let面试题

    今天看到一个面试题 let des 我在外边 let obj des 我在里面 foo function console log this des let bar obj foo bar 这个bar 调用后会打印出什么 本以为是考 this
  • 查看微信小程序的appID和secret

    https mp weixin qq com wxopen devprofile action get profile token 1504304474 lang zh CN 转载于 https www cnblogs com fuckin
  • springmvc源码学习(三十)@ControllerAdvice 全局异常处理

    目录 前言 一 示例 二 原理 前言 在请求到达了 DispatcherServlet 的处理流程 进入 doDispatch 以及后续流程处理业务的过程中出现异常 会进入到 processDispatchResult 处理异常 此时 如果
  • C++-- 如何在类外访问一个类中私有的成员变量?

    如何在类外访问一个类中私有的成员变量 我在网上搜答案的时候看到大部分回答都是在类内部创建一个接口 所以此方法我就不再多做赘述 今天我说的是利用指针 边看代码边理解 上代码 class Test private int a 10 int b
  • win32汇编语言实现冒泡排序

    1 背景 现在大多数的大规模程序并不是由汇编语言来编写 原因很简单 因为太耗时了 但是汇编语言仍然被广泛运用在配置硬件设备以及优化程序的执行速度和尺寸大小等方面 特别是在逆向工程方面 更需要深入理解与熟练掌握汇编语言 针对现阶段 看汇编基本
  • unity04 解决导入fbx文件黑模问题

    左上角window gt rendering gt lighting gt new lighting settings gt 勾选auto generating
  • TensorFlow在MNIST中的应用-卷积神经网络CNN

    参考 TensorFlow技术解析与实战 用TensorFlow搭建一个卷积神经网络CNN模型 并用来训练MNIST数据集 coding utf 8 20171115 HelloZEX 卷积神经网络
  • 【软件测试】----自动化测试详解

    自动化测试指软件测试的自动化 在预设状态下运行应用程序或者系统 预设条件包括正常和异常 最后评估运行 结果 将人为驱动的测试行为转化为机器执行的过程 常见的自动化测试工具 QTP selenium Rational Robot jmeter
  • QtDesigner设计中关于PyQt5与pyside2的报错坑

    关注公众号可获取资料分享 0 前言 Qt Designer是使用Qt部件设计和构建图形用户界面 gui 的Qt工具 您可以以 what you see is what you get WYSIWYG 的方式组合和自定义窗口或对话框 并使用不
  • JSON取值(key是中文或者数字)方式详解

    先准备一个json对象用于演示 var json name zhangsan 年龄 23 404 你可能迷路了 使用JS中with关键字 with json console log name 输出 zhangsan console log
  • 基于STM32的智能电子药盒设计

    1 前言 据报告显示中国有2 3亿的60岁以上老人 占全国总人口的六分之一 在老年人中 有65 以上的老年人都是慢性病患者 其中失能和半失能老人将近四千万 并且人口还在以加速度增长 老年人的身体健康成为社会密切关注的问题 大部分的老年人都患
  • JavaScript基本包装类型

    基本包装类型 为了便于操作基本类型值 ECMAScript还提供了3个特殊的引用类型 Boolean Number和String 这些类型与其它引用类型相似 但同时也具有与各自的基本类型相应的特殊行为 实际上 每当读取一个基本类型值的时候
  • ElasticSearch-全文检索-简单使用

    简介 https www elastic co cn what is elasticsearch 全文搜索属于最常见的需求 开源的 Elasticsearch 是目前全文搜索引擎的首选 它可以快速地储存 搜索和分析海量数据 维基百科 Sta
  • 类和对象

    一 类 类描述了一组具有相同属性和行为特征的对象 对象是类的实例 类是一种数据类型 而对象是该类型的变量 在c 语言中 一个类的定义包含数据成员和成员函数两部分内容 数据成员定义该类对象的属性 不同对象的属性值可以不同 成员函数定义了该类对
  • 回归分析及实际案例:预测鲍鱼年龄

    上一篇文章 线性回归 Linear regression 算法 引入 1 线性回归 算法的优点 结果易于理解 计算不复杂 缺点 对非线性数据拟合不好 目标 平方误差和最小 求解 对参数w求导等于0 的回归系数 模型预测 函数说明 标准回归
  • 开发者必备的网站。javascript手册,css手册

    参考手册大全 更多更好的网址请到http www loveboygirl com 在 电脑技术 参考手册 下面 网站开发人员一定喜欢 很多好工具哦 希望大家多多支持 桌面版手册 开源中国 开源中国工具 msdn技术资源库 technet M
  • leptonica依赖的相关库的生成

    leptonica依赖的相关库的生成 写在前面 笔者观摩大量大佬的教程完成的本篇文章 反正我是成功了 电脑Win10 64位 VS2017版本 用到的源码由于试过太多来源 部分已经忘记哪儿来的了 有空我也传份上来 哈哈 至于为此学习过的文章
  • startActivity流程学习

    文章目录 应用完全没有启动过 应用完全没有启动过 launcher从sm 管理java层的ServiceManager 的服务列表里面找到AMS的代理对象AMSProxy 调用AMS向Zygote发出socket请求 从Zygote进程fo
  • vi的复制粘贴命令

    vi编辑器有3种模式 命令模式 输入模式 末行模式 掌握这三种模式十分重要 命令模式 vi启动后默认进入的是命令模式 从这个模式使用命令可以切换到另外两种模式 同时无论在任何模式下只要按一下 Esc 键都可以返回命令模式 在命令模式中输入字