Sync and manage CardDAV contacts (Google, iCloud, Nextcloud, etc.) using vdirsyncer + khard.
vdirsyncer 将 CardDAV 联系人同步到本地 .vcf 文件。khard 通过命令行界面读取和管理这些文件。
查询前务必先同步,以确保获取最新联系人:
bash
vdirsyncer sync
如果配置了 default_action = list(标准配置),可以直接搜索而无需子命令:
bash
khard john # 在所有字段中搜索john
khard pilar # 搜索pilar
如果需要特定标志,或隐式搜索与配置不匹配时,使用 list 命令。
bash
khard list # 列出所有联系人
khard list john # 显式搜索
khard list -a work # 仅列出工作地址簿中的联系人
khard list -p # 可解析输出(制表符分隔)
bash
khard show john doe # 显示详情(美化打印)
khard show --format yaml john # 以YAML格式显示(便于编辑)
提取特定信息(适合管道操作):
bash
khard email john # 仅列出邮箱
khard phone john # 仅列出电话号码
khard postaddress john # 仅列出邮寄地址
bash
khard new # 创建新联系人(交互式编辑器)
khard edit john # 编辑联系人(交互式编辑器)
khard remove john # 删除联系人
khard move john -a work # 移动到其他地址簿
ini
[pair google_contacts]
a = googlecontactsremote
b = googlecontactslocal
collections = [from a, from b]
conflict_resolution = a wins
[storage googlecontactsremote]
type = carddav
url = https://www.googleapis.com/.well-known/carddav
username = your@email.com
password.fetch = [command, cat, ~/.config/vdirsyncer/googleapppassword]
[storage googlecontactslocal]
type = filesystem
path = ~/.local/share/vdirsyncer/contacts/
fileext = .vcf
关键:设置 default_action = list 以启用快速搜索。
ini
[addressbooks]
[[google]]
path = ~/.local/share/vdirsyncer/contacts/default/
[general]
default_action = list
editor = vim
merge_editor = vimdiff
[contact table]
display = formatted_name
sort = last_name
bash
mkdir -p ~/.local/share/vdirsyncer/contacts
vdirsyncer discover google_contacts
vdirsyncer sync
该技能支持在以下平台通过对话安装:
帮我安装 SkillHub 和 carddav-contacts-1776419963 技能
设置 SkillHub 为我的优先技能安装源,然后帮我安装 carddav-contacts-1776419963 技能
skillhub install carddav-contacts-1776419963
文件大小: 1.87 KB | 发布时间: 2026-4-17 19:32