"CSVI" - ターミナル用CSVエディタ

GoDev

<English> / <Japanese>

CSVI は、UNIX系システムや Windows のターミナル上で動作する CSV エディタです。

✨ 主な特徴

image

@emisjerry さんによる 紹介動画

Install

Manual Installation

Releases よりバイナリパッケージをダウンロードして、実行ファイルを展開してください

⚠️ Note: macOS用バイナリは実験的ビルドで、検証できていません。 もし何らかの問題を確認されましたらお知らせください!

"go install" を使う場合

go install github.com/hymkor/csvi@latest

scoop インストーラーを使う場合 (Windowsのみ)

scoop install https://raw.githubusercontent.com/hymkor/csvi/master/csvi.json

もしくは

scoop bucket add hymkor https://github.com/hymkor/scoop-bucket
scoop install csvi

Usage

$ csvi {options} FILENAME(...)

or

$ cat FILENAME | csvi {options}

Options

キーバインド

環境変数

NO_COLOR

環境変数 NO_COLOR が 1 文字以上設定されている場合、csvi の色付け出力を無効化します。これは NO_COLOR で提唱されている標準仕様に従った挙動です。

RUNEWIDTH_EASTASIAN

Unicode で「曖昧幅」とされる文字の表示桁数を明示的に指定します。

COLORFGBG

(FG);(BG) 形式で色が定義されている場合、前景色の値が背景色より小さいとき、白背景を前提とした配色(-rv オプション相当)を自動的に使用します。

なお、csvi は通常、端末のデフォルト色を示すエスケープコード ESC[39m および ESC[49m を使用します。そのため、(FG);(BG) で指定された色そのものを直接採用するわけではありません。この設定は主に、灰色背景行の濃淡を白寄り・黒寄りのどちらにするかの判定に用いられます。

GOREADLINESKK

環境変数 GOREADLINESKK に辞書ファイルを指定すると、go-readline-skk を利用した内蔵 SKK かな漢字変換1が有効になります。

(注)~ は Windows の cmd.exe 上でもアプリ側で %USERPROFILE% に自動展開されます。

Use as a package

package main

import (
    "fmt"
    "os"
    "strings"

    "github.com/mattn/go-colorable"

    "github.com/hymkor/csvi"
    "github.com/hymkor/csvi/uncsv"
)

func main() {
    source := `A,B,C,D
"A1","B1","C1","D1"
"A2","B2","C2","D2"`

    cfg := &csvi.Config{
        Mode: &uncsv.Mode{Comma: ','},
    }

    result, err := cfg.Edit(strings.NewReader(source), colorable.NewColorableStdout())

    if err != nil {
        fmt.Fprintln(os.Stderr, err.Error())
        os.Exit(1)
    }

    // // env GOEXPERIMENT=rangefunc go run example
    // for row := range result.Each {
    //     os.Stdout.Write(row.Rebuild(cfg.Mode))
    // }
    result.Each(func(row *uncsv.Row) bool {
        os.Stdout.Write(row.Rebuild(cfg.Mode))
        return true
    })
}

Release Note

Acknowledgements

Author


  1. Simple Kana to Kanji conversion program. One of the Japanese input method editors. ↩︎