游戏开发和网站开发那个有前景/百度网络营销app
B站|公众号:啥都会一点的研究生
目录
- 写在前面
- vim的工作模式
- 普通模式
- 编辑模式
- 命令模式
- 命令大全,最详细(建议收藏)
- 光标的移动
- 插入模式 - 插入/追加文本
- 编辑文本
- 选择文本(可视化模式)
- 可视化模式命令
- 剪切, 复制, 粘贴
- 查找/替换
- 多文件搜索
- 多文件编辑
- 标签
- 寄存器
- 标记
- 宏
- Diff
写在前面
曾经我也天真的觉得如今很多软件都可以充当文本编辑器,像vim上手这么麻烦的可以替代。但随着工作内容有的需要在服务器上操作,不支持UI,这时候vim就显得格外重要
先把需要分享(白嫖)的资源写在前面,搜集的vim键盘图&&命令总结
,共五份,高清原始素材放在公众号【啥都会一点的研究生】,回复【vim】,有了一定vim基础后这些键盘图简直救命
此外推介个大白话简明教程
vim的工作模式
普通模式
终端使用vi
或vim
进入,如
vim example.txt
由Shell进入vim编辑器时,首先进入普通模式。在普通模式下,从键盘输入任何字符都被当作命令来解释。普通模式下没有任何提示符,输入命令后立即执行,不需要回车,而且输入的字符不会在屏幕上显示出来。
编辑模式
编辑模式主要用于文本的编辑。比如按下i
,该模式下用户输入的任何字符都被作为文件的内容保存起来,如果想返回 Normal 模式,请按ESC
键。
来个基本案例,打开文本-写入内容-保存退出
vim example.txt
键盘按下i
随便写,比如shadousheng
键盘按ESC
键盘输入:wq(注意冒号是你需要输入的符号而不是仅输入wq)
命令模式
命令模式下,用户可以对文件进行一些高级处理。尽管普通模式下的命令可以完成很多功能,但要执行一些如字符串查找、替换、显示行号等操作还是必须要进入命令模式。
如果不确定当前处于哪种模式,按两次 Esc 键将回到普通模式。
命令大全,最详细(建议收藏)
光标的移动
h - 左移光标
j - 下移光标
k - 上移光标
l - 右移光标
gj - 下移光标(折行文本)
gk - 上移光标(折行文本)
H - 移动到当前页面顶部
M - 移动到当前页面中间
L - 移动到当前页面底部
w - 移动到下个单词开头
W - 移动到下个单词开头(单词含标点)
e - 移动到下个单词结尾
E - 移动到下个单词结尾(单词含标点)
b - 移动到上个单词开头
B - 移动到上个单词开头(单词含标点)
ge - 移动到上个单词结尾
gE - 移动到上个单词结尾(单词含标点)
% - 跳转到配对的符号(默认支持的配对符号组:: '()', '{}', '[]' - 在vim中使用 :h matchpairs 获得更多信息)
0 - 移动到行首
^ - 移动到行首的非空白符
$ - 移动到行尾
g_ - 移动到行内最后一个非空白符
gg - 移动到文件第一行
G - 移动到文件最后一行
5gg or 5G - 移动到第五行
gd - 跳转到局部定义
gD - 跳转到全局定义
fx - 移动到字符 x 下次出现的位置
tx - 移动到字符 x 下次出现的位置的前一个字符
Fx - 移动到字符 x 上次出现的位置
Tx - 移动到字符 x 上次出现的位置的后一个字符
; - 重复之前的f、t、F、T操作
, - 反向重复之前的f、t、F、T操作
} - 移动到下一个段落 (当编辑代码时则为函数/代码块)
{ - 移动到上一个段落 (当编辑代码时则为函数/代码块)
zz - 移动屏幕使光标居中
zt - position cursor on top of the screen
zb - position cursor on bottom of the screen
Ctrl + e - 向下移动屏幕一行(保持光标不动)
Ctrl + y - 向上移动屏幕一行(保持光标不动)
Ctrl + b - 向上滚动一屏
Ctrl + f - 向下滚动一屏
Ctrl + d - 向下滚动半屏
Ctrl + u - 向上滚动半屏
注:命令前追加数字表示命令的重复次数, 比如 4j 表示向下移动四行
插入模式 - 插入/追加文本
i - 从光标前开始插入字符
I - 从行首开始插入字符
a - 从光标后开始插入字符
A - 从行尾开始插入字符
o - 在当前行之下另起一行, 开始插入字符
O - 在当前行之上另起一行, 开始插入字符
ea - 从当前单词末尾开始插入
Ctrl + h - 在插入模式下,删除光标前的字符
Ctrl + w - 在插入模式下,删除光标前的单词
Ctrl + j - 在插入模式下,另起一行
Ctrl + t - 在插入模式下,向右缩进,宽度由 shiftwidth 控制
Ctrl + d - 在插入模式下,向左缩进,宽度由 shiftwidth 控制
Ctrl + n - 在插入模式下,在光标之前插入自动补全的下一个匹配项
Ctrl + p - 在插入模式下,在光标之前插入自动补全的上一个匹配项
Ctrl + rx - 插入寄存器 x 的内容
Ctrl + ox - 暂时进入正常模式以发出一个正常模式命令 x。
Esc - 退出插入模式
编辑文本
r - 替换当前字符
R - 在 ESC 按下之前,替换多个字符
J - 将下一行合并到当前行, 并在两部分文本之间插入一个空格
gJ - 将下一行合并到当前行, 两部分文本之间不含空格
gwip - 重新调整段落
g~ - 大小写转换操作修饰符
gu - 小写操作修饰符
gU - 大写操作修饰符
cc - 将光标所在的行删除, 然后进入插入模式
c$ or C - 将光标处到行尾删除, 然后进入插入模式
ciw - 将光标所在的单词删除, 然后进入插入模式
cw or ce - 从光标位置开始, 修改单词
s - 删除当前字符, 然后进入插入模式
S - 清空当前行, 然后进入插入模式 (同cc)
xp - 当前字符后移
u - 撤销
U - 撤销上一次的改动行的操作
Ctrl + r - 重做(取消撤销)
. - 再次执行上个命令
选择文本(可视化模式)
v - 进入可视化模式, 移动光标高亮选择, 然后可以对选择的文本执行命令(如 y - 复制)
V - 进入可视化模式(行粒度选择)
o - 切换光标到选择区开头/结尾
Ctrl + v - 进入可视化模式(矩阵选择)
O - 切换光标到选择区的角
aw - 选择当前单词
ab - 选择被 () 包裹的区域(含括号)
aB - 选择被 {} 包裹的区域(含花括号)
at - 选择被 <> 标签包裹的区域(含<>标签)
ib - 选择被 () 包裹的区域(不含括号)
iB - 选择被 {} 包裹的区域(不含花括号)
it - 选择被 <> 标签包裹的区域(不含<>标签)
Esc - 退出可视化模式
注:也可以使用 ( 和 { 分别代替 b 和 B
可视化模式命令
> - 向右缩进
< - 向左缩进
y - 复制
d - 剪切
~ - 大小写切换
u - 将选中文本转换为小写
U - 将选中文本转换为大写
剪切, 复制, 粘贴
yy - 复制当前行
2yy - 复制 2 行
yw - 复制当前单词
yiw - 复制光标处的单词
yaw - 复制光标处的单词及其前后的空格
y$ or Y - 复制, 从光标位置到行末
p - 在光标后粘贴
P - 在光标前粘贴
gp - 在光标后粘贴并把光标定位于粘贴的文本之后
gP - 在光标前粘贴并把光标定位于粘贴的文本之后
dd - 剪切当前行
2dd - 剪切 2 行
dw - 剪切当前单词
diw - 删除光标处的单词
daw - 删除光标处的单词及其前后的空格
:3,5d - 删除 3 到 5 行
:.,$d - 删除当前行到文件末尾
:.,1d - 删除当前行到文件开头
:10,$d - 从第 10 行到文件末尾
:g/{pattern}/d - 删除所有包含模式的行
:g!/{pattern}/d - 删除所有不包含模式的行
d$ or D - 剪切, 从光标位置到行末 (同 D )
x - 剪切当前字符
查找/替换
/pattern - 查找 pattern
?pattern - 向上查找 pattern
\vpattern - pattern 中的非字母数字字符被视为正则表达式特殊字符 (不需转义字符)
n - 查找下一个
N - 查找上一个
:%s/old/new/g - 替换全部
:%s/old/new/gc - (逐个)替换
:noh[lsearch] - 移除搜索结果的高亮显示
多文件搜索
:vim[grep] /pattern/ {`{file}`} - 在多个文件中搜索 pattern
e.g. :vim[grep] /foo/ **/*
:cn[ext] - 移动至下一个
:cp[revious] - 移动至上一个
:cope[n] - 打开搜索结果列表
:ccl[ose] - 关闭 quickfix 窗口
多文件编辑
:e[dit] 文件名 - 新建缓冲区打开 filename
:bn[ext] - 切换到下个缓冲区
:bp[revious] - 切换到上个缓冲区
:bd[elete] - 关闭缓冲区
:b[uffer]# - 切换到第 # 个缓冲区
:b[uffer] file - 用文件名切换缓冲区
:ls or :buffers - 列出所有打开的缓冲区
:sp[lit] 文件名 - 新建缓冲区打开 filename 并水平分割窗口
:vs[plit] 文件名 - 新缓冲区打开 filename 并垂直分割窗口
:vert[ical] ba[ll] - 垂直分割窗口编辑所有缓冲区
:tab ba[ll] - 标签页编辑所有缓冲区
Ctrl + ws - 水平分割窗口
Ctrl + wv - 垂直分割窗口
Ctrl + ww - 在窗口间切换
Ctrl + wq - 关闭窗口
Ctrl + wx - 当前窗口与下一个窗口交换位置
Ctrl + w= - 令所有窗口高 & 宽一致
Ctrl + wh - 切换到左侧窗口
Ctrl + wl - 切换到右侧窗口
Ctrl + wj - 切换到下侧窗口
Ctrl + wk - 切换到上侧窗口
Ctrl + wH - 使游标所在视窗全高并移至最左 (最左垂直视窗)
Ctrl + wL - 使游标所在视窗全高并移至最右 (最右垂直视窗)
Ctrl + wJ - 使游标所在视窗全宽并移至最下 (最下水平视窗)
Ctrl + wK - 使游标所在视窗全宽并移至最上 (最上水平视窗)
标签
:tabnew or :tabnew {page.words.file} - 在新标签中打开文件
Ctrl + wT - 将窗口变成标签
gt or :tabn[ext] - 切换到下一个标签
gT or :tabp[revious] - 切换到上一个标签
#gt - 切换到第 # 个标签
:tabm[ove] # - 移动标签到第 # 位(下标从 0 开始)
:tabc[lose] - 关闭当前标签
:tabo[nly] - 关闭其他标签
:tabdo command - 在所有标签中执行命令 (例如 :tabdo q 关闭所有标签)
寄存器
:reg[isters] - 显示寄存器内容
"xy - 复制内容到寄存器 x
"xp - 粘贴寄存器 x 中的内容
"+y - 复制内容到系统剪贴板寄存器
"+p - 粘贴系统剪贴板寄存器的内容注:寄存器被存储在 ~/.viminfo 中, 在下次重启vim时仍会加载
特殊寄存器
0 - 上次复制" - 未命名寄存器,上次复制或删除% - 当前文件名# - 轮换文件名* - 剪贴板内容 (X11 primary)+ - 剪贴板内容 (X11 clipboard)/ - 上次搜索的pattern: - 上次执行的命令. - 上次插入的文本- - 上次剪切的短于一行的文本= - 表达式寄存器_ - 黑洞寄存器
标记
:marks - 标记列表
ma - 设置当前位置为标记 a
`a - 跳转到标记 a 的位置
y`a - 复制当前位置到标记 a 的内容
`0 - 跳转到上次 Vim 退出时的位置
`" - 跳转到上次编辑该文件时的位置
`. - 跳转到上次修改的位置
`` - 跳转回上次跳转前的位置
:ju[mps] - 列出跳转历史记录
Ctrl + i - 跳转至跳转历史中较晚的位置
Ctrl + o - 跳转回跳转历史中较早的位置
:changes - 列出修改历史记录
g, - 跳转至修改历史中较晚修改的位置
g; - 跳转至修改历史中较早修改的位置
Ctrl + ] - 跳转到当前光标位置对应的 tag
注:可以使用反引号(`)或单引号(')跳转至标记位置。使用单引号会跳转至该标记所在行行首(首个非空白字符)
宏
qa - 录制宏 a
q - 停止录制宏
@a - 执行宏 a
@@ - 重新执行上次执行的宏
Diff
zf - 定义折叠修饰符
zd - 删除光标位置的折叠
za - 展开 & 关闭光标位置的折叠
zo - 展开光标位置的折叠
zc - 关闭光标位置的折叠
zr - 展开同级的所有折叠
zm - 关闭同级的所有折叠
zi - 开启 & 关闭折叠功能
]c - 光标移至下一处差异
[c - 光标移至上一处差异
do or :diffg[et] - 将另一缓冲区中的差异合并至当前缓冲区
dp or :diffpu[t] - 将当前缓冲区中的差异推送至另一缓冲区
:diffthis - 令当前窗口成为 diff 模式的窗口之一
:dif[fupdate] - 强制刷新 diff 的高亮与折叠
:diffo[ff] - 令当前窗口退出 diff 模式
注:
- 折叠命令(e.g. za)只作用于当前级别。使用大写字母(e.g. zA)令命令作用于全部级别
- 可以直接在终端运行 vimdiff 查看文件间的不同。也可以将该程序设为 git difftool 的选项之一
相关文章:

【总结】vim教程与详细命令总结,该来的躲不掉啊晕
B站|公众号:啥都会一点的研究生 目录写在前面vim的工作模式普通模式编辑模式命令模式命令大全,最详细(建议收藏)光标的移动插入模式 - 插入/追加文本编辑文本选择文本(可视化模式)可视化模式命令剪切, 复制…...

git基础使用
Git安装 去安装>> 正式开始 进入要管理的目录,执行命令 git init 查看管理目录下的状态 git status 注:新增文件和修改过后的文件都是红色 管理指定文件(红变绿) 指定文件:git add 文件名 当前目录下所有&…...

基于 RANSAC 的地面分割与聚类算法
文章目录 前言 一、算法原理 参考文献 二、代码实现 1.头文件 2.源文件...

JVM内存模型深度剖析与优化
1. Java语言的跨平台特性 2. JVM整体结构及内存模型 堆存放着对象信息每个线程都会分配一块属于自己的内存空间(栈空间) 每个方法都会分配一块内存空间(栈桢),上图 compute()方法 和 main()方法 都会分配到各自的栈桢空…...

软件性能测试定义中文
From Wiki软件性能测试在软件质量保证中,性能测试通常是一种测试实践,用于确定系统在特定工作负载下的响应能力和稳定性方面的表现。它还可以用于调查、测量、验证或验证系统的其他质量 属性,例如可扩展性、可靠性和资源使用。性能测试是性能…...

2023情人节正经性生活调研报告
省时查报告-专业、及时、全面的行研报告库省时查方案-专业、及时、全面的营销策划方案库【免费下载】2023年1月份热门报告合集ChatGPT的发展历程、原理、技术架构及未来方向2023年,如何科学制定年度规划?《底层逻辑》高清配图今天给大家带来丁香医生最新…...

22- 隐马尔科夫HMM (NLP自然语言算法) (算法)
HMM模型 : from hmmlearn.hmm import GaussianHMM model GaussianHMM(n_components3,n_iter100000, covariance_type diag) model.fit(X) 1、马尔科夫链 有向图模型(贝叶斯网络):用有向图表示变量间的依赖关系; 无向图模型&…...

gRPC是什么,怎么用
RPC是什么 RPC是指远程过程调用,也就是说两台服务器A,B,一个应用部署在A服务器上,想要调用B服务器上应用提供的函数/方法,由于不在一个内存空间,不能直接调用,需要通过网络来表达调用的语义和传…...

linux基本功系列之fdisk命令实战
文章目录前言一. fdisk命令介绍二. 语法格式及常用选项三. 参考案例3.1 列出每个分区的大小3.2 分区操作3.2.1 添加硬盘3.2.2 开启虚拟机并分区3.3.3 分区完成后进行格式化挂载四 . 设置分区自动挂载前言 大家好,又见面了,我是沐风晓月,本文…...

Mysql UDF提权复现Raven2
Raven2通关过程 主要通过Raven2靶机进行复现Mysql UDF提权,以下为通关过程。 靶机镜像:https://www.vulnhub.com/entry/raven-2,269/ 信息收集 拿到靶机ip:192.168.112.129 nmap -sP 192.168.112.0/24探测开放端口,nmap用烂了…...

枚举类(enum)
定义:在某些情况下,一个类的实例对象是有限且固定的,可将该类称为“枚举类”。枚举类是JDK 1.5 之后提出来的。例如:四季只有春夏秋冬4个季节,性别只有男女2个,故四季类和性别类均可称为“枚举类”。 在自…...

腾讯云架构师亲码“redis深度笔记”,从入门到精通,面面俱到
前言 作为这个时代码代码的秃头人员,对Redis肯定是不陌生的,如果连Redis都没用过,还真不好意思出去面试,指不定被面试官吊打多少次。 毕竟现在互联网公司和一些创业公司都要用到Redis,像亚马逊、谷歌、阿里、腾讯都要…...

萌新应该如何开始学习走向自动化测试高薪岗位?
对于测试人员来说,不管进行功能测试还是自动化测试,还是性能测试,都是需要编写测试用例,所以我们必须先要了解清楚手工测试用例与自动化测试用例的一些特点,才能更好的开展自动化测试工作。1.1手工测试用例和自动化测试…...

-bash: pip: command not found
背景 这个错误的原因就是,我们的服务器上没有安装pip,装上就可以了,下面我们看一下centos中的解决方案 下载 wget https://bootstrap.pypa.io/get-pip.py 下载完成后如下图: 安装 安装的时候首先需要看一下自己的python是什…...

使用HTTP隧道代理,请求超过频率要怎么办?
在网上,经常会看到有人说使用隧道代理经常遇到429错误(请求超过频率),我们要如何解决这一问题呢?通常情况,优质的HTTP代理厂商隧道代理服务器采用的是高性能主机构建的动态IP代理服务器,是可以支…...

paddle 49 ODConv的可部署调整
ODConv是一种适用于轻量化模型的conv结构,可以在较少的参数下训练出多参数模型才能达到的精度,在相同的flop下可以稳定的涨2-3%个点。但是在paddle下部署ODConv动态卷积模型时会报出各种异常,导致模型无法转静态图或onnx格式(可能在pytorch下也是无法转换的)。为此研究ODC…...

C++ STL 学习之【string】
✨个人主页: Yohifo 🎉所属专栏: C修行之路 🎊每篇一句: 图片来源 The key is to keep company only with people who uplift you, whose presence calls forth your best. 关键是只与那些提升你的人在一起,…...

使用开源 MaxKey 与 APISIX 网关保护你的 API
1. Apache APISIX介绍 Apache APISIX 是 Apache 软件基金会下的云原生 API 网关,它兼具动态、实时、高性能等特点,提供了负载均衡、动态上游、灰度发布(金丝雀发布)、服务熔断、身份认证、可观测性等丰富的流量管理功能。我们可以…...

Linux之Xshell工具使用
shell简介Xshell是一个远程工具,可以远程连接linux系统 ,SSH,远程管理 Xshell来远程访问Linux系统的终端 。shell的英文含义是“壳”;它是相对于内核来说的,因为它是建立在内核的基础上,面向于用户的一种表…...

【数据结构与算法】时间复杂度与空间复杂度
目录 一.前言 二.时间复杂度 1.概念 二.大O的渐进表示法 概念: 总结: 三.常见时间复杂度计算举例 例1 例2 例3 例4 例5.计算冒泡排序的时间复杂度 例6.二分算法的时间复杂度 例7.阶乘递归Fac的时间复杂度 例8.斐波那契递归的时间复杂度 …...

Nginx如何配置Http、Https、WS、WSS的方法步骤
这篇文章主要介绍了Nginx如何配置Http、Https、WS、WSS的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 写在前面 当今互联网领域,Nginx是使…...

【博客621】iptables -J动作总结
iptables -J动作总结 1、iptables常见动作 ACCEPTDROPREJECTLOGSNATDNATMASQUERADEREDIRECT 2、iptables常见动作用法 2-1、ACCEPT: 作用:用于接收匹配的流量,使得流量继续往后面的规则和链路去匹配 2-2、DROP 作用:用于丢弃匹…...

Chrome开发者工具:利用网络面板做性能分析
Chrome 开发者工具(简称 DevTools)是一组网页制作和调试的工具,内嵌于 Google Chrome 浏览器中。 Chrome 开发者工具有很多重要的面板,比如与性能相关的有网络面板、Performance 面板、内存面板等,与调试页面相关的有…...

SpringCloud系列(十三)[分布式搜索引擎篇] - ElasticSearch 的概念及 Centos 7 下详细安装步骤
打开淘宝, 搜索 狂飙 会出现各种价格有关狂飙的书籍, 当然也有高启强同款的孙子兵法!!! 如下图所示: 那么面对海量的数据, 如何快速且准确的找到我们想要的内容呢? 淘宝界面已经可以按照综合排序 / 销量 / 信用 / 价格等进行筛选, 是如何做到的呢? ElasticSearch 11 Elastic…...

04_Docker 镜像和仓库
04_Docker 镜像和仓库 文章目录04_Docker 镜像和仓库4.1 什么是 Docker 镜像4.2 列出 Docker 镜像4.3 拉取镜像4.4 查找镜像4.5 构建镜像4.5.1 创建 Docker Hub 账号4.5.2 用 Docker 的 commit 命令创建镜像4.5.3 用 Dockerfile 构建镜像4.5.5 基于 Dockerfile 构建新镜像4.5.5…...

postman-enterprise-API
Postman 是一个用于构建和使用 API 的 API 平台。Postman 简化了 API 生命周期的每个步骤并简化了协作,因此您可以更快地创建更好的 API。 API存储库 在一个中央平台上围绕您的所有 API 工件轻松存储、编目和协作。Postman 可以存储和管理 API 规范、文档、工作流配…...

【ESP 保姆级教程】玩转emqx MQTT篇② ——保留消息和遗嘱消息
忘记过去,超越自己 ❤️ 博客主页 单片机菜鸟哥,一个野生非专业硬件IOT爱好者 ❤️❤️ 本篇创建记录 2023-02-18 ❤️❤️ 本篇更新记录 2023-02-18 ❤️🎉 欢迎关注 🔎点赞 👍收藏 ⭐️留言📝🙏 此博客均由博主单独编写,不存在任何商业团队运营,如发现错误,请…...

开启慢查询日志方法
步骤 开启慢查询日志 SET GLOBAL slow_query_log on;SHOW VARIABLES like slow_query_log;设置时间限制 SET GLOBAL long_query_time 1; -- 单位sSHOW VARIABLES LIKE %long_query_time%;因为long_query_time参数只对新的数据库连接生效,所以还需要重启msql客户端…...

宝塔搭建实战人才求职管理系统admin前端vue源码(二)
大家好啊,我是测评君,欢迎来到web测评。 上一期给大家分享骑士cms后台端在宝塔的搭建部署方式,这套系统是前后端分离的架构,前端是用vue2开发的,还需要在本地打包手动发布上宝塔,所以本期给大家分享&#x…...

SpringMVC——基础知识
基本概念 SpringMVC是基于servlet api构造的原始web框架,全称是Spring Web MVC 而MVC的全称是Model View Controller,翻译成中文分别是“模型”,“视图”,“控制器”,这是一种软件的架构模式 Model:用来…...