Linux成神第一步——VI编辑器的使用

2024-03-23 23:48

本文主要是介绍Linux成神第一步——VI编辑器的使用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

都说Linux会不会,就看VI会不会,可见VI编辑器在Linux操作系统使用过程中的重要性!下面来学学这高大上的玩意儿。据说,如果你在VI编辑器下编辑文本如行云流水一般轻松自如的话,你会有龙入大海的感觉,雇主的火眼金睛也会顿时发光。

VI全称Visual Interface,也就是可视化接口,她是Linux的标配,所有Linux操作系统中都有她的影子,就像Windows中的记事本一样。Linux环境下的文本编辑器还有vim、emacs等。Vi编辑器有三种工作模式,如下图所示。



VI编辑器的三种工作模式为:Command Mode - 命令模式(输入的是命令)、Insert Mode - 输入模式(输入的是文本)和Last Line Mode - 底行模式(尾行,末行)(输入的是命令)。当在终端输入vi abc,回车后即进入命令模式,这时是不能输入文本的,按下i键,即进入了输入模式,这时可以开始输入文本了,在输入模式下,按Esc键进入命令模式,在命令模式下,按shift + :键进入底行模式。

首先看看常用vi指令:

vi abc  // 如果文件abc存在,则直接打开,否则创建文件abc并打开;打开后光标定位到文件第一行的行首
vi + abc // 打开文件abc,光标定位到文件最后一行的行首
vi +2 abc // 打开文件abc,光标定位到第二行行首
vi +/im abc // 打开文件abc,光标定位到文本中“im”这个单词第一次出现的那行的行首,打开后,按字母n,可以来回地在单词“im”出现的行之间切换

vi aa bb cc // 同时打开三个文件aa,bb,cc,打开后在底行模式中输入n,回车,可以切换到下一个文件,输入N,回车,可以切换到上一个文件

底行模式下常用指令:
  :w    写入修改(保存文件)
  :q     退出
  :wq   保存并退出
  :wqa 保存所有文件并退出
  :!       强制执行
  :ls     列出打开的所有文件
  :n      切换到下一个文件
  :N     切换到上一个文件
  :set nu  显示行号
  :sp a.c  新建文件a.c
  :15        把光标定位到第15行行首
  :/xxx     在光标当前位置向后搜索“xxx”,搜索到后光标定位到第一次出现“xxx”的行首
  :?xxxx   在光标当前位置向前搜索“xxx”,搜索到后光标定位到第一次出现“xxx”的行首

命令模式下常用指令:
 h          光标左移
 j           光标下移
 k          光标上移
 l           光标右移
 ctrl + f  向下翻页(front)
 strl + b 向上翻页(back)
 ctrl + d 向下翻半页(down)
 strl + u 向上翻半页(up)
 shift + a 光标移到行尾
 shift + i 光标移到行首
 x    删除光标所在位置的单个字符
 dd  删除光标所在行
 o    在光标所在行的下方插入一行并切换到输入模式
 yy  复制光标所在行
 p    在光标所在行的下方粘贴
 P   在光标所在行的上方粘贴


这篇关于Linux成神第一步——VI编辑器的使用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

Nginx中配置使用非默认80端口进行服务的完整指南

《Nginx中配置使用非默认80端口进行服务的完整指南》在实际生产环境中,我们经常需要将Nginx配置在其他端口上运行,本文将详细介绍如何在Nginx中配置使用非默认端口进行服务,希望对大家有所帮助... 目录一、为什么需要使用非默认端口二、配置Nginx使用非默认端口的基本方法2.1 修改listen指令

Python WebSockets 库从基础到实战使用举例

《PythonWebSockets库从基础到实战使用举例》WebSocket是一种全双工、持久化的网络通信协议,适用于需要低延迟的应用,如实时聊天、股票行情推送、在线协作、多人游戏等,本文给大家介... 目录1. 引言2. 为什么使用 WebSocket?3. 安装 WebSockets 库4. 使用 We

Linux实现查看某一端口是否开放

《Linux实现查看某一端口是否开放》文章介绍了三种检查端口6379是否开放的方法:通过lsof查看进程占用,用netstat区分TCP/UDP监听状态,以及用telnet测试远程连接可达性... 目录1、使用lsof 命令来查看端口是否开放2、使用netstat 命令来查看端口是否开放3、使用telnet

python中的显式声明类型参数使用方式

《python中的显式声明类型参数使用方式》文章探讨了Python3.10+版本中类型注解的使用,指出FastAPI官方示例强调显式声明参数类型,通过|操作符替代Union/Optional,可提升代... 目录背景python函数显式声明的类型汇总基本类型集合类型Optional and Union(py

Linux系统管理与进程任务管理方式

《Linux系统管理与进程任务管理方式》本文系统讲解Linux管理核心技能,涵盖引导流程、服务控制(Systemd与GRUB2)、进程管理(前台/后台运行、工具使用)、计划任务(at/cron)及常用... 目录引言一、linux系统引导过程与服务控制1.1 系统引导的五个关键阶段1.2 GRUB2的进化优

Java使用正则提取字符串中的内容的详细步骤

《Java使用正则提取字符串中的内容的详细步骤》:本文主要介绍Java中使用正则表达式提取字符串内容的方法,通过Pattern和Matcher类实现,涵盖编译正则、查找匹配、分组捕获、数字与邮箱提... 目录1. 基础流程2. 关键方法说明3. 常见场景示例场景1:提取所有数字场景2:提取邮箱地址4. 高级

使用SpringBoot+InfluxDB实现高效数据存储与查询

《使用SpringBoot+InfluxDB实现高效数据存储与查询》InfluxDB是一个开源的时间序列数据库,特别适合处理带有时间戳的监控数据、指标数据等,下面详细介绍如何在SpringBoot项目... 目录1、项目介绍2、 InfluxDB 介绍3、Spring Boot 配置 InfluxDB4、I

使用Java读取本地文件并转换为MultipartFile对象的方法

《使用Java读取本地文件并转换为MultipartFile对象的方法》在许多JavaWeb应用中,我们经常会遇到将本地文件上传至服务器或其他系统的需求,在这种场景下,MultipartFile对象非... 目录1. 基本需求2. 自定义 MultipartFile 类3. 实现代码4. 代码解析5. 自定

使用Python实现无损放大图片功能

《使用Python实现无损放大图片功能》本文介绍了如何使用Python的Pillow库进行无损图片放大,区分了JPEG和PNG格式在放大过程中的特点,并给出了示例代码,JPEG格式可能受压缩影响,需先... 目录一、什么是无损放大?二、实现方法步骤1:读取图片步骤2:无损放大图片步骤3:保存图片三、示php

使用Python实现一个简易计算器的新手指南

《使用Python实现一个简易计算器的新手指南》计算器是编程入门的经典项目,它涵盖了变量、输入输出、条件判断等核心编程概念,通过这个小项目,可以快速掌握Python的基础语法,并为后续更复杂的项目打下... 目录准备工作基础概念解析分步实现计算器第一步:获取用户输入第二步:实现基本运算第三步:显示计算结果进