在Vim中集成emacs下的verilog-mode功能
在vim上安装配置verilog-mode
更新emasc最新verilog-mode
下载
最新版可以见 verilog-mode
安装
window
从网上找到的教程清一色是让在$HOME目录下新建一个elisp目录然后放verilog-mode.el进去,再写个.emacs
要新建.emacs还需要用cmd窗口echo hi > .emacs
但我照做了没有用
在emacs下, 依次输入C-h v load-path
回车, 就可以看到下面界面
里面并不包含$HOME目录,所以它没有起作用
从load-path的输出看,第一个是emacs/26.1/site-lisp,所以可以把解压缩后的verilog-mode.el放到这个目录里
同时在该目录新建一个文件site-start.el
;; Load verilog mode only when needed (autoload 'verilog-mode "verilog-mode" "Verilog mode" t ) ;; Any files that end in .v should be in verilog mode (setq auto-mode-alist (cons '("\\.[v|sv]\\'" . verilog-mode) auto-mode-alist)) ;; Any files in verilog mode should have their keywords colorized (add-hook 'verilog-mode-hook '(lambda () (font-lock-mode 1)))
这样当打开.v或.sv开头的文件,会自动加载verilog-mode插件
Linux
新建~/.elisp目录,把verilog-mode.el拷贝进去
在~/.emacs里输入
(defun prepend-path ( my-path ) (setq load-path (cons (expand-file-name my-path) load-path))) (defun append-path ( my-path ) (setq load-path (append load-path (list (expand-file-name my-path))))) ;; Look first in the directory ~/elisp for elisp files (prepend-path "~/.elisp") ;; Load verilog mode only when needed (autoload 'verilog-mode "verilog-mode" "Verilog mode" t ) ;; Any files that end in .v, .dv or .sv should be in verilog mode (add-to-list 'auto-mode-alist '("\\.[ds]?v\\'" . verilog-mode)) ;; Any files in verilog mode should have their keywords colorized (add-hook 'verilog-mode-hook '(lambda () (font-lock-mode 1)))
在vim上安装verilog-mode插件
在网上有一个插件,但它有很多问题,基于它我修改出了一个无问题版本
https://github.com/zhuzhzh/ve...
使用vim-plug或Vundle安装的方法如下:
vim-plug
Plug 'zhuzhzh/verilog_emacsauto.vim', {'for': ['verilog', 'systemverilog'] }
Vundle
Plugin 'zhuzhzh/verilog_emacsauto.vim'
使用方法
- <Leader>a: 展开所有auto宏
- <leader>d: 移除所有uato宏
注意,默认<Leader>是, 也可以在.vimrc里重设它
原始代码如下:
// // Created by : Harris Zhu // Filename : test.sv // Author : Harris Zhu // Created On : 2018-07-14 22:20:59 // Last Modified : 2018-07-14 22:20:59 // Update Count : 1 // Tags : // Description : // Conclusion : // //======================================================================= module foo(/*AUTOARG*/); input i; output [DWIDTH-1:0] o; endmodule module test (/*AUTOARG*/); parameter DWIDTH=32; input i; output [DWIDTH-1:0] o; foo u0(/*AUTOINST*/); endmodule
按下<leader>a后, 变成如下
// // Created by : Harris Zhu // Filename : test.sv // Author : Harris Zhu // Created On : 2018-07-14 22:20:59 // Last Modified : 2018-07-14 22:20:59 // Update Count : 1 // Tags : // Description : // Conclusion : // //======================================================================= module foo(/*AUTOARG*/ // Outputs o, // Inputs i ); input i; output [DWIDTH-1:0] o; endmodule module test (/*AUTOARG*/ // Outputs o, // Inputs i ); parameter DWIDTH=32; input i; output [DWIDTH-1:0] o; foo u0(/*AUTOINST*/ // Outputs .o (o[DWIDTH-1:0]), // Inputs .i (i)); endmodule
相关推荐
kekenow 2020-06-02
Watanuki00 2020-05-31
kekenow 2020-05-27
applecarelte 2020-05-17
hell0kitty 2020-05-06
严谨死板君 2020-04-26
猫师 2020-03-16
Watanuki00 2020-02-19
nixebo 2020-02-02
Watanuki00 2020-01-31
Watanuki00 2019-11-18
kekenow 2019-10-22
Jouen 2011-09-18
DeanChen 2012-02-21
nixebo 2019-04-04
御前带刀侍卫 2014-12-19
suncrx 2014-12-12
robertzhouxh 2014-03-10