Linux中Vi编辑器和Vim编辑器

news2024/9/20 9:24:09

在这里插入图片描述

✅作者简介:热爱国学的Java后端开发者,修心和技术同步精进。
🍎个人主页:Java Fans的博客
🍊个人信条:不迁怒,不贰过。小知识,大智慧。
💞当前专栏:Java案例分享专栏
✨特色专栏:国学周更-心性养成之路
🥭本文内容:Linux中Vi编辑器和Vim编辑器

文章目录

    • ⛳️ Vi编辑器
      • 💖 Vi编辑器工作模式
    • ⛳️ Vim文本编辑器
      • 💖 学习Vim需要过两关
        • 💞 第一:理解Vim的设计思路
        • 💞 第二:命令关
      • 💖 Vim多模式编辑器
        • 💞 Vim常用命令

在这里插入图片描述

⛳️ Vi编辑器

  vi编辑器是Linux和Unix上最基本的文本编辑器,工作在字符模式下。由于不需要图形界面,vi是效率很高的文本编辑器。尽管在Linux上也有很多图形界面的编辑器可用,但vi在系统和服务器管理中的功能是那些图形编辑器所无法比拟的。
  注意vi和Vim不完全相同!

  vi编辑器通常被简称为vi,而vi又是visual editor的简称 。它在Linux上的地位就像Edit程序在DOS上一样。它可以执行输出、删除、查找、替换、块操作等众多文本操作, 而且用户可以根据自己的需要对其进行定制,这是其他编辑程序所没有的。

  vi 编辑器并不是一个排版程序,它不像Word或WPS那样可以对字体、格式、段落等其他属性进行编排,它只是一个文本编辑程序。没有菜单,只有命令,且命令繁多。vi有3种基本工作模式:命令行模式、文本输入模式和末行模式。

💖 Vi编辑器工作模式

  (注:不同的版本所给与vi的三种工作模式也不同。vi有三种工作模式:命令模式、文本编辑模式和最后行模式。不同工作模式下的操作方法有所不同。

1.命令模式:

  命令模式是启动vi后进入的工作模式,并可转换为文本编辑模式和最后行模式。在命令模式下,从键盘上输入的任何字符都被当作编辑命令来解释,而不会在屏幕上显示。如果输入的字符是合法的vi命令,则vi就会完成相应的动作;否则vi会响铃警告。

2.文本编辑模式:

  文本编辑模式用于字符编辑。在命令模式下输入i(插入命令)、a(附加命令)等命令后进入文本编辑模式,此时输入的任何字符都被vi当作文件内容显示在屏幕上。按Esc键可从文本编辑模式返回到命令模式。

3.最后行模式:

  在命令模式下,按“:”键进入 最后行模式 ,此时vi会在屏幕的底部显示“:”符号年作为最后行模式的提示符,等待用户输入相关命令。命令执行完毕后,vi自动回到命令模式。

  为了实现跨平台操作兼容不同类型的键盘,在vi编辑器中无论是输入命令还是输入内容都是用字母键。例如按字母键“i”在文本编辑模式下表示输入字母“i”,如果在命令模式下则表示将工作模式转换为文本编辑模式。)

⛳️ Vim文本编辑器

  Vim是一个类似于Vi的著名的功能强大、高度可定制的文本编辑器,在Vi的基础上改进和增加了很多特性。

  Vim普遍被推崇为类Vi编辑器中最好的一个。Vim是vi的加强版,比vi更容易使用。vi的命令几乎全部都可以在vim上使用。

  Vim可以很好地支持中文,尤其是简体中文。

💖 学习Vim需要过两关

💞 第一:理解Vim的设计思路

  Vim的设计是整个文本编辑都用键盘而非鼠标来完成,键盘上几乎每个键盘都有固定用法,Vim的作者希望用户在普通模式(也就是命令模式,只可输入命令)完成大部分的编辑工作,将此模式设计为默认模式,初学者打开Vim,如果直接输入单词,结果就会滴滴乱响,因为Vim把用户输入的单词理解为命令了。

💞 第二:命令关

  Vim有过百条命令对应编辑的需要,熟练使用Vim这些命令,编辑速度会比鼠标快很多。要想记住这些命令 就需要多多练习,把Vim用在日常的文本编辑中,遇到难题不要放弃,而是去查找解决的方法,每解决一个难题,Vim技能就会上升一级。

💖 Vim多模式编辑器

Vim是一个多模式的编辑器,重要模式主要分为六类:

模式说明
命令模式(n)在其他任何一个模式下,用Esc键或者Ctrl+C组合键可以退到命令模式。
输入模式(i)也叫插入模式,在这个模式下,Vim像一个常用的编辑器,在命令模式下,用i或者a命令可以进入本模式。
可视模式(v)在这个模式下,可以用hjkl进行选择,然后进行复制、粘贴或者其它操作。在命令模式下,用v命令进入可视模式。
块操作模式(V)在通常模式下用Ctrl+V组合键进入本模式。
修改模式(R)这是改写的模式,从命令模式用R命令进入改写模式。
末行模式(ex)这是命令执行模式,在命令模式下用:切换到此模式。

  在这六种模式中,最常用的是命令模式、输入模式以及末行模式三种,一般Linux下直接进入的就是命令模式;在命令模式下按i/a/o等键就可以进入输入模式,输入模式下按Esc键可以回到命令模式;在命令模式下按冒号键可以进入末行模式,末行模式下按Esc键可以回到命令模式。

在这里插入图片描述

  Vim具有颜色显示的功能,支持许多程序语法,因此当使用Vim编辑程序时,Vim可以高亮显示,并且在程序出现错误的时候还可以智能提示。

💞 Vim常用命令

  Vim的使用主要是靠命令来控制,主要命令分为进入Vim、光标控制、添加数据、删除数据、修改数据、查找替换、复制文本、撤销重复以及保存退出等。每一部分都有自己的命令符。

1、 进入vim

vim filename:打开或新建文件,并将光标置于第一行首。

在这里插入图片描述
在这里插入图片描述

vim +n filename:打开文件,并将光标置于第n行首。

在这里插入图片描述
在这里插入图片描述

vim + filename:打开文件,将光标置于最后一行首。

在这里插入图片描述
在这里插入图片描述

vim filename…filename:打开多个文件,依次进行编辑。

在这里插入图片描述
在这里插入图片描述

输入:next切换到/etc/hosts

在这里插入图片描述
在这里插入图片描述

输入:prev切换到/etc/passwd

在这里插入图片描述
在这里插入图片描述

在同一个窗口分栏打开多个文件:
vim -O /etc/passwd /etc/hosts

在这里插入图片描述
在这里插入图片描述

Ctrl ww切换窗口

在这里插入图片描述

2、 光标控制

  h:光标左移一个字符,8h左移8个字符,以下可类推;
  l:光标右移一个字符,到本行右端不再移动;
  k或Ctrl+p:光标移到上一行的同列位置;
  j或Ctrl+n:光标移到下一行的同列位置;
  Space:光标右(后)移一个字符,到本行右端将移到下一行;
  Back Space:光标左(前)移一个字符,到本行左端将移到上一行。

3、 翻页操作

  Ctrl+u或Ctrl+d:向文件首(Ctrl+u)或文件尾(Ctrl+d)翻半屏;
  Ctrl+f或Ctrl+b:向文件首(Ctrl+f)或文件尾(Ctrl+b)翻一屏。

4、 插入操作

  i或I:在光标前(i)或当前行首(I);
  a或A:在光标后(a)或当前行尾(A);
  o或O:在当前行之下(o)或之上(O)新开一行;
  r:替换当前字符;
  R:替换当前字符及其后的字符,直接按Esc键。

5、 删除操作

  ndw或ndW:删除光标处开始及其后的n-1个字;
  d0或d : 删至行首( d 0 )或行尾( d :删至行首(d0)或行尾(d :删至行首(d0)或行尾(d);
  dL:删至当前屏幕最后一行;
  ndd:删除当前行及其后n-1行。

6、 复制、粘贴操作

  yy:将当前行的内容放入临时缓冲区;
  nyy:将n行的内容放入临时缓冲区;
  p:将临时缓冲区中的文本放入光标后面;
  P:将临时缓冲区中的文本放入光标前面。

查看zhugeliang文件,并显示行号

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

将zhugeliang文件中的zy替换成zhangyan。
%s /被替换的内容/替换成的内容/g

在这里插入图片描述
在这里插入图片描述

  %s代表本篇文章,g代表全部

  将光标定位到zhugeliang这个文件的第二行,然后在末行执行r! ls –l /tmp/sanguo命令并将执行的结果保存到光标之下的位置。

在这里插入图片描述

在这里插入图片描述


  码文不易,本篇文章就介绍到这里,如果想要学习更多Java系列知识点击关注博主,博主带你零基础学习Java知识。与此同时,对于日常生活有困扰的朋友,欢迎阅读我的第四栏目:《国学周更—心性养成之路》,学习技术的同时,我们也注重了心性的养成。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/190186.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Docker常用命令总结

基础命令 1.启动docker systemctl start docker 2.关闭docker systemctl stop docker 3.设置docker为自启动 systemctl enable --now docker 4.重启docker systemctl restart docker 3.查看docker版本信息 docker version 4.查看docker详细信息 docker info Clien…

Spring定时器超过30分钟问题

目前需要定时器做一个定时扫描任务的功能,原先都是定时在半个小时,程序跑起来也没事。但是最近公司要求定时时间加长到45分钟,而调整完配置完后发现,程序是在45分钟和整点进行的扫描。 下面是我做的示例时间缩短为45秒 spring。x…

守护进程编程流程及代码实现

概念不做阐述,本文主要内容为守护进程编程部分的知识说明 守护进程的编程流程: 1.fork退出父进程,保证留下的子进程是组员进程 2.利用setsid()创建新会话,把子进程挪到新的会话中 //获取会话是getsid() 3.fork退出父进程&#x…

完成基于Servlet的对user表的增删改查

基于Servlet的增删改查 1.开发环境 IDEAJDK1.8Tomcat8.5Mysql 8.0.12 2.数据库 2.1表创建 2.2表数据 3.JavaWeb代码 3.1目录结构 3.2util包下代码 JdbcUtil完成对数据库的连接和资源释放 JsonResult对返回前端资源的封装 JdbcUtil代码: /* 数据库连接板帮助类 …

Python中的垃圾回收机制

Python的垃圾回收主要以引用计数为主,分代回收为辅。引用计数在Python中,使用了引用计数这一技术实现内存管理。一个对象被创建完成后就有一个变量指向这个对象,那么就这个对象的引用计数为1,以后如果有其他变量指向这个对象&…

不吹牛,完爆ant design的定位组件,floating-ui来也

前言 因为要写react定位组件(这不是标题党,就是完爆ant design的定位组件,你应该看到一半就会同意我的观点),如下图: 红框部分是用绝对定位放在按钮上面的,你们B端用的主流组件库都是这样实现的…

Python自动化小技巧14——自动批量发送邮件(带各种附件)

案例背景 我的博客下面评论都是各种要数据的......一个一个发其实很浪费时间的,每次输入评论者的邮箱,然后打开数据所在的文件夹,上传,填写标题正文,发送....... 一模一样的流程,所以这种重复性的劳动肯定…

Linux下 git 上传与删除 的基本指令

git的概述克隆仓库使用 git 上传文件删除 git 中的文件git的概述 Git 是一个免费并开源的分布式版本控制系统,可以快速高效地处理从小型到大型的各种项目。 在使用 git 应确保Linux系统中已安装有git 命令:git --version 作用:查看 git 是否…

Spring Boot 单元测试

文章目录1. 单元测试是什么2. 单元测试的优点3. 进行 Spring Boot 单元测试3.1 确认项目中已经内置了测试框架3.2 生成单元测试的类3.3 添加 SpringBootTest 注解3.4 添加单元测试的业务代码3.5 注解 Transactional4. 断言1. 单元测试是什么 单元测试,是指对软件中…

微信小程序022同学会学生会活动经费系统

同学会小程序采用B/S结构、java开发语言、以及Mysql数据库等技术。系统主要分为管理员端和用户端两部分,管理员管理主要功能包括:首页、个人中心、用户管理、共享账本管理、我的账本管理、经费信息管理、经费支出管理、活动信息、管理员管理、留言板管理…

分享怎么做公众号预约_美容院预约小程序开发制作功能介绍

小程序的功能首先是为美人有约客户提供更快选购、预约服务的线上工具,解决顾客对商品详情、线上购买、线上预约查看等各种服务需求。一、美容美发预约下单小程序主要功能有:首页:搜索、banner、金刚区、瓷片区、项目列表预约:单次…

Java技术栈,从入门到放弃,废了废了

Java技术路线应用框架后端Spring家族SpringIoCAOPSpring MVCSpring Boot自动配置、开箱即用整合Web整合数据库(事务问题)整合权限ShiroSpring Security整合中间件缓存MQRPC框架NIO框架服务器软件应用服务器TomcatJettyUndertowWeb服务器Nginx中间件缓存R…

Deathstalker的核心武器——Janicab新变种

01 概述 DeathStalker是一个专门针对金融机构和律师事务所进行攻击的组织,而Janicab是其所使用的比较古老的武器。 Janicab 首次在2013年被发现,它是能够运行在MacOS和Windows操作系统上的恶意软件。其中,Windows版本基于VBscript的植入作为…

【第27天】SQL进阶-查询优化- performance_schema系列实战三:锁问题排查(表级锁)(SQL 小虚竹)

回城传送–》《32天SQL筑基》 文章目录零、前言一、什么是表级锁二、什么时候适合加表级锁三、实战演练3.1 数据准备(如果已有数据可跳过此操作)3.2 开启第一个会话,执行显式加表级锁3.3 开启第二个会话,对该表执行update更新3.4 …

Vue 3.0 应用组件实例

#创建一个应用实例 每个 Vue 应用都是通过用 createApp 函数创建一个新的应用实例开始的: const app Vue.createApp({ /* 选项 */ }) 该应用实例是用来在应用中注册“全局”组件的。我们将在后面的指南中详细讨论,简单的例子: const app V…

jsp学生管理系统Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 jsp 学生管理系统 是一套完善的web设计系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为TOMCAT7.0,Myeclipse8.5开 发,数据库为Mysql,使用ja…

【Docker】基础使用

目录 一、Docker简介 二、Docker核心概念 三、Docker安装 四、Docker常用操作 1. 镜像操作 2. 容器操作 3. 安装MySQL 一、Docker简介 Docker 是一个开源的应用容器引擎,基于Go 语言并遵从 Apache2.0 协议开源。 Docker 可以让开发者打包他们的应用以及依赖…

基于Springboot搭建java项目(二十二)——过滤器、监听器和拦截器的使用

过滤器、监听器和拦截器的使用 一、过滤器、监听器和拦截器总览 过滤器(Filter)监听器(Listener)拦截器(Interceptor)关注点web请求系统级别参数、对象Action(部分web请求)如何实现…

20230201在AIO-3568J开发板在原厂Android11下增加右键返回

20230201在AIO-3568J开发板在原厂Android11下增加右键返回 2023/2/1 8:37 百度搜索:RK3568 右键返回 Z:\rk3568_Android11.0_ap6257s\frameworks\native\services\inputflinger\reader\mapper\accumulator\CursorButtonAccumulator.cpp uint32_t CursorButtonAccumu…

【学习OpenCV4】如何学习OpenCV

OpenCV是应用非常广泛的开源视觉处理库,在图像处理、计算机视觉和自动驾驶中有着非常重要的作用。 废话不多说,我就来讲讲OpenCV的使用和学习需要怎么做吧,大家觉得有道理的可以参考一下。 我理解的学习和使用的重点在四个方面: …