• vi 和verilog


    0)https://my.oschina.net/u/2520885/blog/800743

    gvim中进行verilog语言信号追踪、显示拓扑插件 顶 原 荐

    1)https://segmentfault.com/a/1190000016405629

    Vim之代码异步检测插件 ALE -- 实时检查verilog等代码的正确性

    知名的 vim 代码检测插件主要是两个

    • syntastic
    • neomake
    • ALE

    ALE 虽是后起之秀,但目前是功能最强大的一个

    • 实时检测。为了让代码可以在编辑时进行实时的检测,ale 的运行方式是将代码做为 stdin 导入检测工具(不支持的话使用临时文件),这样做的好处是我们可以更早的发现错误。
    • 并发运行。ale 默认使用所有可用的检测工具并发执行检测,譬如说我们有时需要同时对 javascript 运行 eslint 以及 jscs。
    • 标识栏、状态栏以及命令行消息支持。

    2)https://segmentfault.com/a/1190000015642389#articleHeader4

    在Vim中集成emacs下的verilog-mode功能

    3)https://www.ece.ucsb.edu/its/bluespec/training/BSV/slides/Lec04_Module_Hierarchy.pdf

    ========================

    0

    Vim之代码异步检测插件 ALE

    前言

    知名的 vim 代码检测插件主要是两个

    • syntastic
    • neomake
    • ALE

    ALE 虽是后起之秀,但目前是功能最强大的一个

    • 实时检测。为了让代码可以在编辑时进行实时的检测,ale 的运行方式是将代码做为 stdin 导入检测工具(不支持的话使用临时文件),这样做的好处是我们可以更早的发现错误。
    • 并发运行。ale 默认使用所有可用的检测工具并发执行检测,譬如说我们有时需要同时对 javascript 运行 eslint 以及 jscs。
    • 标识栏、状态栏以及命令行消息支持。

    安装

    Vim 8 on Unix

    mkdir -p ~/.vim/pack/git-plugins/start
    git clone https://github.com/w0rp/ale.git ~/.vim/pack/git-plugins/start/ale

    NeoVim on Unix

    mkdir -p ~/.local/share/nvim/site/pack/git-plugins/start
    git clone https://github.com/w0rp/ale.git ~/.local/share/nvim/site/pack/git-plugins/start/ale

    Vim 8 on Windows

    ## Run these commands in the "Git for Windows" Bash terminal
    mkdir -p ~/vimfiles/pack/git-plugins/start
    git clone https://github.com/w0rp/ale.git ~/vimfiles/pack/git-plugins/start/ale

    Vundle

    把下面行加入到,vimrc

    Plugin 'w0rp/ale'

    Linter

    ale 的 linter 都要自己安装
    还好系统一般都是有 gcc, python, gofmt 之类的
    需要额外安装的大约有

    • vint: vimscript
    • mdl: markdown
    • iverilog: verilog

    vint

    安装方法如下:

    pip3 install vim-vint

    mdl

    安装方法如下:

    gem install mdl

    iverilog

    安装 gperf, 下载源码: 链接

    ./configure && make && make install

    下载 iverilog 源码:

    git clone https://github.com/steveicarus/iverilog.git
    cd iverilog
    ./autoconf.sh
    ./configure && make && make isntall

    配置使用

    "-----------------------------------------------------------------------------
    " plugin - ale.vim
    "-----------------------------------------------------------------------------
    "keep the sign gutter open
    let g:ale_sign_column_always = 1
    let g:ale_sign_error = '>>'
    let g:ale_sign_warning = '--'
    
    " show errors or warnings in my statusline
    let g:airline#extensions#ale#enabled = 1
    
    " self-define statusline
    "function! LinterStatus() abort
    "    let l:counts = ale#statusline#Count(bufnr(''))
    "
    "    let l:all_errors = l:counts.error + l:counts.style_error
    "    let l:all_non_errors = l:counts.total - l:all_errors
    "
    "    return l:counts.total == 0 ? 'OK' : printf(
    "      '%dW %dE',
    "      all_non_errors,
    "      all_errors
    "    )
    "endfunction
    "set statusline=%{LinterStatus()}
    
    " echo message
    " %s is the error message itself
    " %linter% is the linter name
    " %severity is the severity type
    " let g:ale_echo_msg_error_str = 'E'
    " let g:ale_echo_msg_warning_str = 'W'
    " let g:ale_echo_msg_format = '[%linter%] %s [%severity%]'
    
    " use quickfix list instead of the loclist
    let g:ale_set_loclist = 0
    let g:ale_set_quickfix = 1
    
    " only enable these linters
    "let g:ale_linters = {
    "    'javascript': ['eslint']
    "}
    
    nmap <silent> <C-k> <Plug>(ale_previous_wrap)
    nmap <silent> <C-J> <Plug>(ale_next_wrap)
    
    " run lint only on saving a file
    " let g:ale_lint_on_text_changed = 'never'
    " dont run lint on opening a file
    " let g:ale_lint_on_enter = 0
    
    "------------------------END ale.vim--------------------------------------

    效果

    可看到因为第69,70,71, 73行的几个模块定义没有提供,所以左边线上有红色的>>
    把光标定位到73行, 在下面命令行会给出具体的错误:

    Unknown module type: pmu

    a1a4db88-b29a-4b08-998d-29fd9f706d54

    总结

    ALE可以让你一边编码一边实时检查代码的语法问题,同时还完全不影响vim的性能。这可以极大提升你代码输写的正确性。

  • 相关阅读:
    leetcode189.轮转数组
    论文阅读笔记A Latent Transformer for Disentangled Face Editing in Images and Videos
    论文阅读笔记StyleCLIP: TextDriven Manipulation of StyleGAN Imagery
    bias variance tradeoff
    .NET类型转换的常用方式
    ASP.NET 页生命周期概述 与 运行page页面时的事件执行顺序 【转】
    查询密码过期时间 oracle
    web2.0开发教程 Ajax Control Toolkit输入提示
    web2.0开发教程1.2(HTML)——HTML4与HTML5的布局
    web2.0技术开发教程1.1(HTML)——HTML基本标签解释
  • 原文地址:https://www.cnblogs.com/e-shannon/p/10522352.html
Copyright © 2020-2023  润新知