• 正文
    • 1、projectile
    • 2、ivy、counsel、swiper
    • 3、auto-complete
  • 相關推薦
申請入駐 產業(yè)圖譜

介紹幾個用emacs寫verilog的好用的插件

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

介紹幾個用emacs寫verilog的好用的插件,效率翻倍。

1、projectile

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

配置方法:

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

配置好后,emacs打開文件時會自動識別項目根目錄,然后用F12 f xxx來打開當前項目下的文件,就不用指定具體路徑,插件會自動在項目下匹配文件名。

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

附:ag的安裝配置

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

下載emacs的ag、dashs三個配置文件(可以從這里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)是一個命令自動補全的插件,當我們在搜索、執(zhí)行命令時會自動補全,效率會高很多。

配置方法:

(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自帶的搜索。當按下C-s時,就會自動調用ivy還搜索,更方便快捷地在文件中多處匹配之前跳轉。

在執(zhí)行M-x時,也可以調用counsel,僅輸入命令的一部分關鍵詞,來快速篩選出命令,并自動補全。

3、auto-complete

auto-complete是一個自動補全框架,支持多種語言的語法關鍵字,其中就包括verilog

auto-complete也會自動收集RTL或者Testbench中的變量,當再次輸入變量時,只需要敲前兩個字母就會彈出候選菜單,通過快捷鍵或者方向箭頭來選取。極大的提高了寫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)

當然也可以再結合ctags、etag等工具來生成verilog的調用關系,方便在模塊和實例化、函數(shù)調用和聲明之前跳轉。

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

相關推薦

登錄即可解鎖
  • 海量技術文章
  • 設計資源下載
  • 產業(yè)鏈客戶資源
  • 寫文章/發(fā)需求
立即登錄

公眾號ExASIC號主,從事數(shù)字IC設計10余年,主要分享日常工作中的經驗和技巧,分享讓工作更輕松。