vim 的基础使用

目录

  • 一:vim 介绍
  • 二:vim 特点
  • 三:vim 配置
  • 四:vim 使用
    • 1、vim 语法格式
    • 2、vim 普通模式
      • (1)保存退出
      • (2)光标跳转
      • (3)文本删除
      • (4)文本查找
      • (5)撤销操作
      • (6)可视化模式
    • 3、vim 命令模式
      • (1)保存退出
      • (2)set 命令
      • (3)搜索替换
    • 4、vim 编辑模式

一:vim 介绍

vim 是一个跨平台的交互式文本编辑工具,是vi编辑器的增强版,常用于Linux环境中对文本文件的内容进行增删查改;

二:vim 特点

  1. 属于交互式编辑工具,允许用户实时编辑文件内容

  2. 编辑文件时,会将该文件的内容全部加载到内存,在内存中完成修改后再写入

  3. 有三种工作模式,末行模式、命令模式和编辑模式,默认进入的是命令模式;

三:vim 配置

vim 有两种级别的配置文件,分别是用户级配置文件和系统全局配置文件;vim 配置文件中,使用 " 作为注释符号,注释内容不会被执行:

  • 用户级配置文件:只对当前用户生效,一般默认不存在,需要手动创建;

  • 系统级配置文件:针对所有用户生效;

查看配置文件优先级和路径:

# 例如
$ vim --version | grep vimrc
   system vimrc file: "$VIM/vimrc"
     user vimrc file: "$HOME/.vimrc"
 2nd user vimrc file: "~/.vim/vimrc"

四:vim 使用

1、vim 语法格式

vim  [filename]
  • 如果指定的文件 filename 存在,打开文件并显示其内容。

  • 如果指定的文件不存在,创建一个空白的缓冲区(buffer),将其命名为 filename,如果编辑后保存 (:w),文件将被创建并写入指定路径。

  • 直接执行 vim 而不指定文件名:vim 会打开一个空白缓冲区(buffer),没有关联的文件。可以进行文本的输入,但是保存的时候需要在命令行模式下指定文件名 :w filename

2、vim 普通模式

  • 打开某个文件时,默认就处于普通模式;

  • 命令模式下可以通过执行相关命令来对文本进行管理,但是输入的命令不会在界面有任何显示;

  • 命令模式下不能直接编辑文本,而是通过按键命令操作文件内容;

(1)保存退出

  • ZQ:直接退出vim编辑器,当前更改的内容不会被保存;

  • ZZ:保存当前对文本的修改,然后退出vim编辑器;

(2)光标跳转

  • ^(脱字符):跳转到光标所在行的,数字0也可以;

  • $:将光标跳转到光标所在行的行尾

  • gg:光标移动到文本的第一行

  • G:光标移动到文本的最后一行,前面加数字就是移动到指定行。

  • [num]G:跳转到指定行。例如 11G,表示将光标跳转到第11行

(3)文本删除

  • d0或d$:(删除到行尾)从光标处开始的内容一直到光标所在行的最后一个字符会被删除;

  • dd: 删除光标所在行的整行内容;

  • dG:删除从光标开始行到最后一行的内容;

(4)文本查找

  • /关键字: 向下搜索,

  • ?关键字:从当前光标位置向上搜索,n:向上 N:向下

(5)撤销操作

  • u:撤销当前操作

  • ctrl+r:取消撤销操作

(6)可视化模式

可视化模式的作用是用于选择文本块,进入可视化模式后,可以批量选择。

  • v:选择文本中的单个字符

  • v:选择整行文本

  • ctrl+v:选择文本的一个矩形区块

例如:批量注释行:

1、先将光标移动到指定行的第一行行首
在这里插入图片描述

2、输入ctrl+v 进入可视化模式
在这里插入图片描述
3、向下移动光标,选中希望操作的每一行的第一个字符
在这里插入图片描述
4、输入大写字母 I切换至插入模式(大写I 表示在当前光标所在行的行首输入)
在这里插入图片描述
5、输入 #
在这里插入图片描述
6、按 ESC 键返回到普通模式
在这里插入图片描述

3、vim 命令模式

命令模式也叫做末行模式,于执行文件操作和全局操作命令,例如保存、退出、搜索和替换等。

普通模式下按 : 可以进入末行模式,按 Esc 返回普通模式。

(1)保存退出

  • w:保存

  • q:退出

  • x:保存并退出

  • !:结合w q等命令使用,表示强制的意思

(2)set 命令

  • set nu:显示行号,set nonu:取消行号显示

  • set ai:自动缩进,set noai:取消自动缩进

  • set paste:复制文本内容到该文件时候,保留文件格式,set nopaste:取消格式保留

  • set list:显示不可见的字符。^I:表示tab键 $:表示回车

  • set ff=unix|dos:更改文本格式,unix就是linux格式,dos就是windows的格式

  • set fileencodings=utf-8,iso-8859-1:设置当前内容显示的编码格式

  • set fileencoding=utf-8:设置使用vim创建新文件时的编码格式;

(3)搜索替换

说明:分隔符 / 可以换为其它的,例如 s#xx#yy#

  • s/xx/yy/:将文本中光标所在行的第一个xx替换为yy

  • s/xx/yy/g:将文本中光标所在行的所有的xx替换为yy

  • %s/xx/yy/g:将文本中所有的xx都替换为yy,如果不加g,只会搜索

4、vim 编辑模式

编辑模式也叫做插入模式,用于直接对文本内容进行操作。

在普通模式下按 i、a、o 可以进入到编辑模式;

  • i:在当前光标位置前插入文本; I:在当前行的行首插入文本

  • a:在当前光标位置后插入文本;A:在当前行的行首插入文本

  • o:在当前行下方新建一行并插入文本;O:在当前行上方新建一行并插入文本

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Unity2022接入Google广告与支付SDK、导出工程到Android Studio使用JDK17进行打包完整流程与过程中的相关错误及处理经验总结

注:因为本人也是第一次接入广告与支付SDK相关的操作,网上也查了很多教程,很多也都是只言片语或者缺少一些关键步骤的说明,导致本人也是花了很多时间与精力踩了很多的坑才搞定,发出来也是希望能帮助到其他人在遇到相似问…

【嵌入式硬件】直流电机驱动相关

项目场景: 驱动履带车(双直流电机)前进、后退、转弯 问题描述 电机驱动MOS管烧毁 电机驱动采用IR2104STRH1R403NL的H桥方案(这是修改之后的图) 原因分析: 1.主要原因是4路PWM没有限幅,修改…

数据库知识汇总1

一. 数据库系统概述 信息需要媒体(文本、图像视频等)表现出来才能被人类所获取,媒体可以转换成比特或者符号,这些称为数据; 数据/信息的特点:爆炸式增长、无限复制、派生; 数据库是指长期长期…

Dubbo扩展点加载机制

加载机制中已经存在的一些关键注解,如SPI、©Adaptive> ©Activateo然后介绍整个加载机制中最核心的ExtensionLoader的工作流程及实现原理。最后介绍扩展中使用的类动态编译的实 现原理。 Java SPI Java 5 中的服务提供商https://docs.oracle.com/jav…

Elasticsearch向量检索需要的数据集以及768维向量生成

Elasticsearch8.17.0在mac上的安装 Kibana8.17.0在mac上的安装 Elasticsearch检索方案之一:使用fromsize实现分页 快速掌握Elasticsearch检索之二:滚动查询(scrool)获取全量数据(golang) Elasticsearch检索之三:官方推荐方案search_after…

网关的主要作用

在网络安全领域,网关扮演着举足轻重的角色,它不仅是网络间的桥梁,更是安全防线的守护者。以下是网关在网络安全中的几个关键作用: 1. 防火墙功能:网关常常集成了防火墙技术,能够对进出网络的数据包进行严格…

【Cocos TypeScript 零基础 4.1】

目录 背景滚动 背景滚动 创建一个 空节点 背景丟进去 ( 复制一个,再丢一次都行) 新建TS脚本 并绑定到 空节点 上 再对TS脚本进行编辑 export class TS2bg extends Component {property (Node) // 通过属性面板去赋值bg1:Node nullproperty (Node) bg2:Node nullprope…

如何利用群晖NAS实现远程访问你的网页版Linux虚拟桌面环境

文章目录 前言1. 下载Docker-Webtop镜像2. 运行Docker-Webtop镜像3. 本地访问网页版Linux系统4. 群晖NAS安装Cpolar工具5. 配置异地访问Linux系统6. 异地远程访问Linux系统7. 固定异地访问的公网地址 前言 今天我要给大家介绍一下如何在群晖NAS设备上部署Docker-Webtop&#x…

MySQL 04 章——运算符

一、算数运算符 算数运算符主要用于数学运算,其可以连接运算符前后的两个数值或表达式 运算符名称作用示例加法运算符计算两个值或表达式的和SELECT AB-减法运算符计算两个值或表达式的差SELECT A-B*乘法运算符计算两个值或表达式的乘积SELECT A*B/或DIV除法运算符…

ES IK分词器插件

前言 ES中默认了许多分词器,但是对中文的支持并不友好,IK分词器是一个专门为中文文本设计的分词工具,它不是ES的内置组件,而是一个需要单独安装和配置的插件。 Ik分词器的下载安装(Winows 版本) 下载地址:…

Oracle DG备库数据文件损坏修复方法(ORA-01578/ORA-01110)

今天负责报表的同事反馈在DG库查询时出现如下报错 ORA-01578:ORACLE数据块损坏(文件号6,块号 2494856)ORA-01110:数据文件6: /oradata/PMSDG/o1 mf users_molczgmn_.dbfORA-26040:数据块是使用 NOLOGGING 选项加载的 可以看到报错是数据文件损坏,提示了file id和b…

idea无法安装插件

目录 修改工具配置 本地安装 无法下载很多时候就是延迟太高导致的,我们先打开插件官网看一下 Python - IntelliJ IDEs Plugin | Marketplace 修改工具配置 1、配置代理(点击 setting-点击 plugins-在点击 http proxy Settings) 输入&…

Linux部署web项目【保姆级别详解,Ubuntu,mysql8.0,tomcat9,jdk8 附有图文】

文章目录 部署项目一.安装jdk1.1 官网下载jdk81.2 上传到Linux1.3 解压1.4 配置环境变量1.5 查看是jdk是否安装成功 二.安装TomCat2.1 官网下载2.2 上传到Linux2.3 解压2.4配置2.5 启动Tomcat2.6 验证是否成功 三.安装mysql四.部署javaweb项目4.1 打包4.2 启动tomcat 部署项目 …

服务器等保测评日志策略配置

操作系统日志 /var/log/message 系统启动后的信息和错误日志,是Red Hat Linux中最常用的日志之一 /var/log/secure 与安全相关的日志信息 /var/log/maillog 与邮件相关的日志信息 /var/log/cron 与定时任务相关的日志信息 /var/log/spooler 与UUCP和news设备相关的…

初学stm32 --- FSMC驱动LCD屏

目录 FSMC简介 FSMC框图介绍 FSMC通信引脚介绍 FSMC_NWE 的作用 FSMC_NWE 的时序关系 FSMC_NOE 的含义 FSMC_NOE 的典型用途 FSMC_NOE 的时序关系 使用FSMC驱动LCD FSMC时序介绍 时序特性中的 OE ILI9341重点时序: FSMC地址映射 HADDR与FSMC_A关系 LCD的…

业务模型与UI设计

业务数据模型的设计、UI设计这应该是程序设计中不可缺少的部分。做程序设计的前提应该先把这两块设计好,那么,来一个实际案例,看看这2块的内容。 汽车保养记录业务模型与UI设计: 一、【车辆清单】 记录车辆相关的数据&#xff0…

【JavaScript】变量-常量-数据类型-类型转换

目录 一、JavaScript 介绍 1. JavaScript (是什么?) 2. 作用(做什么?) 3. JavaScript的组成(有什么?) 3.1 ECMAScript: 3.2 Web APIs : 总结: 4. Jav…

day30-awk精讲

awk其实不仅仅是工具软件,还是一种编程语言。 不过,本文只介绍它的命令行用法,对于大多数场合,应该足够用了。 awk是什么 awk是一个强大的linux命令,有强大的文本格式化的能力,好比将一些文本数据格式化…

实战设计模式之建造者模式

概述 在实际项目中,我们有时会遇到需要创建复杂对象的情况。这些对象可能包含多个组件或属性,而且每个组件都有自己的配置选项。如果直接使用构造函数或前面介绍的工厂方法来创建这样的对象,可能会导致以下两个严重问题。 1、参数过多。当一个…

滤波器的主要参数

为什么选择高阶: 滤波器的主要参数通常包括以下几个方面: 截止频率 (Cutoff Frequency): 这是滤波器能够有效通过或抑制信号的频率点。对于低通滤波器,信号低于截止频率的部分会被通过,高于截止频率的部分会被衰减。高…