最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

VIM宏操作

2022-07-19 20:46 作者:專心當(dāng)一個坑  | 我要投稿

這兩天看到一個小練習(xí),要求如下:

在GVIM下,將下面這張圖的內(nèi)容

改成下面這樣

并且指出,要用批量操作的方式,不能一行一行的鍵入

其實第一反應(yīng)是利用正則表達(dá)式來操作,但是讓用正則表達(dá)式以外的操作方式,查了不少方法,最終發(fā)現(xiàn)了VIM的宏,覺得挺有意思的,特地記錄一下

宏的基本操作

宏是用來重復(fù)執(zhí)行一組操作的

操作方式為

1、在普通模式下,按q 開啟宏操作方式

2、隨后輸入一個宏名作為寄存器,為了方便,可以輸入一個小寫字母,但不要用大寫字母喲

3、輸入要批量操作的內(nèi)容,VIM會將此時所有的操作記錄在寄存器中

4、操作完成后,再次在普通模式下按q 結(jié)束宏記錄

5、之后可以調(diào)用宏操作,調(diào)用方式有兩種,一種是在普通模式下按@宏名,另一種方式是在命令模式下輸入normal @宏名

下面一步步演示

先是在普通模式下依次按下qa,其中a是我們的宏名

完成這一步可以看到在VIM窗口的左下角出現(xiàn)了記錄中字樣,表明隨后的操作都將記錄在VIM的宏中

隨后,我們按下i進(jìn)入輸入模式,并輸入


Esc退出輸入模式,再按q,退出宏操作

此時便完成了宏記錄操作,記錄完宏操作后是這樣的

接下來分別用兩種方式調(diào)用宏


可以看到多出了一行內(nèi)容,用命令行方式調(diào)用


可以看到,再次輸入了一行內(nèi)容

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


可以看到剛才記錄在宏名a中操作全部展示出來了

為什么不建議宏名用大寫字母

我們新建一個VIM文本,按照同樣的方式操作一下,只是將宏名由a換成A

我們先來查看一下宏名A中的內(nèi)容

可以看到,宏中并沒有任何操作,大寫字母的作用是在現(xiàn)有宏中添加操作的

對一個現(xiàn)有的宏,如果我們想修改里面的操作,如果我們按照


這個方式操作只會覆蓋掉原有的宏,并不會在原有宏的基礎(chǔ)上增加操作

接下我們試試在最初的宏a中加上is 0,用a進(jìn)入和A進(jìn)入分別會發(fā)生什么


可以看到,執(zhí)行宏操作后,只打印出is 0,再來看看此時宏a中的內(nèi)容

可以看到此時的宏中只有is 0

先將宏改回原來的樣子,再來換一種方式試試


可以看到此時調(diào)用宏時,不僅有打印出了number也打印出了is 0,最后再看看這種方式更改后宏a中記錄的操作

宏中設(shè)置變量

有時我們會用到變量,而宏中也可以設(shè)定變量,操作方式如下


我們按照這個步驟試一下,過程如下


不過有一點要說明,在一個VIM文本中,所有的變量是共同有的,我們對宏a進(jìn)行一個更改


可以看到在宏b中設(shè)置的變量在宏a中依舊可以調(diào)用

如果我們對變量 i不斷進(jìn)行累加,可以在宏a中加入let i = i + 1

此時,我們也可以在其他宏中更改變量i,比如我們新建一個宏,如下:


可以看到此時i的值是10,我們再次在普通模式下按@a

可以看到此時是在10的基礎(chǔ)上進(jìn)行累加的

如果,我們再新建一個宏,更改變量i的變化方式呢,就像下面這樣


可以看到只有第一次調(diào)用宏時是按照宏m的設(shè)定變化的,但隨后又按照宏a的設(shè)定變化

下面給出最初的小練習(xí)的解決方案


其實利用正則表達(dá)式的方式也是能夠?qū)崿F(xiàn)的,正則表達(dá)的方式下次貼出來


VIM宏操作的評論 (共 條)

分享到微博請遵守國家法律
酒泉市| 上蔡县| 平阳县| 巴南区| 吉木萨尔县| 合江县| 兖州市| 墨竹工卡县| 邵阳县| 临海市| 奎屯市| 汝南县| 沽源县| 肥乡县| 当涂县| 阿合奇县| 乐至县| 磐安县| 扶风县| 金寨县| 景泰县| 岱山县| 休宁县| 莲花县| 剑河县| 定州市| 社会| 民县| 历史| 凤山市| 榆林市| 合作市| 三明市| 无锡市| 长武县| 郓城县| 农安县| 锦屏县| 华安县| 麦盖提县| 安宁市|