• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

SOC/IP验证工程师

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

EasyAlign操作总结

你提到的 EasyAlign 是 Vim/Neovim 生态里的对齐插件,下面按从安装到实战的顺序整理一份用法总结。

📦 安装与基础配置

使用 vim-plug 安装:Plug 'junegunn/vim-easy-align'。

推荐将交互式对齐映射到 ga 键:

" Visual 模式
xmap ga <Plug>(EasyAlign)
" Normal 模式
nmap ga <Plug>(EasyAlign)

🎮 两种使用模式

命令模式(非交互式)

直接输入命令,适合脚本化或精确控制:

:EasyAlign =          " 按第1个 = 对齐
:EasyAlign * =        " 按所有 = 对齐
:EasyAlign /[:;]+/    " 按正则表达式对齐
:EasyAlign \          " \ 表示空格

交互模式(推荐)

  1. Visual 模式:V 选中多行,按 ga
  2. Normal 模式:ga + 动作/文本对象(如 gaip 对齐当前段落)
  3. 然后按 N(第几个匹配)→ 对齐方向(可选)→ 分隔符

流程:ga → * → = 即可按所有等号对齐。

🔤 预定义对齐规则

EasyAlign 内置了常用分隔符的“对齐规则”:

分隔符 用法 说明
= ga = 按第1个等号对齐
2= ga 2= 按第2个等号对齐
*= ga *= 按所有等号对齐
**= ga **= 左右交替对齐所有等号
: ga : 冒号对齐(JSON/YAML)
| ga | 竖线对齐(Markdown 表格)
<Space> ga <Space> 按空格对齐
, ga , 逗号对齐(紧贴左侧)

N 的描述符:数字表示第 N 个,* 表示所有,- 表示最后一个,-2 表示倒数第二个。

🧩 正则表达式对齐

复杂场景可用正则表达式:

  • 交互模式:按 Ctrl-X 进入正则输入模式,输入正则后回车
  • 命令模式::EasyAlign /REGEX/

芯片验证中常用的正则示例:

:EasyAlign /[=?:]\|!==/    " 对齐 =、?、: 或 !==
:EasyAlign * /\s*=\s*/     " 对齐赋值等号及其周围空格

⚙️ 对齐选项

命令模式可在分隔符后追加选项:

选项 含义 示例
lN 左侧留 N 个空格 l4
rN 右侧留 N 个空格 r1
a[lrc] 对齐方式(左/右/中) ar 右对齐
d[lrc] 分隔符本身的对齐 dr 分隔符右对齐

示例::EasyAlign = dr 让等号右对齐。

交互模式中,用 Ctrl-L 设左边距、Ctrl-R 设右边距、↓ 清除边距。

💡 芯片验证场景实用示例

1. 对齐端口声明

gaip=
" 输入:  output logic [7:0] data;
"       input  logic       clk;
" 输出:  output logic [7:0] data;
"       input  logic       clk;

2. 对齐信号赋值

gaip*=
" 将所有 = 对齐,让赋值语句整齐排列

3. 对齐注释
EasyAlign 默认忽略注释和字符串中的分隔符。若要强制对齐注释,需在自定义规则中修改 ignore_groups 参数。

4. 对齐 UVM 宏调用

gaip(
" 对齐 `uvm_info 等宏中的括号和参数

🔧 进阶:自定义对齐规则

在 .vimrc 中可定义专用分隔符:

let g:easy_align_delimiters = {
  \ '>': { 'pattern': '>>\|=>\|>' },
  \ '/': { 'pattern': '//\+\|/\*\|\*/', 'delimiter_align': 'l', 'ignore_groups': ['!Comment'] },
  \ ')': { 'pattern': '[()]', 'left_margin': 0, 'right_margin': 0, 'stick_to_left': 0 },
  \ }

常用配置项:pattern(匹配模式)、left_margin/right_margin(边距)、delimiter_align(分隔符对齐方向)、ignore_groups(忽略的语法组)、stick_to_left(是否紧贴左侧)。

⌨️ 速查表

操作 按键/命令
启动对齐 ga + 动作,或 Visual 模式下 ga
对齐所有第1个 = ga = 或 gaip=
对齐所有 = ga *=
对齐所有第1个 : ga :
正则对齐 ga → Ctrl-X → 输入正则
切换对齐方向 交互模式中按 Enter
设置左边距 交互模式中 Ctrl-L + 数字
命令模式对齐 :EasyAlign =
对齐整个文件 :%EasyAlign =

EasyAlign 的核心优势是语法感知(默认忽略字符串和注释中的分隔符)和交互式操作(实时预览对齐效果),配合 ga 快捷键可以做到“选中即对齐”,在写 SV 端口声明、信号列表、宏调用时效率很高。

posted on 2026-09-24 22:52  SOC验证工程师  阅读(4)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3