linux CentOS vi编辑器的使用 及 vi编辑器的三种模式转换

2024-08-29 05:08

本文主要是介绍linux CentOS vi编辑器的使用 及 vi编辑器的三种模式转换,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

CentOS linux的vi编辑器及三种模式转换

      • 1.vi编辑器
        • 1.1 什么是vi编辑器
        • 1.2 vi编辑器使用
        • 1.3 vi编辑器的三种模式
        • 1.4 命令模式下的命令
        • 1.5 底行模式下的命令

1.vi编辑器

1.1 什么是vi编辑器
vi编辑器是类unix系统内置的文本编辑器。
vim是vi的增强版本。
1.2 vi编辑器使用
  • 语法:vi + 文件名称
1.3 vi编辑器的三种模式
  • 命令模式(一般模式): 所有的按键被当做命令执行
  • 编辑模式(插入模式): 编辑内容
  • 底行模式(底行命令模式): 命令(保存退出,查找替换)
    在这里插入图片描述
1.4 命令模式下的命令
  • 光标命令
  字符移动: ↑↓←→   / hjkl单词移动: w(W):单词的首字母向后移动,不忽略标点(忽略标点) e(E):单词的尾字母向后移动,不忽略标点(忽略标点) b(B):单词的首字母向前移动,不忽略标点(忽略标点) 逐句移动: (  )   每句结尾.逐段移动: {  }   段落标记空行移动到文档开头和末尾: gg(开头)  G(末尾)移动到该行的开头和末尾: 0  $
  • 基本操作
  a(A): 光标后一位插入(光标所在行行尾)i(I): 光标前一位插入(光标所在行行首)o(O): 光标下一行插入(光标所在行插入)dd: 删除光标所在行(10dd)yy: 复制光标所在行(3yy)p:  粘贴u:  撤销
1.5 底行模式下的命令
  • w: 保存

  • q: 退出

  • !:强制

  • 查找

:set nu   显示行号
:set nonu 不显示行号
:number  跳转到指定行
:/key:  根据单词查找  (n: 跳转到下一个单词  N:跳转到上一个单词)
:noh: 取消高亮
  • 替换
:开始行,结束行 s/旧字符串/新字符串/g
example
:1 s/aa/bb  第一行的第一个aa修改为bb
:1 s/aa/bb/g 第一行所有的aa修改为bb
:. , .+3 s/aa/bb/g  将底行这一行,及下面3行(共4行)中的aa修改为bb
:% s/aa/bb/g   将整篇文章中的aa修改为bb(危险,慎用)

这篇关于linux CentOS vi编辑器的使用 及 vi编辑器的三种模式转换的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1116924

相关文章

Java中的ConcurrentBitSet使用小结

《Java中的ConcurrentBitSet使用小结》本文主要介绍了Java中的ConcurrentBitSet使用小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,... 目录一、核心澄清:Java标准库无内置ConcurrentBitSet二、推荐方案:Eclipse

Go语言结构体标签(Tag)的使用小结

《Go语言结构体标签(Tag)的使用小结》结构体标签Tag是Go语言中附加在结构体字段后的元数据字符串,用于提供额外的属性信息,这些信息可以通过反射在运行时读取和解析,下面就来详细的介绍一下Tag的使... 目录什么是结构体标签?基本语法常见的标签用途1.jsON 序列化/反序列化(最常用)2.数据库操作(

Java中ScopeValue的使用小结

《Java中ScopeValue的使用小结》Java21引入的ScopedValue是一种作用域内共享不可变数据的预览API,本文就来详细介绍一下Java中ScopeValue的使用小结,感兴趣的可以... 目录一、Java ScopedValue(作用域值)详解1. 定义与背景2. 核心特性3. 使用方法

spring中Interceptor的使用小结

《spring中Interceptor的使用小结》SpringInterceptor是SpringMVC提供的一种机制,用于在请求处理的不同阶段插入自定义逻辑,通过实现HandlerIntercept... 目录一、Interceptor 的核心概念二、Interceptor 的创建与配置三、拦截器的执行顺

C#中checked关键字的使用小结

《C#中checked关键字的使用小结》本文主要介绍了C#中checked关键字的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学... 目录✅ 为什么需要checked? 问题:整数溢出是“静默China编程”的(默认)checked的三种用

C#中预处理器指令的使用小结

《C#中预处理器指令的使用小结》本文主要介绍了C#中预处理器指令的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录 第 1 名:#if/#else/#elif/#endif✅用途:条件编译(绝对最常用!) 典型场景: 示例

基于SpringBoot实现分布式锁的三种方法

《基于SpringBoot实现分布式锁的三种方法》这篇文章主要为大家详细介绍了基于SpringBoot实现分布式锁的三种方法,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一、基于Redis原生命令实现分布式锁1. 基础版Redis分布式锁2. 可重入锁实现二、使用Redisso

Mysql中RelayLog中继日志的使用

《Mysql中RelayLog中继日志的使用》MySQLRelayLog中继日志是主从复制架构中的核心组件,负责将从主库获取的Binlog事件暂存并应用到从库,本文就来详细的介绍一下RelayLog中... 目录一、什么是 Relay Log(中继日志)二、Relay Log 的工作流程三、Relay Lo

使用Redis实现会话管理的示例代码

《使用Redis实现会话管理的示例代码》文章介绍了如何使用Redis实现会话管理,包括会话的创建、读取、更新和删除操作,通过设置会话超时时间并重置,可以确保会话在用户持续活动期间不会过期,此外,展示了... 目录1. 会话管理的基本概念2. 使用Redis实现会话管理2.1 引入依赖2.2 会话管理基本操作

Springboot请求和响应相关注解及使用场景分析

《Springboot请求和响应相关注解及使用场景分析》本文介绍了SpringBoot中用于处理HTTP请求和构建HTTP响应的常用注解,包括@RequestMapping、@RequestParam... 目录1. 请求处理注解@RequestMapping@GetMapping, @PostMappin