Skip to content

Latest commit

 

History

History
363 lines (207 loc) · 8.1 KB

File metadata and controls

363 lines (207 loc) · 8.1 KB

[toc]

😶‍🌫️需要联系我联系我🖱️

纵使荆棘布满,我何曾退却一步

😶‍🌫️我的学习笔记(Github)


区块链技术(也称之为分布式账本技术),是一种互联网数据库技术,其特点是去中心化,公开透明,让每一个人均可参与的数据库记录

❤️💕💕关于区块链技术,可以关注我,共同学习更多的区块链技术。个人博客http:https://nsddd.top

vim的骚操作:宏

更新时间为2022 - 09 - 12

vim基本操作

  • F:高亮字母

  • E:切换标签左

  • R:切换标签右

o:在当前标签页打开链接、书签、历史记录。如下图所示,按下o输入关键字后可以看到有符合条件的历史记录、书签等结果,可以通过上下箭头选择项目后按下Enter键即可在当前标签页打开所选的项目。

O(Shift+o):在新标签页打开链接、书签、历史记录等。和o一样,只有一点不同,o在当前标签页打开选择的项目,而O在新标签页打开。

普通模式下按下/就可以进入查找状态,输入关键字后定位到第一个匹配项而且也能够看到匹配项的个数。

  • vim中使用/ 或者? 进行向前或者向后搜索

  • n是跳转到下一个 或者+

  • N是跳转到上一个 -

vim的搜索与替换

:[range]s[ubstitute]/{pattern}/{string}/{flags}
range:表示范围  --%表示全部
pattern表示要替换的模式
string是替换后的文本
flags表示常用标志
g:全局
c:确定
n:匹配次数

例如:

:% s/return/return 0/g
:2,18 s/retuen/return 0/g 选择2到18行

备注:可以支持正则表达式

vim 缓存区

先使用ls列出当前的缓存区,然后就可以用 :b n跳转到第n个缓存区

window窗口

CTRL + w s水平分割

CTRL + w v垂直分割

或者:sp或者:vs

image-20220325220552402

窗口命令

vim -o one.txt two.txt 水平多个窗口打开多个文件

vim -O one.txt two.txt  垂直多个窗口打开多个文件

:all 为列表中的文件各开一个窗口(可vertical)

:split 上下分割当前窗口,在上面打开新窗口

:vsplit 左右分割窗体,在左边打开新窗口

:split two.c 在新窗口编辑文件

:3split alpha.c 设定新窗口的高度

:new 创建新窗口创建新文件在当前窗口上面

:vnew 创建新窗口创建新文件在当前窗口左面

:vertical new 等同于vnew

:vertical 加在任何分割窗口的命令前面,使其垂直分割

CTRL-W w 窗口切换

CTRL-W CTRL-W 和CTRL+W w一样

:close 关闭窗口

:only 关闭其他所有窗口

CTRL-W + 增大窗口,可以用计数器

CTRL-W - 减小窗口,可以用计数器

15CTRL-W _ 指定当前窗口高度为15

CTRL-W _ 最大化当前窗口

CTRL-W h move to the window on the left

CTRL-W j move to the window below

CTRL-W k move to the window above

CTRL-W l move to the window on the right

CTRL-W t move to the TOP window

CTRL-W b move to the BOTTOM window

CTRL-W H move window to the far left

CTRL-W J move window to the bottom

CTRL-W K move window to the top

CTRL-W L move window to the far right

:qall 退出所有窗口

:wall 存储所有文件

:wqall 存储并退出所有文件

:qall! 放弃存储退出所有文件

vim已经打开,再打开新的文件

:vs 文件名  --横屏打开新的文件

标签页

img

vim的text object 文本对象

例如删除单词dw

复制与粘贴:

y:yank复制
p:put粘贴

img

vim的宏

vim的宏我觉得是一个特别有用的工具,如果用的好的话,宏太聪明了

宏可以看作一系列操作的集合 vim使用q来录制,同时使用q来结束录制

-q后面需要加入寄存器名称 --@后面需要加寄存器名称 放在寄存器中 使用q 来保存 使用@ 来回放 使用I 到某一行开头,插入 使用A 到结尾,插入

shift -v 行的选择,用j下移 这时候在命令行模式用normal @a

在vim 中,使用CTRL + n ,CTRL + p补全单词 使用ctrl + x ,ctrl + f补全文件名 使用ctrl + x,ctrl + o 补全代码,需要开启文件类型,使用vim 插件

实现宏

其实第一反应是利用正则表达式来操作,但是让用正则表达式以外的操作方式,查了不少方法,最终发现了VIM的宏,觉得挺有意思的,特地记录一下

宏的基本操作

宏是用来重复执行一组操作的

操作方式为:宏是用来重复执行一组操作的

  1. 在普通模式下,按q 开启宏操作方式

  2. 随后输入一个宏名作为寄存器,为了方便,可以输入一个小写字母,但不要用大写字母哟

  3. 输入要批量操作的内容,VIM会将此时所有的操作记录在寄存器中

  4. 操作完成后,再次在普通模式下按q 结束宏记录

  5. 之后可以调用宏操作,调用方式有两种,一种是在普通模式下按@宏名,另一种方式是在命令模式下输入normal @宏名

演示

先是在普通模式下依次按下q和a,其中a是我们的宏名

image-20220912220628572

完成这一步可以看到在VIM窗口的左下角出现了记录中recording字样,表明随后的操作都将记录在VIM的宏中

随后,我们按下i进入输入模式,并输入

number <回车>

image-20220912221041044

接下来用两种方式调用宏

  1. 普通模式下,直接输入@h

    image-20220912221019960

  2. 在命令行中输入:normal @h

    image-20220912221436778

如果想知道宏名中有哪些操作,可以在命令模式下输入

:register @h

image-20220912221533642

需要注意的是:宏名如果是大写,大写字母的作用是在现有宏中添加操作的

对一个现有的宏,如果我们想修改里面的操作,如果我们按照

q
a
<一系列操作>
q

这个方式操作只会覆盖掉原有的宏,并不会在原有宏的基础上增加操作

宏中设置变量

有时我们会用到变量,而宏中也可以设定变量,操作方式如下

在进入宏记录后,在命令行输入
:let i = 1  <回车>
按 i 进入输入模式
按Ctrl r = 三个按键
在输入变量名 i 即可插入变量

我们按照这个步骤试一下,过程如下

q
b
:let i = 1 <回车>
进入输入模式,并输入Ctrl r =  i <回车>
退出输入模式,并结束宏记录
普通模式下按下 @b

可以看到在宏b中设置的变量在宏a中依旧可以调用

如果我们对变量 i不断进行累加,可以在宏a中加入let i = i + 1

此时,我们也可以在其他宏中更改变量i,比如我们新建一个宏,如下:

q
c
在命令行输入
:let i = 10 <回车>
q
普通模式下输入 @a

下面就可以改变i

q
m
命令行输入  :let i = i + 50 <回车>
q
普通模式下按 @a

案例

/*	在宏中设置变量	*/
q
a
:let i = 1 <回车>
:let j = 2 <回车>
q

/*	在宏中键入内容	*/
q
a
i
number 组合键 i + number 1 = number 组合键 j <回车>
ESC
:let i = i + 1 <回车>
:let j = j + 1 <回车>
q

/*	打印	*/
普通模式下输入  20@a

END 链接