六、vim编辑器的使用

1、编辑器

(1)编辑器就是一款软件。

(2)作用就是用来编辑文件,譬如编辑文字、编写代码。

(3)Windows中常用的编辑器,有自带的有记事本(notepad),比较好用的notepad++、VSCode等。

(4)Linux中常用的编辑器,自带的最古老的vi,比较好用的有vim。

(5)vi和vim的关系:vim是vi的升级版,推荐使用vim。

2、vim的安装。

(1)vim安装需要虚拟机linux可以上网。

(2)vim的安装需要root用户权限。

(3)默认安装的Linux需要设置root用户密码。

sudo passwd root    // 管理员密码更新

(4)vim安装命令。

apt-get install vim

(5)安装了vim后使用vi时,其实用的就是vim,vi被符号连接到了vim。

3、vim的使用

(1)使用vim来打开/创建一个文件: vim pathname

(2)基本上 vim 共分为三种模式,命令模式(Command Mode)、输入模式(Insert Mode)和命令行模式(Command-Line Mode)。 

3.1、命令模式

(1)用户刚启动vim,便进入了命令模式。此状态下敲击键盘动作会被vim识别为命令,而非输入字符,比如我们此时按下i,并不会输入一个字符,i被当作了一个命令。

(2)普通模式常用的命令:

  • i   -- 切换到输入模式,在光标当前位置开始输入文本
  • x  -- 删除当前光标所在处的字符。
  • :   -- 切换到底线命令模式,以在最低一行输入命令。
  • a  -- 进入插入模式,在光标下一个位置开始输入文本。
  • o  -- 在当前行的下方插入一个新行,并进入插入模式。
  • O  -- 在当前行的上方插入一个新行,并进入插入模式。
  • dd -- 删除当前行。
  • yy -- 复制当前行。
  • p -- 粘贴剪贴板内容到光标下方。
  • P -- 粘贴剪贴板内容到光标上方。
  • u -- 撤销上一次操作。
  • Ctrl + r -- 重做上一次撤销的操作。
  • :w -- 保存文件。
  • :q -- 退出 vi 编辑器。
  • :q! -- 强制退出vi 编辑器,不保存修改。
  • /xx -- 查找xx。
  • :num -- 快速切换到num行。
  • :set nu -- 设置显示行号
  • :set nonu -- 设置不显示行号

(3)若想要编辑文本,只需要启动vi,按下 i 切换到输入模式即可。

(4)命令模式只有一些最基本的命令,因此仍要依靠底线命令行模式输入更多命令。

3.2、输入模式

(1)在命令模式下按下 i 进入输入模式,使用 Esc 键可以返回到普通模式。

(2)在输入模式中,可以使用以下按键。

  • 字符按键以及Shift组合:输入字符。
  • Enter:回车键,换行。
  • Back Space:退格键,删除光标前一个字符。
  • Del:删除键,删除光标后一个字符。
  • 方向键:在文本中移动光标。
  • Home/End:移动光标到行首/行尾。
  • Page Up/Page Down:上/下翻页。
  • Insert:切换光标为输入/替换模式,光标变为竖线/下划线。
  • Esc:推出输入模式,切换到命令行模式。

3.3、命令行模式

(1)命令行模式又称为底线命令模式。

(2)在命令模式下按 : (英文冒号)就进入了底线命令模式。

(3)在底线命令模式中,基本的命令如下。

  • :w  -- 保存文件。
  • :q   -- 退出vi编辑器。  (没有修改退出)
  • :wq -- 保存文件并退出vi编辑器。
  • :q!  -- 强制推出vi编辑器,不保存修改。(修改了不想保存退出)

(3)按ESC键可随时退出底线命令模式。

3.4、vi三种模式的切换图

4、vim设置永久显示行号

(1)设置永久显示行号,需要修改vi的配置文件。

(2)打开vim的配置文件~/.vimrc。(默认是没有这个文件的)

(3)在其中输入set nu保存退出即可。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

栈和队列篇

目录 一、栈 1.栈的概念及结构 1.1栈的概念 1.2栈的结构示意图 2.栈的实现 2.1支持动态增长的栈的结构 2.2压栈(入栈) 2.3出栈 2.4支持动态增长的栈的代码实现 二、队列 1.队列的概念及结构 1.1队列的概念 1.2队列的结构示意图 2.队列的实…

安防监控/视频存储/视频汇聚平台EasyCVR接入海康Ehome车载设备出现收流超时的原因排查

安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台可拓展性强、视频能力灵活、部署轻快,可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等,以及支持厂家私有协议与SDK接入,包括海康Ehome、海大宇等设备的SDK等。视频汇聚平台既具…

uni-app之android项目云打包

1,项目根目录,找到mainfest.json,如果appid是空的,需要生成一个appid 2,点击重新获取appid,这个时候需要登录,那就输入账号密码登录下 3,登陆后可以看到获取appid成功 4,…

四轴飞行器的电池研究(MatlabSimulink仿真)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

【力扣每日一题】2023.8.31 一个图中连通三元组的最小度数

目录 题目: 示例: 分析: 代码: 题目: 示例: 分析: 题目给我们一个无向图,要我们找出三个节点,这三个节点他们两两相连,这三个节点除了连接到对方的其他线…

Windows下Redis的安装

文章目录 一,Redis介绍二,Redis下载三,Redis安装-解压四,Redis配置五,Redis启动和关闭(通过terminal操作)六,Redis连接七,Redis使用 一,Redis介绍 远程字典服务,一个开源的,键值对形式的在线服务框架,值支持多数据结构,本文介绍windows下Redis的安装,配置相关,官网默认下载的是…

QT day1

作业: 编写一个类似图片的 #include "burger.h"burger::burger(QWidget *parent): QWidget(parent) {//设置初始尺寸this->resize(400,320);//设置尺寸最大值最小值this->setMaximumSize(400,320);this->setMinimumSize(400,320);//设置窗口标…

中国行政区域带坐标经纬度sql文件及地点获取经纬度方法

文章目录 前言一、如何获取某地的经纬度?1.1 搜索百度地图1.2 在下方找到地图开放平台1.3 下滑找到坐标拾取器1.4 使用 二、sql文件2.1 创建表2.2 插入数据 前言 当工作业务上需要涉及地图,给前端返回经纬度等场景,需要掌握区域经纬度的获取…

在iPhone 15发布之前,iPhone在智能手机出货量上占据主导地位,这对安卓来说是个坏消息

可以说这是一记重拳,但似乎没有一个有价值的竞争者能与苹果今年迄今为止的智能手机出货量相媲美。 事实上,根据Omdia智能手机型号市场跟踪机构收集的数据,苹果的iPhone占据了前四名。位居榜首的是iPhone 14 Pro Max,2023年上半年…

C# Linq源码分析之Take(四)

概要 本文主要对Take的优化方法进行源码分析,分析Take在配合Select,Where等常用的Linq扩展方法使用时候,如何实现优化处理。 本文涉及到Select, Where和Take和三个方法的源码分析,其中Select, Where, Take更详尽的源码分析&…

iOS开发Swift-3-UI与按钮Button-摇骰子App

1.创建新项目Dice 2.图标 删去AppIcon,将解压后的AppIcon.appiconset文件拖入Assets包。 3.将素材点数1-6通过网页制作成2x,3x版本并拖入Asset。 4.设置对应的UI。 5.拖入Button组件并设置style。 6.Ctrl加拖拽将Button拖拽到ViewController里&#xff0…

WPF实战项目十三(API篇):备忘录功能api接口、优化待办事项api接口

1、新建MenoDto.cs /// <summary>/// 备忘录传输实体/// </summary>public class MemoDto : BaseDto{private string title;/// <summary>/// 标题/// </summary>public string Title{get { return title; }set { title value; OnPropertyChanged();…

Day5:react函数组件与类组件

「目标」: 持续输出&#xff01;每日分享关于web前端常见知识、面试题、性能优化、新技术等方面的内容。 「主要面向群体&#xff1a;」前端开发工程师&#xff08;初、中、高级&#xff09;、应届、转行、培训、自学等同学 Day4-今日话题 react「函数组件和类组件」的区别&…

ZLMediaKit 重建docker包

1.下载容器到本地服务器并运行 #此镜像为github持续集成自动编译推送&#xff0c;跟代码(master分支)保持最新状态 docker run -id -p 1935:1935 -p 8080:80 -p 8443:443 -p 8554:554 -p 10000:10000 -p 10000:10000/udp -p 8000:8000/udp -p 9000:9000/udp zlmediakit/zlmedi…

好马配好鞍:Linux Kernel 4.12 正式发布

Linus Torvalds 在内核邮件列表上宣布释出 Linux 4.12&#xff0c;Linux 4.12 的主要特性包括&#xff1a; BFQ 和 Kyber block I/O 调度器&#xff0c;livepatch 改用混合一致性模型&#xff0c;信任的执行环境框架&#xff0c;epoll 加入 busy poll 支持等等&#xff0c;其它…

shell脚本中时间的编写规范20230902

背景&#xff1a;经常写shell&#xff0c;但是很多种时间格式规范真是记不住哈&#xff0c;&#x1f604;&#xff0c;索性记录一下 一、 获取-年 下面的这两种写法都成 year$(date "%Y") yeardate "%Y"echo -e "测试输出 年: ${year}"输出结…

unity 之参数类型之引用类型

文章目录 引用类型引用类型与值类型的差异 引用类型 在Unity中&#xff0c;引用类型是指那些在内存中存储对象引用的数据类型。以下是在Unity中常见的引用类型的介绍&#xff1a; 节点&#xff08;GameObject&#xff09;&#xff1a; 在Unity中&#xff0c;游戏对象&#xff…

DevEco Studio 配置

首先,打开deveco studio 进入首页 …我知道你们想说什么,我也想说 汉化配置 没办法,老样子,先汉化吧,毕竟母语看起来舒服 首先,点击软件左下角的configure,在配置菜单里选择plugins 进入到插件页面, 输入chinese,找到汉化插件,(有一说一写到这我心里真是很不舒服) 然后点击o…

Nmap 7.94 发布:新功能!

Nmap 的最新版本 7.94 在其 26 岁生日之际发布。 最重要的升级是在所有平台上将 Zenmap 和 Ndiff 从 Python 2 迁移到 Python 3。 这个新版本的 Nmap 7.94 进行了升级&#xff0c;进行了多项改进&#xff0c;修复了一些关键错误&#xff0c;并添加了新的 Npcap、操作系统指纹…

浅析Linux系统I/O模型

文章目录 概述阻塞式I/O模型非阻塞式I/O模型I/O多路复用模型信号驱动式I/O模型异步I/O模型相关参考 概述 在操作系统中&#xff0c;I/O类操作是相对慢速的&#xff0c;应用发起一个I/O操作&#xff0c;需要等待I/O资源就绪后&#xff0c;才能继续后面的处理。这种简单的请求-响…