vim教程

2023-11-14


vim教程网

在 shell 终端下输入命令 vimtutor 便可进入 Vim 官方提供的 30 分钟 Vim 入门教程

vim的配置

1.移动光标

左下上右: hjkl

nw:向后移动光标, 移动n个单词,移到单词开头

ne:向后移动n个单词,移动到单词的开头

$ : 移动光标到行的末尾
e:移动到单词末尾

2.进入和退出

退出:q!(无保存退出), wq(保存并退出).

3.删除

x:删除光标所在位置的字符;
dw:从当前光标当前的位置直到下一个单词起始位置处,不包括他的第一个字符。(hello world, 当光标在e处时,得到hworld不保留空格);
de : 从当前光标当前位置直到单词末尾,包括最后一个字符。(hello world 的
h world,保留空格);
d$: 从光标处删除到行末;
dnw :向后删除n个单词;
dd:删除一行;
ndd:删除n行

4.插入

i:光标前插入文本,I:插入到行首
a:插入到光标后, A:插入到光标所在行的末尾。

输入小写的 o 可以在光标下方打开新的一行并进入插入模式。
输入大写的 O 可以在光标上方打开新的一行。

5.撤销

u

6.更改
替换输入r在输入要替换的字符,R:替换多个字符
更改:输入cw在输入单词
更改更多:c [number] motion, w代表单词,$代表行的末尾。

7.定位及文件状态

control + g,显示文件状态信息和光标所在行
gg,跳转到文本第一行
: $ 或shift + g , 跳转到最后一行
:1,跳转到第一行。

8.搜索类

输入/字符,在输入要查的字符串,再按回车
n:向下查找, N是向上查找
逆向查找则将/替换成?

9.匹配括号的查找

如果光标当前位置是括号(、)、[、]、{、},按 % 会将光标移动到配对的括号上。

10.将文本里的某个字符串全部替换

 在一行(光标所在行)内替换头一个字符串 old 为新的字符串 new,请输入 : s/old/new
 在一行(光标所在行)内替换所有的字符串 old 为新的字符串 new,请输入 : s/old/new/g
 在两行内替换所有的字符串 old 为新的字符串 new,请输入  :#,#s/old/new/g
 在文件内替换所有的字符串 old 为新的字符串 new,请输入  :%s/old/new/g
 进行全文替换时询问用户确认每个替换需添加 c 标志        :%s/old/new/gc
为每行的开头添加字符串new, 请输入:%s/^/new/g
为每行的结尾添加字符串new,请输入:%s/$/new/g

11.在 VIM 内执行外部命令的方法

! + < command >

12.关于保存文件的更多信息

:w FILENAME 可将当前 VIM 中正在编辑的文件保存到名为 FILENAME 的文
件中。

13.一个具有选择性的保存命令

v motion :w FILENAME 可将当前编辑文件中可视模式下选中的内容保存到文件
FILENAME 中。

14.一个具有选择性的保存命令

:r FILENAME 可提取磁盘文件 FILENAME 并将其插入到当前文件的光标位置
后面。
:r !dir 可以读取 dir 命令的输出并将其放置到当前文件的光标位置后面。

15.复制粘贴文本

操作符 y 复制文本,p 粘贴先前复制的文本。

16.设置类命令的选项

输入 :set xxx 可以设置 xxx 选项。一些有用的选项如下:
‘ic’. ‘ignorecase’ 查找时忽略字母大小写
‘is’ ‘incsearch’ 查找短语时显示部分匹配
‘hls’ ‘hlsearch’ 高亮显示所有的匹配短语
选项名可以用完整版本,也可以用缩略版本。
在选项前加上 no 可以关闭选项: :set noic

17.获取帮助信息,创建启动脚本,补全功能

  1. 输入 :help 或者按 键或 键可以打开帮助窗口。

  2. 输入 :help cmd 可以找到关于 cmd 命令的帮助。

  3. 输入 CTRL-W CTRL-W 可以使您在窗口之间跳转。

  4. 输入 :q 以关闭帮助窗口

  5. 您可以创建一个 vimrc 启动脚本文件用来保存您偏好的设置。

  6. 当输入 : 命令时,按 CTRL-D 可以查看可能的补全结果。
    按 可以使用一个补全。

18.正则表达式

1.1 表示【目标字符集】的元字符

正则表达式中,列举目标字符集需要用到 [] 元字符。为了方便描述,以 abcd 作为目标字符集作为举例说明。

[abcd] 表示匹配方括号中列举的 任意一个 字符,即匹配 abcd 中的任意一个字符。
可用 - 表示字符范围来减少列举的,例如,[a-d] 等价于 [abcd]。
[^abcd] 表示匹配除 方括号中字符以外 的任意字符。

为了使用上的便利,正则表达式中保留定义了一些常用的字符集合,主要包括:

. 等价于 [^\n],表示匹配 任意一个除换行符 ( \n ) 外的其他字符。

\l 等价于 [a-z],表示匹配 任意一个小写字母。
\L 等价于 [^a-z],表示匹配 任意一个除小写字母外的其他字符。
\u 等价于 [A-Z],表示匹配 任意一个大写字母。
\U 等价于 [^A-Z],表示匹配 任意一个除大写字母外的其他字符。

\w 等价于 [0-9A-Za-z_],表示匹配 任意一个单词字母。
\W 等价于 [^0-9A-Za-z_],表示匹配 任意一个除单词字母外的其他字符。

\d 等价于 [0-9],表示匹配 任意一个阿拉伯数字。
\D 等价于 [^0-9],表示匹配 任意一个除阿拉伯数字外的其他字符。
\x 等价于 [0-9A-Fa-f],表示匹配 任意一个十六进制数字。
\X 等价于 [^0-9A-Fa-f],表示匹配 任意一个除十六进制数字外的其他字符。

注:上面这些保留定义都用到了转义元字符 \。因为 l、u、d、x 这些都是普通字母,只有加上转义字符才有上述特殊含义。

1.2 表示【次数】的元字符

如果希望指定一个目标字符在匹配结果中同时出现多次,那么需要用到正则表达式中表示 次数 的元字符,主要包括:

  •            表示匹配 0个或者任意个目标字符。
    

+ 表示匹配 1个或者任意个目标字符。
? 表示匹配 0个或者1个目标字符。

{n,m} 表示匹配 n-m 个目标字符,即最少匹配 n 个目标字符,最多匹配 (m-1) 个目标字符。
{n} 表示匹配 n 个目标字符 (即目标字符需连续出现 n 次)。
{n,} 表示匹配 n-任意个目标字符,即最少匹配 n 个目标字符。
{,m} 表示匹配 0-m个目标字符,即最多匹配 (m-1) 个目标字符,也可以不匹配 (0)。

1.3 表示【位置】的元字符

如果希望指定目标字符出现的位置,可以使用正则表达式中表示 位置 的元字符,主要包括:

^ 表示匹配 输入字符串的开始位置 (行首)。
$ 表示匹配 输入字符串的结束位置 (行尾)。
< 表示匹配 单词词首。
> 表示匹配 单词词尾。

1.4 表示【子模式】的元字符

元字符 () 用来标识一个子模式,任何 () 内部的匹配文本被称作为一个 子匹配,都会被自动保存到一个临时的仓库中以便后续进行引用。

可以用 \1、\2 …… \9 来依次引用被每对 () 捕获的子匹配;不论模式中是否使用了 (),元字符 \0 永远会自动引用于整个匹配。

1.5 表示【非打印字符】的元字符

正则表达式中比较常用的非打印元字符主要包括:

\n 表示匹配 一个换行符。
\r 表示匹配 一个回车符。
\t 表示匹配 一个制表符 ( Tab 键)。
\s 表示匹配 任意一个空白字符,包括空格、制表符、换页符等。
\S 表示匹配 任意一个非空白字符。

2.、正则表达式在Vim查找命令中的应用

如果希望搜索所有以 // 开头的行,可以执行 / ^ \ / \ / . * $ 命令。这里便用到了表示行首和行尾的元字符 ^ 和 $,以及表示任意一个非换行符外的元字符 . 和表示字符出现次数的元字符 * 。
如果希望搜索所有的空行,可以使用 / ^ $ 命令

3.三、正则表达式在Vim替换命令substitute中的应用

Vim替换命令 substitute (缩写形式 s) 的基本语法是 :[range]substitute/源字符串/目标字符串/[option],其中range和option字段都可以缺省不填。

可通过 :%s/\s*$//g 命令删除 Vim 当前打开文件中的所有行尾空格

同样地,可通过 :%s/^\s*//g 命令删除 Vim 当前打开文件中的所有行首空格

可通过命令 :%s/^ 在全文范围内,在所有的行首加入 // ,达到注释当前文件所有代码的效果

正则表达式在Vim global命令中的应用
可以在 Vim 中执行命令 :g/^\s*KaTeX parse error: Undefined control sequence: \/ at position 55: …所有行,可以执行命令 :g/^\̲/̲\/.*/d,

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

vim教程 的相关文章

  • 【python】爬虫实操 完整案例 -- 豆瓣前250电影输出为 .xls文件

    安装包 from bs4 import BeautifulSoup 网页解析 import re 正则表达式 import urllib request urllib error 制定url 获取网页数据 import xlwt 进行exc
  • 微前端运行时

    目录 微前端运行时 基于 SPA 的微前端架构 应用生命周期 微前端运行时 谈到微前端绕不开的话题就是为什么不适用 iframe 作为承载微前端子应用的容器 其实从浏览器原生的方案来说 iframe 不从体验角度上来看几乎是最可靠的微前端方
  • ELK入门

    参考 https www elastic co cn products root server1 6 6 ls apm server 6 6 1 x86 64 rpm kibana 6 6 1 x86 64 rpm auditbeat 6
  • 线程同步(三)

    目录 条件变量 条件变量操作函数函数原型 线程阻塞函数 唤醒阻塞线程 生产者和消费者模型 信号量函数 生产者和消费者模型 总结 条件变量 条件变量是一种线程间同步的机制 用于协调线程之间的操作 当一个线程正在等待某个条件变成真 而另一个线程
  • (struts2学习篇)Struts2资源国际化

    第一步 在Web项目下的src创建国际资源文件 第二步 在struts2 xml布局文件集成资源路径
  • Unity跟随并环绕移动物体

    是一个比较简单的实现办法 方向已经写死了 有需要的自己改吧 思路 在开始游戏时获取和玩家的位置差距的向量 然后再Update中更改位置到指定距离 然后使用RotateRound进行旋转 最后再获取差距向量 形成一个循环 这其中的顺序是很重要
  • ubuntu安装中文输入法

    ubuntu环境 ubuntu20 4 此处安装的是google pinyin输入法 一 安装fcitx googlepinyin 1 安装fcitx googlepinyin sudo apt get install fcitx goog
  • 基于SSM的垃圾分类管理系统源码

    活动地址 毕业季 进击的技术er 博主介绍 在职Java研发工程师 专注于程序设计 源码分享 技术交流 专注于Java技术领域和毕业设计 CSDN官方推荐10W JAVA技术人文章发布打卡社区 项目名称 基于SSM的垃圾分类管理系统源码 视
  • SAE:如何使用phpExcel

    1 把phpExcel的工具类上传到Sae的云服务器 2 然后你要在Storage 上创建一个Bucket 名字你可以自己起 3 上代码 use sinacloud sae Storage as Storage s new SaeStora
  • JavaScript,将rgb颜色字符串转化为16进制

    颜色字符串转换 rgb字符串 gt 16进制 描述 输入 rgb 255 255 255 输出 ffffff 思路 1 rgb中 每个逗号后面空格数不固定 正则表达式中需要考虑匹配空格 2 当输入不符合rgb格式 返回原始输入 3 当输入符
  • apache配置指令速查

    AcceptFilter AcceptFilter 指令 说明 根据协议类型对监听Socket进行优化 语法 AcceptFilter protocol accept filter 作用域 server config 状态 核心 C 模块
  • 全局配置_中兴天机配置公布:智汇屏+全局黑暗模式

    宅男科技12月16日消息 中兴今日正式在其官方社交账号上公布了即将发售的中兴天机Axon 10s Pro 5G的配置参数 并表示新机将于2020年年初正式对外发布 据悉 即将面世的中兴天机Axon 10s Pro 5G将会搭载最新的骁龙86
  • 『Newsletter 丨第二期』PieCloudDB Database 新增控制台、LDAP 支持、虚拟数仓日志等多项功能

    PieCloudDB Database 最新动态 云上云版 控制台 功能上线 PieCloudDB 云上云版 控制台 功能全新上线 控制台集成了组织 数仓 用户 费用 权限等多方位管理功能 支持在一个组织下创建和管理多个数仓 并支持独立的一
  • 【华为OD统一考试B卷

    在线OJ 已购买本专栏用户 请私信博主开通账号 在线刷题 运行出现 Runtime Error 0Aborted 请忽略 华为OD统一考试A卷 B卷 新题库说明 2023年5月份 华为官方已经将的 2022 0223Q 1 2 3 4 统一
  • arduino黑线循迹小车程序_基于arduino的循迹小车(含有PID算法)

    循迹小车一般分为两方面 一方面是简单的闭环赛道只有直道和弯道 另一方面是毕设类型的包括一些元素 90度弯道 十字道路 S形弯道等 本篇博客试根据下图来进行书写的 如果大家有什么新的元素 也可以在下方评论 我进行更新 作者 sumjess 注
  • linux字符串转数字

    转载 https www cnblogs com baofengc p 9042128 html 方法一 echo 96 56 awk print int 0 输出结果 96 方法二 A 2 B 51 let C A B echo C 方法
  • static在c语言中的作用_C语言关键字 static 的用法

    接上文 C语言的32个关键字 C语言 static 关键字的常见用法有三种 用于局部变量的修饰符 用于全局变量的修饰符 用于函数的修饰符 1 用于局部变量的修饰符 当 static 用于修饰局部变量时 通常是在某个函数体内 只能在该函数内被
  • zabbix如何监控linux磁盘性能IO

    前提环境 perl和python 以及zabbix agent已是可用状态 需要主要监控的指标 1 每秒IO数 即iops或tps 2 吞吐率 3 平均IO尺寸 avgrq sz 4 IO等待队列长度 avgqu sz 5 磁盘活动时间百分

随机推荐

  • 阅人有术

    第一部分 阅人 人生的必修课 没有人能隐于世外 无论你走到哪里 都会碰到人 你必须与之相处 因为人无所不在 你必须了解人 因为你永远无法独自成功 不同的人每天都不得不重复着同一个古老而新鲜的游戏 与人打交道 这个游戏的古老在于 人类就是这样
  • Odoo Wizard界面显示带有复选框列表及勾选数据获取 Python

    Odoo Wizard界面显示带有复选框列表及勾选数据获取 Python 在Odoo应用程序中 Wizard 向导 是一种常用的界面元素 用于引导用户完成特定任务 在这篇文章中 我们将学习如何在Odoo的Wizard界面中显示带有复选框列表
  • GoFrame带你从0-1快速入门

    文章目录 GoFrame 带你从 0 1 快速入门 一 GoFrame介绍 1 1GF基本介绍 1 2GF特点 1 3GF地址 1 4GF框架 二 GoFrame基础环境搭建 2 1环境搭建 1 安装golang 2 安装goland 3
  • Java源码分析(二)Double

    本篇是源码分析的第二篇 上篇我们一起分析了Integer类的源码 本篇一起学习下Double类的源码 看下其实现 一 Double类图 首先 相比Integer Double类的源码只有1000 行代码 如下是Integer及其关联类 接口
  • Ubuntu 安装、卸载JDK

    JDK 介绍 Open JDK 和 Oracle JDK区别 OpenJDK是Java开发工具包的开源实现 Oracle JDK是Java开发工具包的官方Oracle版本 尽管OpenJDK已经足够满足大多数的案例 但是许多程序比如Andr
  • 【Java预科】CH01 MarkDown语法

    1 标题 空格 标题名字 空格 二级标题 越多字体越小 最多只到六级 一级标题 二级标题 三级标题 四级标题 五级标题 六级标题 七级标题不存在 2 文字 加粗 在目标文字前后加 斜体 在目标文字前后加 斜体 加粗 在目标文字前后加 删除线
  • IOException parsing XML document from ServletContext resource [/<NONE>]; closed - call ‘refresh‘

    问题描述 SpringMVC项目添加ContextLoaderListener后无法启动
  • Qt事件(Event)

    事件Event 1 事件的概述 2 通过QLabel了解事件的操作 3 重写事件 4 重写鼠标按下事件 5 获取鼠标按下或移动的坐标 6 查看的QMouseEvent的信息 7 判断button的返回值 8 判断鼠标的哪个按键按下 9 判断
  • java中的throwable异常和错误

    Java中有个java lang Throwable类 这个类是Java中所有异常和错误的基类 Throwable下有两个大类那就是异常 Exception 和错误 Error Throwable 有两个重要的子类 Exception 异常
  • mysql的docker镜像数据库初始化踩坑记

    一 制作docker镜像 在当前目录新建子目录script 将数据库初始化脚本拷贝进去 后缀名为 sql 脚本执行顺序是按字母大小排序 建议可以按 1 xxx sql 2 xxx sql这样命令 Dockerfile如下 FROM mysq
  • aps和php撒意思?,aps-c画幅是什么意思

    aps c画幅是指数码相机的CCD CMOS 的尺寸与APS的C型画幅大小相仿 在25mmX17mm左右 差不多是全画幅CCD CMOS 面积的一半 也称半幅机 本文演示环境 Windows7系统 Dell G3电脑 APS C画幅意思 A
  • Android前端音视频数据接入GB28181平台意义

    技术背景 在我们研发Android平台GB28181前端音视频接入模块之前 业内听到最多的是 如何用Android或者Windows端 在没有国标IPC设备的前提下 模拟GB28181的信令和媒体流交互流程 实现GB28181整体方案的测试
  • 头文件string与string.h的区别

    头文件string与string h的区别 在C 中 include
  • wayland与linux_Linux最让人叹息的地方

    这两天有空 试了试Sway 作为一直以来的i3用户 自己的使用环境各项配置基本也是该配的都配齐了 本来不以为然 没想到真正去到Sway却发现Wayland确实流畅很多 折腾了1天 满心想着终于来到了一个Tear free的Linux环境 结
  • 表完整性约束

    介绍 认识 约束条件和数据类型宽度一样 都是可选类型 作用 用于保证数据的完整性 一致性 有哪几种约束 primary key PK 标识该字段为该表的主键 可以唯一标识的记录 foreign key FK 标识该字段为该表的外键 not
  • JDBC的URL详解

    文章目录 JDBC的URL详解 1 jdbc的格式 2 例如 3 参数详解 JDBC的URL详解 1 jdbc的格式 jdbc mysql host failoverhost port database propertyName1 prop
  • 计算机网络的认识知乎,【知乎】计算机网络这门课为何如此之难

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 操作系统和计算机网络的共同点 在于它们都是相当复杂的体系结构 如果觉得难 也许是因为自己没能产生足够的求知欲 你也说了 无聊 晦涩 而无聊感其实是没治的 对课程的热情和对女生的爱慕感其实差不多
  • Texstudio的学习(一)

    一 入门知识 1 三要素 documentclass option class usepackage option package begin 环境名称 内容 end 环境名称 2 命令符号 1 documentclass option c
  • 东北大学c++实验(第二周)

    include
  • vim教程

    文章目录 1 移动光标 2 进入和退出 3 删除 4 插入 5 撤销 7 定位及文件状态 8 搜索类 9 匹配括号的查找 10 将文本里的某个字符串全部替换 11 在 VIM 内执行外部命令的方法 12 关于保存文件的更多信息 13 一个具