vim高效編輯verilog

2021-05-05 07:40:53 字數 1821 閱讀 4441

先做乙個演示:

^^vjjjjjjjjjjyjjjjjjjjjjjp/adder/d /a/d /b/d /sum/d kkkkkkkkk

adder adder0

(  

.rst(rst),

.clk(clk),

.a(a0),

.b(b0),

.sum(sum0)

);把上面的**複製到乙個檔案裡。在linux(windows下沒試過,因為鍵的對映不同,可能不對)下用vim開啟該檔案。

把游標移到第一行的任何位置,在normal模式下敲入   

"ayy          把第一行的內容讀入register a

移動游標到adder那一行,在normal模式下敲入

50@a       把register a的內容重複執行50次

有興趣了嗎?

if (no),  dzh.mop.com

else

在編寫verilog程式時,有大量相似的模組,比如:

adder adder0

(  

.rst(rst),

.clk(clk),

.a(a0),

.b(b0),

.sum(sum0)

);adder adder1

(  

.rst(rst),

.clk(clk),

.a(a1),

.b(b1),

.sum(sum1)

);。。。

假如相似的模組有50個該怎麼辦?500個呢?(哭去吧:)

通常的辦法是先寫好adder0,然後複製/貼上/修改,重複49次。這是乙個冗長、無趣且易出錯的過程。

如果你用的是vim,那麼通過錄製乙個簡單的巨集可以讓你的生活變的輕鬆愜意、充滿趣味和成就感,甚至當你在同事前炫耀時還能小小的虛榮一把! :-p

簡單的說,巨集是一串命令的集合,類似批處理的概念。

該巨集如下

qa^jjjjjjjjjjyjjjjjjjjjjjp/adder/d/a/d/b/d/sum/dkkkkkkkkkq

前提是先把游標移到adder0的那一行,進入normal模式,就是按幾下esc鍵。

看上去很複雜,是把?

下面逐項解釋:

q                  巨集開始

a                  巨集名

進入塊操作模式

jjjjjjjjjj          向下移動到模組結束

y                  複製

jjjjjjjjjjj        向下移動到空白行

p                 貼上

/adder/d      查詢後面帶數字的adder,會停在adder0這個word上

就是ctrl和a同時按。這個比較奇妙,它會把adder0變成adder1,具體的說就是+1,3就是+3。seems like magic? 就是-1。有一點不爽的是在win下不能這樣,因為被對映為全選了,網上有處理這個的方法,基本上就是不載入win的鍵盤對映。google一下就可以了。

/a/d

/b/d

/sum/d

kkkkkkkk     回到adder那一行

q                  巨集結束

其實操作一下就會發現就是一些簡單操作的集合。然後在normal模式下敲49@a,魔術就會發生,你要的**會自動出現在螢幕上。

這大概是最初級的用程式寫程式吧(programming by programming?),不禁讓人浮想聯翩,假如機器真的會寫程式了世界會是什麼樣子?我們失業了?被matrix了?or幸福地生活下去...

enjoy!

VIM高效編輯

雖然從很久前就開始用 vim 了,但一直都是半調吊子,翻來覆去只用自己會的命令。最近為了提高書寫 的效率,還有 coding 時候的樂趣,又重新鑽研了一下 vim,發現了一篇很好的 vim 入門的文章,原文是英文版的,我覺得非常適合 vim 使用入門,所以翻譯了過來。這裡是簡單的介紹了 vim 的操...

高效率編輯器 VIM,非常適合 VIM 新手

雖然從很久前就開始用 vim 了,但一直都是半 調 吊子,翻來覆去只用自己會的命令。最近為了提高書寫 的效率,還有 coding 時候的樂趣,又重新鑽研了一下 vim,發現了一篇很好的 vim 入門的文章,原文是英文版的,我覺得非常適合 vim 使用入門,所以翻譯了過來。這裡是簡單的介紹了 vim ...

vim高效使用

第二級 感覺良好 各種插入模式 簡單的移動游標 拷貝 貼上 undo redo 開啟 儲存 退出 改變檔案 buffer 花點時間熟悉一下上面的命令,一旦你掌握他們了,你就幾乎可以幹其它編輯器都能幹的事了。但是到現在為止,你還是覺得使用vim還是有點笨拙,不過沒關係,你可以高階到第 了。第 更好 更...