加入星計(jì)劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入
  • 正文
    • 1、projectile
    • 2、ivy、counsel、swiper
    • 3、auto-complete
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請入駐 產(chǎn)業(yè)圖譜

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

10/17 16:59
1712
閱讀需 7 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

介紹幾個(gè)用emacs寫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打開文件時(shí)會(huì)自動(dòng)識(shí)別項(xiàng)目根目錄,然后用F12 f xxx來打開當(dāng)前項(xiàng)目下的文件,就不用指定具體路徑,插件會(huì)自動(dòng)在項(xiàng)目下匹配文件名。

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

附:ag的安裝配置

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

下載emacs的ag、dashs三個(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)我們在搜索、執(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)鍵詞,來快速篩選出命令,并自動(dòng)補(bǔ)全。

3、auto-complete

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

auto-complete也會(huì)自動(dòng)收集RTL或者Testbench中的變量,當(dāng)再次輸入變量時(shí),只需要敲前兩個(gè)字母就會(huì)彈出候選菜單,通過快捷鍵或者方向箭頭來選取。極大的提高了寫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等工具來生成verilog的調(diào)用關(guān)系,方便在模塊和實(shí)例化、函數(shù)調(diào)用和聲明之前跳轉(zhuǎn)。

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

相關(guān)推薦

電子產(chǎn)業(yè)圖譜

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