Vim入门教程vimtutor1.7总结
vimtutor
命令可以打开教程文档
原文特别提示 ⬇⬇⬇
特别提示:切记您要在使用中学习,而不是在记忆中学习
Vim模式
- 正常模式(Normal Mode):默认模式,可以使用基础命令进行操作
- 命令模式(Command Mode):
:
起手,可以使用比正常模式更加复杂的命令进行操作 - 插入模式(Insert Mode):主要用于编写文档
- 可视模式(Visual Mode):模拟鼠标选中内容
- 替换模式(Replace Mode):用于替换字符
默认规则
Crtl组合键
无需区分大小写<key>
表示某个按键- 所有的
:
命令都需要以<Enter>
结束 - 未特别说明的操作均在正常模式下执行
operator [number] motion
:操作符 [数字] 移动
命令表示对number
次motion
所扫过的区域进行operator
操作,number
可选,例如d4w
、c2e
Lesson 1
vim file_name
:编辑文件
h
、j
、k
、l
:分别用于向左、向下、向上、向右移动光标,方向键
与hjkl
具有相同功能,3j
表示光标向下移动3行
:q!
:放弃所有修改并强制退出编辑器
x
:用于将光标所在位置字符删除,3x
表示删除光标位置及其之后的共3个字符
i
:切换为插入模式
A
:用于向该行末尾追加内容,会自动转为编辑模式并将光标置于光标所在行末尾
:wq
:用于保存并退出编辑器
<Esc>
:将切换为正常模式,并撤销一个不想输入或部分完整的命令
数字 + 方向键或hjkl
:将光标向某个方向移动n次
Lesson 2
w
:从当前光标当前位置直到下一个单词起始处,不包括它的第一个字符
e
:从当前光标当前位置直到单词末尾,包括最后一个字符
0
:从当前光标当前位置移动到行首
$
:从当前光标当前位置直到当前行末
2w
:光标向后移动到第二个单词首字符
3e
:光标向后移动到第三个单词末尾
4$
:光标向后移动到第四行行尾
dw
:将光标所在位置的单词删除
d2w
:删除两个单词
d$
:将光标所在位置及该位置至所在行末尾的所有字符删除
de
:将光标所在位置及该位置至所在单词末尾的所有字符删除
d0
:将光标所在位置及该位置至所在行首字符的所有字符删除
dd
:删除整行
2dd
:删除两行
U
:撤销上次对某一行的修改(不包括整行删除、整行插入),U
会撤销U
本身,U
只能撤销最新一次修改
u
:撤销上一次编辑命令,包括U
但不包括u
和Ctrl r
Ctrl r
:重做上一次命令,包括U
但不包括u
和Ctrl r
Lesson 3
粘贴
p
:将最后一次删除的内容粘贴至光标之后,若为d$
等非完整行内容,以字符为单位直接粘贴在光标之后,若为dd
等完整行内容,以行为单位向下粘贴在新的行
替换
rc
:c为任意字符,r会替换光标所在位置字符,c为指定的替换后的内容
修改
cw
:删除光标至单词末尾字符,并切换为插入模式
c$
:删除光标至行末尾字符
c4l
:删除光标及其右边紧邻的共计4个字符,并切换为插入模式
Lesson 4
光标移动
gg
:光标跳转至第一行
G
:光标跳转至最后一行
5G
:光标跳转至第5行
文件状态
Ctrl G
:在最下方显示文件状态信息以及当前光标所在位置
查找
/str
:自上而下查找字符串,str
为要搜索的任意字符串
/str\c
:自上而下查找字符串,str
为要搜索的任意字符串,查找时忽略大小写
?str
:自下而上查找字符串,str
为要搜索的任意字符串
n
:查找下一个满足条件的字符串
N
:查找上一个满足条件的字符串
Ctrl O
:返回到上一个查找位置
Ctrl I
:返回下一个查找位置
%
:配对括号查找,对光标所在位置的(
、)
、[
、]
、{
、}
使用该命令可以将光标跳到与之配对括号的的位置,可以用于在程序调试时查找不配对括号
替换
:s/old/new
:将光标所在行的第一个old
字符串替换为new
:s/old/new/g
:将光标所在行所有的old
字符串替换为new
:n1,n2/old/new/g
:将[n1, n2]
间的所有的old
字符串替换为new
%s/old/new/g
:将整个文件中所有的old
字符串替换为new
:%s/old/new/gc
:将整个文件中的old
字符串替换为new
,且每次替换前要确认(confirm)是否进行替换
Lesson 5
执行外部命令
:!command
:在VIM内执行外部命令需要以:!
为开头,command
为任意外部命令,包括带命令行参数的命令,支持空命令:!
保存
:w filename
:保存为filename
文件。filename
为文件名,若省略文件名则保存文件到当前
v motion :w FILENAME
:部分保存,使用v
切换为可视模式,以光标所在位置为起始位置,使用光标移动选择要保存的部分内容,直到下次使用:
会触发:'<,'>
,继续输入w filename
可以保存为filename
文件
可视模式
v
:进入可视模式,移动光标可以选中内容,可以对选中的高亮内容进行操作,如d
可以删除选中内容,c
可以删除选中内容并切换为插入模式
提取与合并
:r filename
:将filename
文件的内容以行为单位粘贴至光标下方
:r !command
:将command
命令的结果以行为单位粘贴至光标下方,如:r !ls
Lesson 6
插入
o
:在光标下方新开一行,并将光标移动至新开行行首,切换模式为插入模式
O
:在光标上方新开一行,并将光标移动至新开行行首,切换模式为插入模式
i
:保持光标不动,切换至插入模式
a
:将光标向后移动一个字符,并切换至插入模式
A
:将光标移动至行尾,并切换至插入模式
注:使用<Esc>
退出插入模式时光标会在本行向左移动一个字符,若已在第一个字符则不会移动
替换
R
:切换至替换模式,替换模式与插入模式类似,区别在于插入模式中每个输入的字符都会替换光标原本所在位置的字符
复制
y
:将内容以字符为单位进行复制,使用p
可以粘贴到光标位置之后,例如yw
,或者切换至可视模式复制高亮内容
设置
:set ic
、:set ignorecase
:ignore case,设置查找或者替换忽略大小写
:set noic
:not ingore case,设置查找或者替换不忽略大小写
:set hls
、:set hlsearch
:高亮显示所有的匹配短语
:set is
、:set incsearch
:增量搜索
注:在选项前加no
可以关闭设置
Lesson 7
帮助
<HELP>
、<F1>
、:help
:使用在线帮助系统
:help w
:help c_CTRL-D
:help insert-index
:help user-manual
:help vimrc-intro
补全功能
首先确保VIm不是在以兼容模式运行:set nocp
,在命令模式下输入部分命令:command
,例如部分:!ls /root
、:!dir
、set number
<TAB>
:自动选取一个补全命令
Ctrl D
:列出补全备选向
Vim启动脚本
使用vimrc文件自定义VIm配置,下面是Vim风格的文件编辑方式:
- 开始编辑 vimrc 文件
:edit ~/.vimrc 这是 Unix 系统所使用的命令
:edit $VIM/_vimrc 这是 MS-Windows 系统所使用的命令
- 将示例文件复制过来
vimrc_example.vim
通常位于/usr/share/vim/vimXXX
文件夹下
:r $VIMRUNTIME/vimrc_example.vim
- 保存文件
:write
相关文章:
Vim入门教程vimtutor1.7总结
vimtutor命令可以打开教程文档 原文特别提示 ⬇⬇⬇ 特别提示:切记您要在使用中学习,而不是在记忆中学习 Vim模式 正常模式(Normal Mode):默认模式,可以使用基础命令进行操作命令模式(Command…...

Stephen Wolfram:让 ChatGPT 真正起作用的是什么?
What Really Lets ChatGPT Work? 让 ChatGPT 真正起作用的是什么? Human language—and the processes of thinking involved in generating it—have always seemed to represent a kind of pinnacle of complexity. And indeed it’s seemed somewhat remarkabl…...

CTF-Flask-Jinja2(持续更新)
放心,我会一直陪着你 一.知识一.在终端的一些指令1.虚拟环境2.docker容器二.SSTI相关知识介绍1.魔术方法2.python如何执行cmd命令3.SSTI常用注入模块(1)文件读取(2)内建函数eval执行命令(3)os模块执行命令(4)importlib类执行命令(5)linecache函数执行命令(6)subproc…...

linux文件I/O之 fcntl() 函数用法:设置文件的 flags、设置文件锁(记录锁)
头文件和函数声明 #include <unistd.h> #include <fcntl.h> int fcntl(int fd, int cmd, ... /* arg */ ); 函数功能 获取、设置已打开文件的属性 返回值 成功时返回根据 cmd 传递的命令类型的执行结,失败时返回 -1,并设置 errno 为相…...
黑马项目一完结后阶段面试45题 JavaSE基础部分20题(一)
一、Java数据类型 基本数据类型——四类八种 整数型 byte short int long 浮点型 float double 字符型 char 布尔型 boolean 引用数据类型 String字符串 类(对象) 接口类型 数组类型 枚举类型 二、面向对象的三大特性 1.封装 把同一类事物…...

(一)创建型设计模式:3、建造者模式(Builder Pattern)
目录 1、建造者模式含义 2、建造者模式的讲解 3、使用C实现建造者模式的实例 4、建造者模式的优缺点 5、建造者模式VS工厂模式 1、建造者模式含义 The intent of the Builder design pattern is to separate the construction of a complex object from its representatio…...

指针进阶大冒险:解锁C语言中的奇妙世界!
目录 引言 第一阶段:🔍 独特的字符指针 什么是字符指针? 字符指针的用途 演示:使用字符指针拷贝字符串 字符指针与字符串常量 小试牛刀 第二阶段:🎯 玩转指针数组 指针数组是什么? 指针…...

2.0 Maven基础
1. Maven概述 Maven概念 Apache Maven是一个软件项目管理工具,将项目开发和管理过程抽象程一个项目对象模型(POM,Project Object Model)。 Maven作用 项目构建 提供标准的、跨平台的自动化项目构建方式。 依赖管理 方便快捷…...

在Linux虚拟机内配置nginx以及docker
目录 1、nginx源码包编译以及安装依赖 1、配置安装所需的编译环境 2、安装函数库(pcre、zlib、openssl) 2、安装nginx 1、获取源码包 2、解压编译 3、启动nginx服务 1、关闭防火墙 2、运行nginx 3、使用本地浏览器进行验证 3、安装docker 1、…...

数据结构-带头双向循环链表的实现
前言 带头双向循环链表是一种重要的数据结构,它的结构是很完美的,它弥补了单链表的许多不足,让我们一起来了解一下它是如何实现的吧! 1.节点的结构 它的节点中存储着数据和两个指针,一个指针_prev用来记录前一个节点…...

android Ndk Jni动态注册方式以及静态注册
目录 一.静态注册方式 二.动态注册方式 三.源代码 一.静态注册方式 1.项目名\app\src\main下新建一个jni目录 2.在jni目录下,再新建一个Android.mk文件 写入以下配置 LOCAL_PATH := $(call my-dir)//获取当前Android.mk所在目录 inclu...

MySQL中的索引
1.2.MySQL中的索引 InnoDB存储引擎支持以下几种常见的索引:B树索引、全文索引、哈希索引,其中比较关键的是B树索引 1.2.1.B树索引 InnoDB中的索引自然也是按照B树来组织的,前面我们说过B树的叶子节点用来放数据的,但是放什么数…...

idea中如何处理飘红提示
idea中如何处理飘红提示 在写sql时,总是会提示各种错误 查找资料,大部分都是说关提示,这里把错误提示选择为None即可 关掉以后,也确实不显示任何提示了,但总有一种掩耳盗铃的感觉 这个sms表明明存在,但是还…...
Elasticsearch使用中出现的错误
Elasticsearch使用中出现的错误 1、分页查询异常 在分页的过程中出现了一个问题是当查询的数据超过10000条的时候报了异常: from size must be less than or equal to: [10000]这个问题最快捷的解决方式是增大窗口大小: curl -XPUT http://127.0.0.…...

【IMX6ULL驱动开发学习】01.编写第一个hello驱动+自动创建设备节点(不涉及硬件操作)
目录 一、驱动程序编写流程 二、代码编写 2.1 驱动程序hello_drv.c 2.2 测试程序 2.3 编写驱动程序的Makefile 三、上机实验 3.1 NFS 挂载 3.2 测试示例 一、驱动程序编写流程 构造file_operations结构体 在里面填充open/read/write/ioctl成员 注册file_operations结…...

决策规划仿真平台搭建
决策规划仿真平台搭建 自动驾驶决策规划算法第二章第一节 决策规划仿真平台搭建 这部分的主要难点在于多个软件的连通与适配,环境的搭建总是折磨人的,主要是 4 个软件,各软件版本如下 Visual Studio2017PreScan8.5.0CarSim2019.0MATLAB2019b…...
计算图像哈希SHA-512
1、MATLAB实现 计算图像哈希值SHA-512,在文献[1]提到的算法如下: % Example Code: Create an MD5 crypto-hash of an arbitrary string, "str" % Main class of interest: System.Security.Cryptography.HashAlgorithm% Example String to hash with MD5 %…...

Android之消除APP图标的白色边框
有问题的效果: 解决方案: 第一步:app右键—>new—>Image Asset 第二步:上传Logo图标,选择每种分辨率,预览看效果,选择Resize,可以微调 第三步:点击 Nextÿ…...

java线程的优先级、守护线程的概念
1.线程的调度 抢占式调度 非抢占式调度 1.1 抢占式调度 优先级越高,抢到cpu的概率越高 1.2 守护线程 守护线程,非守护线程。当其他的非守护线程执行完毕以后,守护线程会陆续结束。 守护线程的应用场景...
asp.net core 6.0 efcore +sqlserver增删改查的demo
asp.net core 6.0 efcore sqlserver增删改查的demo 下面是一个使用ASP.NET Core 5.0和Entity Framework Core进行增删改查操作的示例。 首先,创建一个空的ASP.NET Core 6.0 Web应用程序项目。 然后,安装以下NuGet包: Microsoft.EntityFra…...

【Axure高保真原型】引导弹窗
今天和大家中分享引导弹窗的原型模板,载入页面后,会显示引导弹窗,适用于引导用户使用页面,点击完成后,会显示下一个引导弹窗,直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…...

华为云AI开发平台ModelArts
华为云ModelArts:重塑AI开发流程的“智能引擎”与“创新加速器”! 在人工智能浪潮席卷全球的2025年,企业拥抱AI的意愿空前高涨,但技术门槛高、流程复杂、资源投入巨大的现实,却让许多创新构想止步于实验室。数据科学家…...

XCTF-web-easyupload
试了试php,php7,pht,phtml等,都没有用 尝试.user.ini 抓包修改将.user.ini修改为jpg图片 在上传一个123.jpg 用蚁剑连接,得到flag...

Linux 文件类型,目录与路径,文件与目录管理
文件类型 后面的字符表示文件类型标志 普通文件:-(纯文本文件,二进制文件,数据格式文件) 如文本文件、图片、程序文件等。 目录文件:d(directory) 用来存放其他文件或子目录。 设备…...

51c自动驾驶~合集58
我自己的原文哦~ https://blog.51cto.com/whaosoft/13967107 #CCA-Attention 全局池化局部保留,CCA-Attention为LLM长文本建模带来突破性进展 琶洲实验室、华南理工大学联合推出关键上下文感知注意力机制(CCA-Attention),…...

工业安全零事故的智能守护者:一体化AI智能安防平台
前言: 通过AI视觉技术,为船厂提供全面的安全监控解决方案,涵盖交通违规检测、起重机轨道安全、非法入侵检测、盗窃防范、安全规范执行监控等多个方面,能够实现对应负责人反馈机制,并最终实现数据的统计报表。提升船厂…...
【位运算】消失的两个数字(hard)
消失的两个数字(hard) 题⽬描述:解法(位运算):Java 算法代码:更简便代码 题⽬链接:⾯试题 17.19. 消失的两个数字 题⽬描述: 给定⼀个数组,包含从 1 到 N 所有…...

Springcloud:Eureka 高可用集群搭建实战(服务注册与发现的底层原理与避坑指南)
引言:为什么 Eureka 依然是存量系统的核心? 尽管 Nacos 等新注册中心崛起,但金融、电力等保守行业仍有大量系统运行在 Eureka 上。理解其高可用设计与自我保护机制,是保障分布式系统稳定的必修课。本文将手把手带你搭建生产级 Eur…...
【无标题】路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论
路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论 一、传统路径模型的根本缺陷 在经典正方形路径问题中(图1): mermaid graph LR A((A)) --- B((B)) B --- C((C)) C --- D((D)) D --- A A -.- C[无直接路径] B -…...

vulnyx Blogger writeup
信息收集 arp-scan nmap 获取userFlag 上web看看 一个默认的页面,gobuster扫一下目录 可以看到扫出的目录中得到了一个有价值的目录/wordpress,说明目标所使用的cms是wordpress,访问http://192.168.43.213/wordpress/然后查看源码能看到 这…...