Jacky's blog
首页
  • 学习笔记

    • web
    • android
    • iOS
    • vue
  • 分类
  • 标签
  • 归档
收藏
  • tool
  • algo
  • python
  • java
  • server
  • growth
  • frida
  • blog
  • SP
  • more
GitHub (opens new window)

Jack Yang

编程; 随笔
首页
  • 学习笔记

    • web
    • android
    • iOS
    • vue
  • 分类
  • 标签
  • 归档
收藏
  • tool
  • algo
  • python
  • java
  • server
  • growth
  • frida
  • blog
  • SP
  • more
GitHub (opens new window)
  • shell

  • tool

    • mac 百问记录
    • mac tool
    • tmux
    • c tool
    • platform
    • dev tool
    • java tool
    • IDEA
    • vscode
    • Docker 使用指南
    • unbuntuOnWindows
    • oh-my-zsh
    • github
    • lldb
    • ripgrep 高性能文本搜索工具使用指南
    • appium
    • mvn
    • ffmpeg
    • gradle
    • git 使用指南
    • jenv
    • php-fpm
    • raycast
    • VisiData 终极生存指南(vd)
      • 打开文件
      • 基础导航
      • Sidebar(v3.0+)
      • Sheets 管理
      • 列操作
        • 列类型转换
        • 列宽与显示
        • 列编辑
      • 行操作
        • 行选中(按后自动下移,方便连续操作)
        • 按条件选中
        • 选中后操作
      • 数据统计
        • 频率统计(最常用)
        • 排序与计算
      • Python 扩展
      • 命令日志与回放(Replay)
      • 实用技巧
      • 链接
    • yq
    • direnv
    • Vim 编辑器入门指南
    • jadx
    • excalidraw 入门指南
    • whimsical 入门指南
    • mermaid 入门指南
  • client

  • 网络

  • compute_base

  • blog

  • growth

  • java

  • C&C++

  • ai

  • secure

  • cms

  • english

  • 生活

  • 金融学

  • more

  • other
  • tool
Jacky
2026-04-27
目录

VisiData 终极生存指南(vd)

# VisiData (vd) 终极生存指南

终端里的"交互式 Excel",极速处理 CSV/JSON/Excel/数据库等 GB 级数据。

使用 vd -h 寻求帮助吧. 这里只列出主要章节标题,方便在vd帮助文档中查找

  • Column Manipulation

# 打开文件

vd file.csv              # 直接打开
vd .                     # 打开目录浏览器,选文件回车
ps aux | vd              # 管道输入
vd -f csv data.txt       # 指定格式
vd -f pandas data.parquet  # pandas 支持的格式
1
2
3
4
5

追加打开:按 o,输入路径回车。


# 基础导航

按键 作用
hjkl / 方向键 移动光标
gj / gk 跳到最后/第一行
gh / gl 跳到最左/最右列
Ctrl-F / Ctrl-B 下/上翻页
c + 列名 跳转到指定列
/ / ? 向下/向上正则搜索
n / N 下/上一个匹配
zr + n / zc + n 跳到第 n 行/列
U / R 撤销/重做

# Sidebar(v3.0+)

右侧上下文信息面板,显示当前 Sheet 的帮助指南和状态消息。

按键 作用
b 显示/隐藏 sidebar
gb / Shift-B 把 sidebar 内容展开为独立 Sheet
Ctrl-G 循环切换输入帮助级别

配置(~/.visidatarc):

options.disp_sidebar = False   # 永久关闭
options.disp_help = 0          # -1=无状态消息, 0=无帮助, 1=sheet帮助, 2=输入帮助(默认)
1
2

# Sheets 管理

按键 作用
Shift-S / gS 打开 Sheet 列表
Ctrl-^ 在当前和上一个 Sheet 间切换
q 关闭当前 Sheet
e 在 Sheet 列表中重命名

# 列操作

# 列类型转换

按键 类型 场景
~ string 文本(默认)
# int 整数、数量、ID
% float 小数、比例
$ currency 货币
@ date 日期(转后可 .year 等)

# 列宽与显示

按键 作用
_ 当前列自适应宽度
g_ 所有列自适应宽度(含 width=0 的隐藏列)
- 隐藏当前列
gv 显示所有隐藏列
z- 当前列宽度减半
Shift-C 打开列元信息表(可改 width/type 等)

# 列编辑

按键 作用
^ 重命名当前列
! 钉选为关键列(固定左侧)
H / L 当前列左/右移一位
gH / gL 移到最左/最右
( / ) 展开/折叠嵌套数据列
= 输入 Python 表达式创建新列
: 按分隔符拆分列

# 行操作

# 行选中(按后自动下移,方便连续操作)

  • s / u / t:选中 / 取消 / toggle 当前行
  • gs / gu / gt:选中 / 取消 / toggle 所有行
  • zs / zu / zt:从顶部到光标行 选中/取消/toggle
  • gzs / gzu / gzt:从光标行到底部 选中/取消/toggle

# 按条件选中

⚠️ | 和 \ 是同一个键位:Shift+\ 出 | = 选中,直接按 \ = 取消选中。

  • | + 正则:当前列匹配的行选中
  • \ + 正则:当前列匹配的行取消选中
  • g| + 正则:任意列匹配的行选中
  • g\ + 正则:任意列匹配的行取消选中
  • ,:当前列值 = 当前单元格值的所有行选中
  • g,:任意列值 = 当前单元格值的所有行选中

# 选中后操作

  • ":新开 Sheet 只显示选中行(最常用)
  • gd:删除所有选中行
  • gz":深拷贝选中行到新 Sheet
  • d:删除当前行

典型流程:| 输入正则选中 → " 打开选中行的新 Sheet → 在新表里继续分析。


# 数据统计

# 频率统计(最常用)

  1. 光标移到分组列(如 department)
  2. 按 Shift-F 生成频率表(count + percent)
    • ^M: open-cell
  3. Enter 钻取查看某分组的明细行
  4. q 返回

聚合数值列(如薪资总和):

  1. 先把数值列按 # 转成整数类型
  2. 光标移到该数值列,按 + 选 sum/avg/min/max
  3. 移回分组列,按 Shift-F
按键 作用
+ 设置当前列的聚合函数(替换)
g+ 设置所有列的聚合函数
z+ 添加聚合函数(可叠加 sum+avg)

# 排序与计算

按键 作用
[ / ] 当前列升/降序
+ + sum/avg/max 底部状态栏显示当前列计算结果

# Python 扩展

按键 作用
Ctrl-X 执行 Python 表达式,结果作为新对象打开

示例:过滤注册资本 > 50 万的企业

  1. reg_capital 列按 # 转整数
  2. Ctrl-X 输入:[r for r in sheet.rows if r.reg_capital > 500000]

# 命令日志与回放(Replay)

VisiData 会记录每一步操作到 Command Log,可保存为文件后回放,实现分析流程的自动化和复用。

录制

方式 说明
vd file.csv -w log.vdj 启动时开始录制,退出后自动保存
Ctrl+D 直接保存当前 cmdlog 到文件
Shift+D 打开 CommandLog Sheet,可查看/编辑后 Ctrl+S 保存

录制的文件默认是 .vdj(JSONL)格式,每行记录一条操作。

回放

vd file.csv -p log.vdj                    # 交互式回放
vd file.csv -p log.vdj -w 1               # 每条命令间隔 1 秒(方便观察)
vd file.csv -p log.vdj --replay-movement  # 光标逐格移动,看清操作位置
vd -b -p log.vdj file.csv -o result.tsv   # 批量模式:无界面,回放后将最终 sheet 输出到文件
1
2
3
4
参数 作用
-p / --play 回放指定 cmdlog 文件
-w N / --replay-wait=N 每条命令间等待 N 秒
--replay-movement 光标移动也逐格展示(llll 会看到一格格右移)
-b / --batch 批量模式,不启动界面,跑完即退出
-o file 批量模式下将最终 sheet 保存为文件

回放过程中 Ctrl+C 暂停,q 退出。

文件格式

扩展名 格式 说明
.vdj JSONL 推荐,v3.x 默认,每行一个 JSON 对象
.vd TSV 旧格式,制表符分隔,已废弃但仍兼容
.vdx 纯文本 简化格式,每行只有命令 longname 和 input,适合手写

.vdj 字段:sheet(操作所在 sheet 名,留空=当前)、row(行索引)、col(列名)、keystrokes(实际按键)、longname(命令长名)、input(输入内容,无则 null)。

控制字符:keystrokes 中 ^ 表示 Ctrl 键,^M=Enter、^[=Esc、^C=Ctrl+C、^I=Tab、^H=Backspace。

适配不同文件

录制的 cmdlog 会硬编码文件名和 sheet 名。要复用到其他文件:编辑 .vdj 删除 longname: "open-file" 的行,并将所有 "sheet" 值清空(留空表示操作当前 sheet),然后 vd -b -p log.vdj newfile.csv -o output.tsv。

限制:空 sheet 名只适用于线性流程(不切换 sheet)。多 sheet 切换需保留 sheet 名或用 Ctrl+^(jump-prev)等栈相对命令导航。

常见问题

  • KeyError: '"sheet"' 等格式错误:扩展名与内容格式不匹配。JSONL 内容必须用 .vdj,TSV 用 .vd。
  • 回放太快看不清:加 -w 1 或更大值,配合 --replay-movement。
  • 回放中断报错:某条命令的 longname 或 col 与当前版本不匹配,编辑 .vdj 修正或删除该行后重录。
  • 想手写简单 replay:用 .vdx 格式,每行写 longname input,如 freq-table、select-col-regex 技术部,光标位置用 col 列名 和 row 行号 命令控制。

# 实用技巧

  • 不用记快捷键:tmux 分屏,一侧 vd -h \| vim - 搜命令,另一侧操作
  • 挂起恢复:Ctrl-Z 挂起,fg %1 捞回
  • 遇到困难:Ctrl-H 内置帮助,或看 sidebar 指南

# 链接

  • 官网 (opens new window) / man (opens new window)
  • intro-to-visidata (opens new window)(推荐入门)
#tool#Shell#data-science
上次更新: 2026/09/10, 20:52:09
raycast
yq

← raycast yq→

最近更新
01
direnv
09-09
02
nvim
09-09
03
wget
09-09
更多文章>
Theme by Vdoing | Copyright © 2019-2026 Jacky | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式