Linux-VI和VIM

2023-10-29

目录

VI的使用

VI的三种模式

进入VI

切换至插入模式(Insert mode)编辑文件 

Insert 的切换 

退出VI及保存文件 

搜索

快捷删除

光标定位到最后一行

VIM查找字符串

全匹配

模糊匹配(正则表达式)

快速查找​​​​​​​


VI的使用

VI的三种模式

命令行模式(command mode): 控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到 last line mode。 
插入模式(Insert mode):只有在Insert mode下,才可以做文字输入,按「ESC」键可回到命令行模式。 
底行模式(last line mode):将文件保存或退出vi,也可以设置编辑环境,如寻找字符串、列出行号……等。 
不过一般我们在使用时把vi简化成两个模式,就是将底行模式(last line mode)也算入命令行模式command mode)。 
 

进入VI

在系统提示符号输入vi及文件名称后,就进入vi全屏幕编辑画面:

$ vi myfile 

进入vi之后,是处于「命令行模式(command mode)」,要切换到「插入模式(Insert mode)」才能够输入文字。

切换至插入模式(Insert mode)编辑文件 

在「命令行模式(command mode)」下按一下字母“i”就可以进入「插入模式(Insert mode)」,这时候你就可以开始输入文字了。 

也可以点击字母“o”,表示进入插入模式,且另起一行。


Insert 的切换 

目前处于「插入模式(Insert mode)」,按一下「ESC」键可以转到「命令行模式(command mode)」。 


退出VI及保存文件 

在「命令行模式(command mode)」下,按一下「:」冒号键进入「Last line mode」,例如: 
: w filename (输入 「w filename」将文章以指定的文件名filename保存) 
: wq (输入「wq」,存盘并退出vi) 
: q! (输入q!, 不存盘强制退出vi) 

搜索

/检索词

大小写敏感

快捷删除

在命令行模式下

比如要删除两行,则按下2dd

比如要删除三行,则按下3dd

光标定位到最后一行

按下shfit+g

VIM查找字符串

全匹配

从上往下查找,比如“string” :   /string

从下往上查找,比如“string” : ?string  

模糊匹配(正则表达式)

. :通配1个字符 ,如匹配 server, 可以用  /se...r

* :通配多个字符,如匹配 privilege,可以用 p*ge

快速查找

Shift + * :让光标停留在想要查找的单词的任意一个字母上面, 然后输入 Shift + * ,即可快速选中该单词,并且通过 n  或  N 进行上一个或下一个的匹配。
yw :让光标停留在单词的第一个字母上, 然后输入yw拷贝该单词, 然后输入 / (Ctrl + R) 0 (即 /”0),回车, 就查找到了第一个匹配的单词, 并且通过 n  或  N 进行上一个或下一个的匹配。

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

Linux-VI和VIM 的相关文章

  • /proc/PID 文件格式

    我想从中检索一些流程信息 proc目录 我的问题如下 中的文件是否有标准格式 proc PID 例如 有这个proc PID status文件与Name t ProcName在第一行 我可以在其他地方用空格代替这个文件吗 t或者类似的东西
  • 在 Ubuntu 上纯粹通过 bash 脚本安装 mysql 5.7

    我想要一个无需任何手动输入即可安装 MySQL 5 7 实例的 bash 脚本 我正在关注数字海洋教程 https www digitalocean com community tutorials how to install mysql
  • 将 stdout 作为命令行 util 的文件名传递?

    我正在使用一个命令行实用程序 该实用程序需要传递文件名以将输出写入 例如 foo o output txt 它唯一写入的东西stdout是一条消息 表明它运行成功 我希望能够通过管道传输写入的所有内容output txt到另一个命令行实用程
  • 在中断时获取 current->pid

    我正在Linux调度程序上写一些东西 我需要知道在我的中断到来之前哪个进程正在运行 当前的结构可用吗 如果我在中断处理程序中执行 current gt pid 我是否可以获得我中断的进程的 pid 你可以 current gt pid存在并
  • 如何阅读shell命令的源代码?

    我想阅读编写linux命令的实际源代码 我已经获得了一些使用它们的经验 现在我认为是时候与我的机器进行更深层次的交互了 我在这里找到了一些命令http directory fsf org wiki GNU http directory fs
  • 如何从“git log”中查看 Git 中的特定版本?

    My git log显示为 enter code here git trial git log commit 4c5bc66ae50780cf8dcaf032da98422aea6e2cf7 Author king lt email pro
  • gdb 错误 - 文件不是可执行格式:无法识别文件格式

    我正在尝试使用 gdb 调试某个名为 xdf 的程序 但是当我运行 gdb xdf 时 出现以下错误 home nealtitusthomas X ray astronomy heasoft 6 24 x86 64 pc linux gnu
  • 远程linux服务器到远程linux服务器大型稀疏文件复制 - 如何?

    我有两台 CentOS 5 4 服务器 每台服务器上都安装了 VMware Server 假设我始终对 vmware 虚拟机使用稀疏文件 将虚拟机文件从一台服务器复制到另一台服务器的最可靠 最快速的方法是什么 虚拟机的文件复制起来很痛苦 因
  • Xenomai 中的周期性线程实时失败

    我正在创建一个周期性线程 它在模拟输出上输出方波信号 我正在使用 Xenomai API 中的 Posix Skin 和 Analogy 我使用示波器测试了代码的实时性能 并查看了方波信号 频率为 1kHz 的延迟 我应该实现 250us
  • linux下如何获取昨天和前天?

    我想在变量中获取 sysdate 1 和 sysdate 2 并回显它 我正在使用下面的查询 它将今天的日期作为输出 bin bash tm date Y d m echo tm 如何获取昨天和前天的日期 这是另一种方法 对于昨天来说 da
  • 我应该使用哪个 Linux 发行版作为 Xen 主机? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我为家庭办公室订购了一台服务器 我想用 Xen 对其进行分区 我认为这将使事情保持干净并且更容易维护 我将运行 MySQL PostgreSQL
  • perf stat中的cycles注释是什么意思

    8 014196 task clock 0 004 CPUs utilized 204 context switches 0 025 M sec 32 cpu migrations 0 004 M sec 0 page faults 0 0
  • svn:使用vim合并冲突

    我正在尝试看看如何使 svn 中的合并变得容易 This page http svnbook red bean com en 1 7 svn advanced externaldifftools html提到可以使用外部工具进行合并 vim
  • 如何使用 Vim 和 Eclipse 提高 PHP5.3 项目的工作效率(可能使用 Eclim 与 Zend Studio 集成)

    在开发应用程序时 我总是努力提高生产力 在过去的几年里 我可以说我在提高生产力方面取得了良好的进展 但我仍然发现我需要更多的工具或方法 我需要更快地编辑并学习盲打 目前正在过程中 因此我发现需要转向 Vim 现在已经一年多了 我已经放弃了
  • CentOS目录结构是树形的吗?

    CentOS 上有相当于树的东西吗 如果你的 Centos 系统上没有安装 tree 无论如何我通常建议服务器设置使用最小安装磁盘 你应该在命令行中输入以下内容 yum install tree y 如果没有安装 那是因为您没有正确的存储库
  • 为 Linux 安装 R 包时出错

    我试图在 R 3 3 上安装一个名为 rgeos 的包 但是当我输入 install packages rgeos 但它返回给我以下错误 其他包也会发生同样的情况 但不是所有包 gt installing source package rg
  • touch命令在一个目录下创建多个文件(不同名称)

    我想制作一个在 bash 中创建目录和文件结构的脚本 我尝试过这样的事情 mkdir p 1 2 touch 1 2 a b c a b c 应该是在一个命令或其他命令中创建的文件 但由于某种原因 结构是这样的 current folder
  • 如何用X11复制到剪贴板?

    使用 OS X 上的框架 我可以使用以下命令将 PNG 复制到粘贴板 在 C 中 显然我可以将 NSPasteboard 与 Cocoa 一起使用 include
  • 停止服务时单元陷入故障状态(状态=143)[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 这是我的问题 我有 CentOS 和 java 进程在上面运行 Java进程是通过启动 停止脚本来操作的 它也创建了 java 实例的 p
  • 标准头文件中的 C 编译器错误 - 未定义的 C++ 定义

    我正在尝试编译 C 程序 但收到许多错误 这些错误是在标准 C 头文件 inttypes h stdio h stat h 等 中遇到的 错误的来源是以下未定义的常量 BEGIN DECLS END DECLS BEGIN NAMESPAC

随机推荐

  • 怎么看服务器的token信息,token查看

    token查看 内容精选 换一换 本章节通过示例演示如何调用API来删除负载均衡器 删除负载均衡器时 需要逐个删除负载均衡器下的资源 负载均衡器关联的资源如图1 包括监听器 转发策略 后端服务器组 健康检查和后端服务器 当您使用Token认
  • C/C++ 全局变量初始化

    C语言全局变量只能用常量表达式初始化 不能用一个数学函数或者其他的需要在运行时才能计算出结果的表达式进行初始化 C 标准 全局变量的初始化要在 main 函数执行前完成 常识无疑 但是这个说法有点含糊 main 函数执行前到底具体是什么时候
  • 超级厉害的汇总图——人工智能之机器学习算法体系

    1 人工智能之机器学习体系汇总 直接上干货 此处梳理出面向人工智能的机器学习方法体系 主要体现机器学习方法和逻辑关系 理清机器学习脉络 后续文章会针对机器学习系列讲解算法原理和实战 抱着一颗严谨学习之心 有不当之处欢迎斧正 2 人工智能相关
  • (Struts2学习篇) Struts2数据校验之二

    struts2数据校验的方法 1 validateXxx方法验证 validate多业务action方法的验证 如果业务验证方法不止一个则可以使用validateXXX 来验证 在struts xml配置方法调用 span style fo
  • OSI与TCP/IP的区别

    OSI的概念 Open System Interconnect开放系统互连参考模型 是由ISO 国际标准化组织 定义的 它是个灵活的 稳健的和可互操作的模型 并不是协 议 常用来分析和设计网络体系结构 OSI模型分为七层 OSI把网络按照层
  • 身份识别与访问管理(IAM)

    身份识别与访问管理 IAM Identity and Access Management 参考文章 涨知识 认识IAM 向着 零信任 安全架构迈进 什么是身份和访问管理 IAM IAM 身份识别与访问管理 简称大4A 百度百科 身份访问与管
  • EDA第一次课<1117电路图的绘制>

    EDA第一次课 lt 1117电路图的绘制 gt 电路图1117 我们把需要用到的元器件先列出来 PWR2 5 1 GND 3 RES2 4 LED0 2 VCC 1 双刀双掷开关 1 自制元器件 黄框框 1 绘制1117 1 首先我们打开
  • 【自然语言处理】关系抽取 —— CoIn 讲解

    CoIn 论文信息 标题 Consistent Inference for Dialogue Relation Extraction 作者 Xinwei Long Shuzi Niu Yucheng Li 期刊 IJCAI 2021 主题
  • Golang 结构化日志包 log/slog 详解(三):属性字段和日志级别

    上一篇文章讲解了 log slog 包中的 Handler 的使用方法 通过不同的 Handler 可以输出不同格式的日志 接下来看一下如何自定义日志的属性字段和日志级别 属性字段 attribute 许多日志都有一些通用的的字段 例如日志
  • [每日一氵]Latex 的通讯作者怎么搞

    之前看文章 通讯作者都是默认放在最后一个位置 然后用十字或者双十字标注上 今天看到这个模板的通讯作者 还是这个好看 机构 标题都是我瞎编的 title Rethinking the eyes Problem in Game author D
  • 安装完华为的opengauss 后,能ping通服务地址,telnet不通端口

    一 事件起因 安装完华为的openGauss 后 能ping通服务的地址 telnet不通端口 linux服务本机可以用gsql客户端访问 但是外部用 Data Studio 或者 Navicat 进行连接时 连接服务失败 利用 cmd 进
  • 大牛深入讲解!最经典的HashMap图文详解

    栈和队列部分 10 设计一个有getMin功能的栈 士 由两个栈组成的队列 尉 如何仅用递归函数和栈操作逆序一个栈 尉 猫狗队列 士 用一个栈实现另一个栈的排序 士 用栈来求解汉诺塔问题 校 生成窗口最大值数组 尉 构造数组的MaxTree
  • AStyle.exe -h的完整内容,方便配置时查阅

    AStyle exe h Artistic Style 3 1 Maintained by Jim Pattee Original Author Tal Davidson Usage astyle OPTIONS File1 File2 F
  • 如何剪辑一个好的短视频?教你一个小技巧,剪辑视频很简单

    短视频现在越来越受到大众喜欢 不管是老人 小孩 年轻人都会在有空余时间刷下短视频 不知不觉得短视频已形成人们平时生活中一部分 那么要如何剪辑一个好的短视频 制作短视频可以分成两个部分 第一部分就是选题再拍一个短视频这个一般都很容易操作的 第
  • lua 函数 默认值_Unity热更新框架之xLua

    一 xLua概述 二 Lua文件加载 三 xLua文件配置 四 Lua与C 交互 五 xLua热更新 一 xLua概述 1 1 xLua简介 xLua是由腾讯维护的一个开源项目 xLua为Unity Net Mono等C 环境增加Lua脚本
  • 计算某字符出现次数

    写出一个程序 接受一个由字母 数字和空格组成的字符串 和一个字符 然后输出输入字符串中该字符的出现次数 不区分大小写字母 数据范围 1 n 1000 输入描述 第一行输入一个由字母和数字以及空格组成的字符串 第二行输入一个字符 输出描述 输
  • Python深度学习实用代码合集

    Python深度学习实用代码合集 Colab 代码集合 怎么在colab打开ipynb文件 保存文件夹内的所有文件 从github拉代码 Python代码集合 可交互选取文件路径 文件目录 遍历文件夹批量修改文件名和后缀 复制文件 删除文件
  • 数据库中distinct的用法,distinct和聚合函数一起使用,distinct的位置

    distinct的详细用法 distinct的基本用法 distinct和聚合函数 distinct的位置 distinct的基本用法 一 house表 表结构如图 字段id house name floor address 二 上图除了i
  • 命名实体识别方法汇总

    最近在学习命名实体识别 在查阅资料的同时 对命名实体识别的概念以及常用方法做了一下整理汇总 方便以后学习和查阅 命名实体识别 Named EntitiesRecognition NER 是自然语言处理 Natural LanguagePro
  • Linux-VI和VIM

    目录 VI的使用 VI的三种模式 进入VI 切换至插入模式 Insert mode 编辑文件 Insert 的切换 退出VI及保存文件 搜索 快捷删除 光标定位到最后一行 VIM查找字符串 全匹配 模糊匹配 正则表达式 快速查找 VI的使用