• 正文
    • 1、projectile
    • 2、ivy、counsel、swiper
    • 3、auto-complete
  • 相關(guān)推薦
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

介紹幾個(gè)用emacs寫(xiě)verilog的好用的插件

2024/10/17
2419
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

介紹幾個(gè)用emacs寫(xiě)verilog的好用的插件,效率翻倍。

1、projectile

projectile是以項(xiàng)目為單位進(jìn)行編輯插件。默認(rèn)會(huì)把git、mercurial hg的根目錄當(dāng)作項(xiàng)目根目錄,也可以手動(dòng)創(chuàng)建一個(gè).projectile的空文件作為項(xiàng)目根路徑的標(biāo)記。這里(https://docs.projectile.mx/projectile/index/html)有詳細(xì)介紹。

配置方法:

(add-to-list 'load-path "~/.emacs.d/projectile")
(require 'projectile)
(projectile-mode +1)
(global-set-key [f12] 'projectile-command-map)

配置好后,emacs打開(kāi)文件時(shí)會(huì)自動(dòng)識(shí)別項(xiàng)目根目錄,然后用F12 f xxx來(lái)打開(kāi)當(dāng)前項(xiàng)目下的文件,就不用指定具體路徑,插件會(huì)自動(dòng)在項(xiàng)目下匹配文件名。

又如,F12 s g就會(huì)自動(dòng)調(diào)用grep在整個(gè)項(xiàng)目下搜索,并且會(huì)自動(dòng)過(guò)濾一些臨時(shí)文件目錄。當(dāng)然你可以指定用agF12 s s)或者ripgrepF12 s r)來(lái)搜索,速度比linux自帶的grep快得多。

附:ag的安裝配置

下載ag安裝包(也可以從這里下載:ag_2.1.0.tar.gz,適用于centos7.9,解壓即可),安裝并加到PATH。

下載emacs的agdashs三個(gè)配置文件(可以從這里https://melpa.org下載)。

修改.emacs,增加ag的配置,如下。

(add-to-list 'load-path "~/.emacs.d/projectile")
(add-to-list 'load-path "~/.emacs.d/ag")
(add-to-list 'load-path "~/.emacs.d/dash")
(add-to-list 'load-path "~/.emacs.d/s")
(require 'projectile)
(require 'ag)
(projectile-mode +1)

2、ivy、counsel、swiper

ivy(包括counsel、swiper)是一個(gè)命令自動(dòng)補(bǔ)全的插件,當(dāng)我們?cè)谒阉?、?zhí)行命令時(shí)會(huì)自動(dòng)補(bǔ)全,效率會(huì)高很多。

配置方法:

(add-to-list 'load-path "~/.emacs.d/swiper")
(require 'ivy)
(require 'counsel)
(require 'swiper)
(ivy-mode)
(setq ivy-use-virtual-buffers t)
(setq enable-recursive-minibuffers t)
(global-set-key "C-s" 'swiper)
(global-set-key "C-r" 'swiper-backward)
(global-set-key (kbd "M-x") 'counsel-M-x)
(global-set-key (kbd "C-x C-f") 'counsel-find-file)

swiperswiper-backward綁定的C-sC-r,替換掉emacs自帶的搜索。當(dāng)按下C-s時(shí),就會(huì)自動(dòng)調(diào)用ivy還搜索,更方便快捷地在文件中多處匹配之前跳轉(zhuǎn)。

在執(zhí)行M-x時(shí),也可以調(diào)用counsel,僅輸入命令的一部分關(guān)鍵詞,來(lái)快速篩選出命令,并自動(dòng)補(bǔ)全。

3、auto-complete

auto-complete是一個(gè)自動(dòng)補(bǔ)全框架,支持多種語(yǔ)言的語(yǔ)法關(guān)鍵字,其中就包括verilog

auto-complete也會(huì)自動(dòng)收集RTL或者Testbench中的變量,當(dāng)再次輸入變量時(shí),只需要敲前兩個(gè)字母就會(huì)彈出候選菜單,通過(guò)快捷鍵或者方向箭頭來(lái)選取。極大的提高了寫(xiě)verilog的速度。

(add-to-list 'load-path "~/.emacs.d/auto-complete")
(add-to-list 'load-path "~/.emacs.d/popup-el")
(add-to-list 'load-path "~/.emacs.d/fuzzy-el")
(require 'auto-complete-config)
(ac-config-default)

當(dāng)然也可以再結(jié)合ctags、etag等工具來(lái)生成verilog的調(diào)用關(guān)系,方便在模塊和實(shí)例化、函數(shù)調(diào)用和聲明之前跳轉(zhuǎn)。

具體方法可以參考Synopsys用戶(hù)大會(huì)上華為的一篇文章《Using Verdi to Generate vi and emacs Tagging Databases》。

相關(guān)推薦

登錄即可解鎖
  • 海量技術(shù)文章
  • 設(shè)計(jì)資源下載
  • 產(chǎn)業(yè)鏈客戶(hù)資源
  • 寫(xiě)文章/發(fā)需求
立即登錄

公眾號(hào)ExASIC號(hào)主,從事數(shù)字IC設(shè)計(jì)10余年,主要分享日常工作中的經(jīng)驗(yàn)和技巧,分享讓工作更輕松。