[Linux入门]---文本编辑器vim使用

文章目录

  • 1.Linux编辑器-vim使用
  • 2.vim的基本概念
  • 4.vim正常模式命令集
    • 从正常模式进入插入模式
    • 从插入模式转换为命令模式
    • 移动光标
    • 删除文字
    • 复制
    • 替换
    • 撤销
    • 更改
    • 跳至指定行
  • 5.vim末行模式命令集
  • 5.总结

1.Linux编辑器-vim使用

在这里插入图片描述

vi/vim作为Linux开发工具之一,从它的键盘操作图也可以知道,它的操作不会很简单,但如果我们认真学习的话,想熟练地使用也不会很难!
在这里插入图片描述
vi/vim的区别简单点来说,它们都是多模式编辑器,不同的是vimvi的升级版本,它不仅兼容vi的所有指令,而且还有一些新的特性在里面。例如语法加亮,可视化操作不仅可以在终端运行,也可以运行于x windowmac oswindows

2.vim的基本概念

vim编辑器有很多种模式,我们目前掌握命令模式(command mode)插入模式(insert mode)底行模式(last line mode)

  • 正常/普通/命令模式(Normal mode)
    控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到 last line mode;vim编辑器默认进入命令模式,该模式不能写代码,需要转换到插入模式,此时可以按a\s\i\o其中一个键可以从命令模式转换到插入模式
    在这里插入图片描述
    在这里插入图片描述
  • 插入模式(Insert mode)
    只有在Insert mode下,才可以做文字输入,按「ESC」键可回到命令行模式。该模式是我们后面用的最频繁的编辑模式。
  • 末行模式(last line mode)
    文件保存或退出,也可以进行文件替换,找字符串,列出行号等操作。 在命令模式下,shift+;(其实为:) 即可进入该模式。要查看你的所有模式:打开vim,底行模式直接输入 :help vim-modes,输入: w (保存当前文件),输入: wq (存盘并退出vim),输入: q! (输入q!,不存盘强制退出vim),输入:wq!(强制保存并退出该文件)
    在这里插入图片描述

4.vim正常模式命令集

从正常模式进入插入模式

  • 「a」进入插入模式后,是从目前光标所在位置的下一个位置开始输入文字;
  • 「s」进入插入模式后,删除光标所在位置的字符,从删除字符的位置开始输入字符。
  • 「i」切换进入插入模式「insert mode」,按“i”进入插入模式后是从光标当前位置开始输入文件;
  • 「o」进入插入模式后,是插入新的一行,从行首开始输入文字;
    我们提前编辑好一段代码,统一让光标在如下位置,观察以不同方式进入插入模式的效果
    在这里插入图片描述
    「a」切换进入插入模式
    在这里插入图片描述
    「s」进入插入模式后
    在这里插入图片描述
    「i」切换进入插入模式
    在这里插入图片描述
    「o」进入插入模式后> 在这里插入图片描述

从插入模式转换为命令模式

「ESC」键后,即可从插入模式转换为命令模式

移动光标

  • vim可以直接用键盘上的光标来上下左右移动,但正规的vim是用小写英文字母「h」、「j」、「k」、
    「l」,分别控制光标左、下、上、右移一格
    在这里插入图片描述
    接下来以该光标位置为基准,进行按键学习
    在这里插入图片描述
  • [gg]键:进入到文本行开始
  • 在这里插入图片描述
  • 「G」(即shift+g):移动到文本行末尾
  • 在这里插入图片描述
  • 「nG」(即n+shift+g):光标定位到任意行
    在这里插入图片描述
  • 「 $ 」(即shift+$键):移动到光标所在行的行尾。+ 在这里插入图片描述
  • 「^」(即shift+^):移动到光标所在行的“行首”

在这里插入图片描述

  • 按「w」:光标跳到下个字的开头
  • 按「b」:光标回到上个字的开头
  • 按「e」:光标跳到下个字的字尾
  • 按「nl」:光标移到该行的第n个位置(n为数字)
  • 按「ctrl」+「b」:屏幕往“后”移动一页(即向上移动一页)
  • 按「ctrl」+「f」:屏幕往“前”移动一页(即向下移动一页)
  • 按「ctrl」+「u」:屏幕往“后”移动半页(即向上移动半页)
  • 按「ctrl」+「d」:屏幕往“前”移动半页(即向下移动半页)

删除文字

  • x」:每按一次,删除光标所在位置的一个字符
  • #x」:例如,「6x」表示删除光标所在位置的“后面(包含自己在内)”6个字符
  • X」:大写的X,每按一次,删除光标所在位置的“前面”一个字符
  • #X」:例如,「20X」表示删除光标所在位置的“前面”20个字符
  • dd」:删除光标所在行
  • #dd」:从光标所在行开始删除#行。
    注意:这里的#表示数字(0、1、2...),不是表示字符

复制

  • yw」:将光标所在之处到字尾的字(文字、单词)复制到缓冲区中。
  • #yw」:复制#个字(文字、单词)到缓冲区。
  • yy」:复制光标所在行到缓冲区。
  • #yy」:例如,「6yy」表示拷贝从光标所在的该行“往下数”6行文字。
  • p」:将缓冲区内的字符贴到光标所在位置。
  • #p」:将缓冲区内的字符粘贴#份到光标所在位置的下一行
    注意:所有与“y”有关的复制命令都必须与“p”配合才能完成复制与粘贴功能;「#dd」为剪切功能,配合“p”配合也可以完成复制配合的功能。

替换

  • ~」(即shift+~):将光标所在位置的字符进行大小写转换。
  • r」:替换光标所在处的字符。
  • R(即shift+r):替换光标所到之处的字符,直到按下「ESC」键为止。该模式为vim的替换模式!

撤销

  • u」:如果您误执行一个命令,可以马上按下「u」,回到上一个操作。按多次“u”可以执行多次回复。
  • ctrl + r」:撤销的恢复(反撤销)

更改

  • cw」:更改光标所在处的字到字尾处。
  • c#w」:例如,「c3w」表示更改3个字(文字、单词)。

跳至指定行

  • ctrl」+「g」:列出光标所在行的行号。
  • #G」:例如,「15G」,表示移动光标至文章的第15行行首。

5.vim末行模式命令集

在使用末行模式之前,请记住先按「ESC」键确定您已经处于正常模式,再按「:」冒号即可进入

  • 列出行号
    set nu」:输入「set nu」后,会在文件中的每一行前面列出行号。
    set nonu」:取消行号设置。
    在这里插入图片描述
  • 跳到文件中的某一行
    #」:「#」号表示一个数字,在冒号后输入一个数字,再按回车键就会跳到该行了,如 再回车,就会跳到文章的第15行。
  • 查找字符
    /关键字」: 先按「/」键,再输入您想寻找的字符,如果第一次找的关键字不是您想要「n」会往后(适合从顶部向下)寻找到您要的关键字为止。
    ?关键字」:先按「?」键,再输入您想寻找的字符,如果第一次找的关键字不是您想要按「n」会往前(适合从底部往上)寻找到您要的关键字为止。
  • 保存文件
    w」: 在冒号输入字母「w」就可以将文件保存起来
  • 离开vim
    q」:按「q」就是退出,如果无法离开vim,可以在「q」后跟一个「!」强制离开vim
    wq」:一般建议离开时,搭配「w」一起使用,这样在退出的时候还可以保存文件。
  • 多文件切换
    vs + 文件名,打开多文件编辑窗口,如果该文件存在,直接打开文件进行编辑;如果文件不存在,创建文件后再进行编辑。
    ctrl+ww,光标在多文件窗口切换。
  • vim编辑器中使用外部命令
    !+外部指令」,使用英文感叹号加上指令,可以在不退出vim编辑器的情况下,使用外部指令,按Enter键(回车键)可以回到vim编辑器中进行输入命令!

5.总结

本章我们一起学习了,vim编辑器的三种模式:命令模式、插入模式、底行模式,这三种模式的关系如下:
在这里插入图片描述

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

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

相关文章

驱动开发练习,platform实现如下功能

实验要求 驱动代码 #include <linux/init.h> #include <linux/module.h> #include <linux/platform_device.h> #include <linux/mod_devicetable.h> #include <linux/of_gpio.h> #include <linux/unistd.h> #include <linux/interrupt…

PDCA循环

目录 1.认识PDCA&#xff1a; 2.PDCA循环的经典案例 3.PDCA的四个阶段和八个步骤 4.PDCA循环的优缺点&#xff1a; 5.案例 6.其他作用 1.认识PDCA&#xff1a; PDCA循环最早由美国质量统计控制之父Shewhat&#xff08;休哈特&#xff09;提出的PDS&#xff08;Plan Do Se…

hadoop3.x搭建到集群调优

一、基础环境安装 https://blog.csdn.net/fen_dou_shao_nian/article/details/120945221 二、hadoop运行环境搭建 2.1 模板虚拟机环境准备 0&#xff09;安装模板虚拟机&#xff0c;IP 地址 192.168.10.100、主机名称 hadoop100、内存 4G、硬盘 50G 1&#xff09;hadoop100…

【Html】用CSS定义咖啡 - 咖啡配料展示

显示效果 代码 index.html <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><title>CodePen - For The Love Of Coffee</title><link rel"stylesheet" href"./style.css">&l…

阿里云服务器部署安装hadoop与elasticsearch踩坑笔记

2023-09-12 14:00——2023.09.13 20:06 目录 00、软件版本 01、阿里云服务器部署hadoop 1.1、修改四个配置文件 1.1.1、core-site.xml 1.1.2、hdfs-site.xml 1.1.3、mapred-site.xml 1.1.4、yarn-site.xml 1.2、修改系统/etc/hosts文件与系统变量 1.2.1、修改主机名解…

基于ENC28J60+uIP1.0+STM32的UDP Server实现,以及主动发送数据,几个关键的问题可算整明白了!

ENC28J60&#xff0c;是一款SPI接口的以太网PHYMAC芯片&#xff0c;实现以太网物理层和MAC层硬件通信。uIP是一个TCP/IP软件协议栈&#xff0c;实现TCP、UDP、ARP、ICMP等网络协议。STM32F103RCT6通过SPI接口与ENC28J60通讯&#xff0c;并移植uIP协议&#xff0c;实现一个小型的…

利用Linux虚拟化技术实现资源隔离和管理

在现代计算机系统中&#xff0c;资源隔离和管理是非常重要的&#xff0c;特别是在多租户环境下。通过利用Linux虚拟化技术&#xff0c;我们可以实现对计算资源&#xff08;如CPU、内存和存储&#xff09;的隔离和管理&#xff0c;以提供安全、高效、稳定的计算环境。下面将详细…

如何将内网ip映射到外网?快解析内网穿透

关于内网ip映射到外网的问题&#xff0c;就是网络地址转换&#xff0c;私网借公网。要实现这个&#xff0c;看起来说得不错&#xff0c;实际上是有前提条件的。要实现内网ip映射到外网&#xff0c;首先要有一个固定的公网IP&#xff0c;可以从运营商那里得到。当你得到公网IP后…

Flink——Flink检查点(checkpoint)、保存点(savepoint)的区别与联系

Flink checkpoint Checkpoint是Flink实现容错机制最核心的功能&#xff0c;能够根据配置周期性地基于Stream中各个Operator的状态来生成Snapshot&#xff0c;从而将这些状态数据定期持久化存储下来&#xff0c;从而将这些状态数据定期持久化存储下来&#xff0c;当Flink程序一…

FPGA设计时序约束一、主时钟与生成时钟

​目录 一、主时钟create_clock 1.1 定义 1.2 约束设置格式 1.3 Add this clock to the existing clock 1.4 示例 1.5 差分信号 二、生成时钟generate_clock 2.1 定义 2.2 格式 2.2.1 by clock frequency 2.2.2 by clock edges 2.2.3 示例 2.2.4 自动生成时钟 2.…

MongoDB-1入门介绍

NoSQL NoSQL(NoSQL Not Only SQL)&#xff0c;意即反SQL运动&#xff0c;指的是非关系型的数据库 优点 1、对数据库高并发读写。 2、对海量数据的高效率存储和访问。 3、对数据库的高可扩展性和高可用性。 弱点&#xff1a; 1、数据库事务一致性需求 2、数据库的写实时性…

flink集群与资源@k8s源码分析-集群

0 介绍 本文是flink集群与资源@k8s源码分析系列的第二篇-集群 1 场景 下面详细分析各用例 2 启动k8s集群 k8s集群支持session和application模式,job模式将会被废弃,本文分析session模式集群 Configuration作为配置容器,几乎所有的构建需要从配置类获取配置项,这里不显示…

将docker镜像打成tar包

# 打包 docker save -o zookeeper.tar bitnami/zookeeper:3.9.0-debian-11-r11# 解压 docker load -i zookeeper.tar

day27IO(异常File综合案例)

1. 异常 1.1 异常概念 异常&#xff0c;就是不正常的意思。在生活中:医生说,你的身体某个部位有异常,该部位和正常相比有点不同,该部位的功能将受影响.在程序中的意思就是&#xff1a; 异常 &#xff1a;指的是程序在执行过程中&#xff0c;出现的非正常的情况&#xff0c;最…

事务碰上锁好似那油锅里进了火

目录 前言 场景 代码复现 提出疑问 该怎么解决呢 1.使用编程式事务 2.将事务独立出一个方法 前言 很多时候我们谈起事务都是如虎色变&#xff0c;一想起来都是脑袋懵懵的 事务的隔离级别及传播机制是什么Spring的事务底层实现原理了解吗哪几种情况下事务会失效 …

【探索C++】C++对C语言的扩展

(꒪ꇴ꒪ )&#xff0c;Hello我是祐言QAQ我的博客主页&#xff1a;C/C语言&#xff0c;数据结构&#xff0c;Linux基础&#xff0c;ARM开发板&#xff0c;网络编程等领域UP&#x1f30d;快上&#x1f698;&#xff0c;一起学习&#xff0c;让我们成为一个强大的攻城狮&#xff0…

JavaScript基础知识12——运算符:算数运算符,比较运算符

哈喽&#xff0c;大家好&#xff0c;我是雷工。 以下为JavaScript基础知识学习笔记。 一、算数运算符 1、算术运算符&#xff1a;即进行数学计算的符号。 2、有哪些算数运算符&#xff1a; &#xff1a;加法 -&#xff1a;减法 *&#xff1a;乘法 /:除法 %:取余&#xff08;…

系统架构设计师-数据库系统(3)

目录 一、数据控制 1、安全性 2、完整性 3、并发控制 4、故障恢复 二、数据库设计概述 1、数据库设计关注的问题 2、数据库性能优化 3、规范化与反规范化 一、数据控制 1、安全性 2、完整性 &#xff08;1&#xff09;实体完整性约束&#xff1a;规定基本关系的主属性不能取空…

Python开发利器之VS Code

Python官方提供了一个Python集成开发环境&#xff08;IDE&#xff09;&#xff1a; IDLE (Integrated Development and Learning Environment)。 它提供了一个图形用户界面&#xff0c;可以让开发者编写、调试和执行Python程序。IDLE包含Python解释器、代码编辑器、调试器和文件…

RK3568平台开发系列讲解(工具命令篇)ADB的安装

🚀返回专栏总目录 文章目录 一、ADB介绍二、Windows 下安装 adb 工具沉淀、分享、成长,让自己和他人都能有所收获!😄 一、ADB介绍 adb 全称 Android Debug Bridge,直译过来就是 Android 调试桥,它是一个通用的命令行工具。adb 做为 Android 设备与 PC 端连接的一个桥梁…