Jegan - ターミナル用JSONエディター
( English / Japanese )

特徴
-
ターミナルのユーザインターフェイスで JSON を編集
JSON だけでなく、JSONL や、JSON を変数に代入しただけの JavaScript 形式※もサポート
(※ X/Twitter のアーカイブなどで使用されている) -
保存時の差分が最小
編集していない項目は、元のテキストの表現(項目周辺の空白、インデントと改行、 オブジェクトのキーの順番、リテラルの表現(エスケープシーケンスなど)、ファイル末尾の JSON として解釈できないデータ)を極力維持します。
そのため、本当に加えた変更だけが差分として現れます。実データを安全に編集したい場合に最適です。 -
vi風のカーソル移動、Emacs風の項目編集
j/kなどで縦移動、h/lで横スクロール。
oで項目追加、r/Rで編集に入り、Emacs系のキーで値を編集できます。 -
ファイル/標準入力の両方に対応
JSON/JSONL ファイルを直接開くだけでなく、パイプ経由のデータも読み込めます。 -
変更の視覚的な表示
編集した項目はボールドで表示します。
インストール
Manual Installation
Releases よりバイナリパッケージをダウンロードして、実行ファイルを展開してください
⚠️ Note: macOS用バイナリは実験的ビルドで、検証できていません。 もし何らかの問題を確認されましたらお知らせください!
eget インストーラーを使う場合 (クロスプラットフォーム)
brew install eget # Unix-like systems
# or
scoop install eget # Windows
cd (YOUR-BIN-DIRECTORY)
eget hymkor/jegan
scoop インストーラーを使う場合 (Windowsのみ)
scoop install https://raw.githubusercontent.com/hymkor/jegan/master/jegan.json
もしくは
scoop bucket add hymkor https://github.com/hymkor/scoop-bucket
scoop install jegan
"go install" を使う場合 (要Go言語開発環境)
go install github.com/hymkor/jegan/cmd/jegan@latest
go install は $HOME/go/bin もしくは $GOPATH/bin へ実行ファイルを導入するので、jegan を実行するにはそのディレクトリを $PATH に追加する必要があります。
起動方法
jegan some.json
もしくは
jegan < some.json
キー操作
j,↓,Ctrl-N: 次の項目へ移動k,↑,Ctrl-P: 前の項目へ移動l,→,Ctrl-F: 表示範囲を右にスクロールh,←,Ctrl-B: 表示範囲を左にスクロール0,^: 表示範囲をリセット(0 カラム目へ移動)Space,PageDown: 次のページへ移動b,PageUp: 前のページへ移動<: 最初の項目へ移動>: 最後の項目へ移動/: 前方検索 (値のみ)?: 後方検索 (値のみ)n: 同方向へ再検索N: 反対方向へ再検索o: カーソル行の下へ項目を追加。- オブジェクトの項目の場合はキーと値を入力する
- 配列の項目の場合は値のみを入力する
- キーは入力された文字列をそのまま使用する(二重引用符不要)
- 値の型は入力内容に応じて次のように解釈する
"..."→ 文字列(エスケープ文字を解釈)- 数値として解釈できるもの → 数値
null→ nulltrue/false→ 真偽値{}→ 空のオブジェクト[]→ 空の配列- 上記以外 → 文字列(そのまま解釈)
- Ctrl+G 押下で項目追加をキャンセルできます。
- 空入力は空文字列(
"")として扱われる - オブジェクトのキーは重複できない
r: カーソル行の項目を変更する(入力方法はoと同じ)R: カーソル行の項目を変更する(値の型を明示的に指定する)d: カーソル行の項目を削除する。 ただし、空ではないオブジェクト・配列は削除できないCtrl-C: JSONパスと値をクリップボードへコピーするw: ファイルへ保存q: 終了
環境変数
RUNEWIDTH_EASTASIAN
Unicode で「曖昧幅」とされる文字の表示桁数を明示的に指定します。
- 2桁幅にする場合:
set RUNEWIDTH_EASTASIAN=1 - 1桁幅にする場合:
set RUNEWIDTH_EASTASIAN=0(1以外の任意の1文字以上で可)
GOREADLINESKK
環境変数 GOREADLINESKK に辞書ファイルを指定すると、go-readline-skk を利用した内蔵 SKK かな漢字変換1が有効になります。
- Windows
set GOREADLINESKK=SYSTEMJISYOPATH1;SYSTEMJISYOPATH2...;user=USERJISYOPATH- 例:
set GOREADLINESKK=~/Share/Etc/SKK-JISYO.L;~/Share/Etc/SKK-JISYO.emoji;user=~/.go-skk-jisyo
- Linux
export GOREADLINESKK=SYSTEMJISYOPATH1:SYSTEMJISYOPATH2...:user=USERJISYOPATH
(注)~ は Windows の cmd.exe 上でもアプリ側で %USERPROFILE% に自動展開されます。
Changelog
Acknowledgements
Author
-
Simple Kana to Kanji conversion program. One of the Japanese input method editors. ↩︎