WezTermでマウスを使わずURLを開く
Posted: | Categories: WezTerm | Tags: WezTerm
WezTerm だけで “マウスを使わず URL を開く” ― 実装メモ
TL;DR
QuickSelectArgsで URL をハイライト- 選択した URL を
wezterm.open_with()で既定ブラウザへ[title](https://example.com)の)を含めない ように正規表現を工夫
背景
WezTerm はデフォルトで Ctrl/Cmd + クリック するとリンクをブラウザで開けます。
しかし “手をキーボードから離したくない派” にはマウス操作すら面倒。
目標
- キー操作 だけで画面上の URL を一覧表示
- 選択した URL を即ブラウザで開く
- Markdown の
[text](URL)にも対応し、末尾の)を除外
実装ステップ
1. コールバック関数
local wezterm = require 'wezterm'
local act = wezterm.action
-- 選択したテキスト (= URL) を既定ブラウザで開く
local open_selected_url = wezterm.action_callback(function(win, pane)
local url = win:get_selection_text_for_pane(pane)
:gsub('[).,;:]+$', '') -- 末尾の「),.;:」を念のため除去
if url ~= '' then
wezterm.open_with(url)
else
wezterm.log_info('No URL selected')
end
end)
Quick Select のパターン定義
-- Markdown・普通の URL・file://・IP:PORT
local quick_open_url = act.QuickSelectArgs{
label = 'open url',
patterns = {
-- [text](https://example.com/aaa) → () 内の URL だけキャプチャ
'\\[.*?\\]\\((https?://[^)\\s]+)\\)',
-- 文末括弧を拾わない汎用 https://URL
'https?://[^)\\s,.;:]+',
-- file:// パス
'file://\\S+',
-- 192.168.0.10:8000 形式
'\\b%d+%.%d+%.%d+%.%d+:%d+\\b',
},
action = open_selected_url,
}
ポイント
Read more...