( English / Japanese )
v1.15.1
Oct 19, 2025
仕様変更
-
曖昧幅の Unicode 文字の実測による幅判定を廃止 曖昧幅(Ambiguous Width)文字(例:
∇)の表示幅をESC[6nにより実測して自動判定していましたが、古い端末で動作しないなどの問題があったため、この方式を廃止しました。 今後は mattn/go-runewidth による自動判断を使用します。ほとんどの環境では正しく動作しますが、まれに誤判定する場合は環境変数RUNEWIDTH_EASTASIANで指定してください。- 2桁幅にする場合:
set RUNEWIDTH_EASTASIAN=1 - 1桁幅にする場合:
set RUNEWIDTH_EASTASIAN=0(1以外なら任意の1文字以上で可)
これに伴い、オプション
-aw,-an,-debug-bellを削除しました。 - 2桁幅にする場合:
-
白背景向け配色の自動判定を追加 環境変数
COLORFGBGが(FG);(BG)形式で定義されており、前景色が背景色より小さい数値の場合、白背景を想定した配色(-rv相当)を自動適用するようにしました。
不具合修正
echo "ihihi" | csvi -auto "w|-|q|y" > file実行時に、出力の先頭へ
が混入する問題を修正しました。原因は、曖昧幅実測が失敗した際のフォロー処理によるもので、この機構の廃止により再発しません。\r Calibrating terminal... (press any key to skip)\r
内部的変更
- コマンドラインオプション解析処理を
"cmd/csvi"から"startup"パッケージへ移動。 - 非推奨の関数
(Config) Mainを削除。
v1.15.0
Oct 10, 2025
- 現在カーソルがあるカラムの幅を広げるキー
]と、逆に狭める[を実装 - 白背景の端末でも色が不自然にならないよう、
-rvオプションを追加 - 起動時に曖昧幅の Unicode 文字の表示幅を計測していたが、カーソル位置を取得するシーケンス
ESC[6nをサポートしない端末では、入力待ちのままエラー終了してしまう問題があった。そのため:- 幅を明示的に指定して計測をスキップできる
-aw(曖昧幅を2セルとして扱う)および-an(曖昧幅を1セルとして扱う)オプションを追加した。 ESC[6nが無効な場合でもエラーとせず、編集を継続できるようにした。
- 幅を明示的に指定して計測をスキップできる
- 環境変数
NO_COLORが定義されている場合、カラー表示を抑制するようにした ( https://no-color.org/ に準拠 ) - FreeBSD/amd64 をサポート
- API関数:
(Config) EditFromStringSlice,uncsv.NewRowFromStringSlice,(*_Application) MessageAndGetKeyを追加 "csvi"パッケージを"internal/ansi","internal/manualctl","legacy","candidate"などのサブパッケージに分解した
v1.14.0
Jun 2, 2025
- エンコーディングの誤判定を修正するため、指定されたエンコーディングでファイルを再読み込みする
L(Shift-L) コマンドを追加- エンコーディング名の補完に対応
- UTF-16LE および UTF-16BE には未対応
- 現在カーソルがあるセルの内容で検索するコマンド
*,#を追加
v1.13.1
Jun 25, 2025
- Windows 7,8,2008Server 環境での動作を可能にするため、Go 1.20.14 でビルドできるようにした
v1.13.0
May 14, 2025
🚀 実験的な macOS 版の公開
このリリースでは、初めて macOS 向けバイナリを含めています! Go 製である本ツールは理論上 macOS でも動作可能ですが、作者自身は macOS を所持しておらず、動作確認ができていません。
そのため今回は、実験的なプレリリースという形で macOS 版を同梱し、動作確認へのご協力をお願いするものです。
✅ 動いた! ❌ ダメだった!
など、Issue でフィードバックをもらえるととても助かります。
この macOS バイナリは、単に GOOS=darwin としてビルドしたもので、特別な対応は行っていません。今後の正式対応の参考にさせていただきます。
その他の変更
-titleオプションの追加により、ヘッダー行の上にタイトル行を表示できるようにした。
v1.12.0
Oct 8, 2024
- #4 列ごとに違う幅を設定できるようにした。例:
-w 14,0:10,1:201列目は10桁,2列目は20桁,他は14桁とする (Thanks to @kevin-gwyrdh) - 0バイトのファイル(
nul,/dev/null)を与えるとクラッシュする不具合を修正
v1.11.1
(2024.10.07)
- 現行セルの元の値が空の時、予測表示が始まらない問題を修正
aでセル値を挿入する際、予測候補の検索先が一つ右の列にズレていた不具合を修正
v1.11.0
(2024.10.06)
- セル編集中に、同じ列で現在入力中のテキストを含むセルのテキストを候補として自動的に表示し、→ もしくは Ctrl-F で採用できるようにした (
→もしくはCtrl-Fで予測結果を採用する) go-readline-ny v1.5.0 - SKK入力で半角カナ入力をサポート(SKKのかな入力モードで
Ctrl-Qを押下する) go-readline-skk v0.4.0
v1.10.1
(2024.06.10)
- パッケージ修正
- セルの入力チェックに失敗した時、失敗した入力値の訂正を促すようにした
v1.10.0
(2024.06.02)
- カラム数固定(
-fixcol)の時oやOで入力されたテキストが記入される列がカーソルのあった列ではなく常に先頭列になっていた不具合を修正Oでテキストを入力する時の反転セルの行位置がずれている不具合を修正
- ヘッダー保護オプションを追加(
-pandConfig.ProtectHeader) - EOF だけの行を作成しないようにした
- パッケージ修正
- セルの入力チェックの仕組みを用意
- キーハンドラーのパラメーターを Application から KeyEventArgs へ変更 (互換性破壊)
Application型を非公開とし、Editの戻り値を*Resultへ戻した
v1.9.5
(2024.05.27)
- パッケージ修正
- キーに関数を割り当てられるようにした
csvi.Resultはcsvi.Applicationのエイリアスとした
v1.9.4
(2024.05.26)
- v1.9.3 で入力がゼロ行の時にクラッシュする問題を修正 (実行ファイルは未リリース)
- パッケージ修正
- 変更前のセル値を保持する
uncsv.Cell.Original()を用意した csvi.Config.FixColumnが true の時、oやOで挿入される行は、カーソルのある行と同じ全列を持たせるようにした。csvi.Resultに削除した行情報を保持させるようにした。
- 変更前のセル値を保持する
v1.9.3
(2024.05.17)
- パッケージ修正
Config.Editの戻り値を(*RowPtr,error)から(*Result,error)へ変更
v1.9.2
(2024.05.12)
- パッケージ修正
- csvi.Config.CellWidth のデフォルトを14桁とした
- csvi.Config.Main のかわりに csvi.Config.Edit を用意
v1.9.1
(2024.05.09)
- 端末入力(go-tty)のクローズタイミングがおかしかった点を修正 (なぜか問題として表面化していない)
v1.9.0
(2024.05.08)
- 列をズレさせないよう、
i,a,xなどを無効にする オプション-fixcolを追加 - Goパッケージとして利用できるよう、main 関数を
cmd/mainへ移動 - セルの変更を禁止する
-readonlyオプションの追加。この時は "q" で確認プロンプトは出さない
v1.8.1
(2024.04.26)
- 引数なしで
csviを起動すると落ちる問題を修正 - テキストがないセルにカーソルがある時にセルが反転しない問題を修正
- カーソルの文字色が黒ではなく灰色になっていた不具合を修正
echo "foo" | csvi -auto "w|-|q|y" > foo.txtで foo.txt がfoo\r\nになるように、引数ゼロ時の標準出力と標準エラー出力の使い分けを変更した。
v1.8.0
(2024.04.24)
- ステータスラインの読み込み済み行数を毎秒4回更新するようにした
- 遅い端末向けに、ERASELINE(ESC[K) を出力する回数を削減して、表示更新速度を改善
v1.7.1
(2024.04.16)
- Yes/No を問い合わせる時、カーソルを On/Off するようにした。
- 長い行から短い行に移動した後のカーソル位置が無効になることがあり、編集するとクラッシュする不具合(v1.6.0-)を修正
v1.7.0
(2024.04.15)
- Expect-Lua がなくても自動テストできるようにするためのオプション
-autoを追加。これを使って、テスト用プログラムを全部 PowerShell で書き直した。テストで nkf32 も不要になった。 - 強制的にUTF16と判断させるオプション
-16le,-16beを追加 -semicolon: セミコロンを区切り文字列に使えるようにした(カンマを小数点と扱うような一部のヨーロッパ用:任意の区切り文字列を使えるようにしてもよかったが、無駄に増やしてもトラブル源になるため)-nonutf8: UTF8じゃないのに、UTF8扱いされてしまう時に使うオプションを追加- オプション一覧を表示する
-helpオプションを追加 - UTF16 かどうかを判断する先読みバイト数を10バイトに拡大
v1.6.0
(2024.04.08)
- 同分野に同名の製品が比較的多いため、CSView より CSVI に改名した
- 今まで全行を読み込むまでユーザは待たされていたが、最初の百行を読み込んだ時点で操作できるようになった。残りの行はキー入力待ちの間に読み込むようにした
- slice で保持していた行データをcontainer/list で保持することでメモリ効率を改善した
>の後のoで、最終行の前の改行コードが欠けてしまう不具合を修正- 幅の判定が難しい文字が現れても、表示位置がズレないよう対処した
- Windows 8.1 で起動時にエラー終了する問題を修正した
env GOEXPERIMENT=rangefuncがなくともビルドできるようにした- ステータスラインに (現在の桁位置,現在の行位置/読み込み済み全行数) を表示させるようにした
v1.5.0
(2024.03.31)
- UTF16 をサポート
- 最初の2バイトが
\xFE\xFFもしくは\xFF\xFE、あるいは2バイトのどちらかに\0を含んでいる場合、UTF16 で記述されたCSVと判断するようにした
- 最初の2バイトが
v1.4.0
(2024.03.27)
- v1.3.0 で画面の表示キャッシュがうまく効いていなかった不具合を修正
-hのデフォルト値を1とし、最初の行は常に固定ヘッダーとした- 抑制する場合は
-h 0とする - 型を符号なし整数とした
- 抑制する場合は
-w uintでセルの幅を指定できるようにした。- 編集の結果、ダブルクォーテーションが冗長になった場合でも削除されないようにした
- 保存ファイル名入力の際、カーソルの初期位置を拡張子前とするようにした
- uncsv パッケージの修正
(Cell) ReadableSource→(Cell) SourceText()とリネーム- 文字コード変更前のバイナリをそのまま返す
(Cell) Sourceメソッドを用意
v1.3.0
(2024.03.25)
- ステータスラインの
[CRLF][LF]はファイル全体の代表改行コードではなく、現在の行の改行コードを示すようにした。 - サブパッケージをリネーム:
csv(unbreakable-csv) touncsv(uncsv) - 最初の数行をヘッダー行として固定できるようにした(
-h int)
v1.2.0
(2024.02.29)
a,o,O: 入力前に新セルを確保して、画面を再表示するようにした- セル値の入力時のCtrl-Pで、同じカラムの上のセルの値を参照できるようにした
- セル値の入力時の TAB で、同じカラムの上のセルの値で補完できるようにした
- ユーザが変更したセル以外のデータは原則的に現状を維持するようにした
- ファイル先頭に BOM がついていた場合は、そのBOMを勝手に削除しない
- ファイル先頭に BOM がついていない場合、勝手に BOM を挿入しない
- 改行やカンマを含まないセルは、勝手に二重引用符を追加・削除せず、現状を維持する
- 改行コードが行ごとにLF or CRLF がバラバラでも、可能な限り、それを維持する
a: 空行の場合はrのように機能するようにしたw: ファイル名補完対応-iana NAMEで UTF8 以外のエンコーディングを指定できるようにした- ステータスラインにはセルのソースデータを表示するようにした
- 変更したセルには下線を引くようにした
"で、可能ならば二重引用符で囲む、もしくは除けるようにしたuで、セルを変更前の値に戻すようにした- 幅があいまいな文字が含まれている場合、セルの幅が正しくなくなる不具合を修正
G:EOFへ移動,Enter:次の行へ,TAB:右の列へ,Shift+TAB:左の列へ移動を追加
v1.1.3
(2024.02.16)
- Windows 8.1 で、SKK変換しているテキストの表示属性がおかしくなる不具合を修正
v1.1.2
(2023.10.01)
- SKKで変換中の文字列を反転や下線で表示するようにした
- ユーザ辞書ファイルが存在しない時、SKKが起動に失敗する不具合を修正
v1.1.1
(2023.09.20)
- Linux では GOREADLINESKK での区切り文字で
;のかわりに:を使うようにした
v1.1.0
(2023.09.20)
- lispread からバックポート
y:コピー,p:ペーストを実装oとOで新セル用のテキストを入力するようにした- 指定したファイルがディレクトリだった時にエラーを表示しない問題を修正
- 引数なしで標準入力が端末だった時、1セルでただちに開始するようにした
- go-readline-skk による SKK 入力をサポート
v1.0.0
(2023.09.11)
- go-readline-ny v0.8.3-v0.14.0 間の非互換性向け修正
v0.6.2
(2022.11.23)
- (#3) フィールドが長いと画面が崩れる不具合を修正
v0.6.1
(2022.02.19)
- ステータスラインに [TSV],[CSV],[LF],[CRLF] などを表示するようにした
v0.6.0
(2021.12.10)
- 表示を改善
- 1列の幅を12セルから14へ変更
- 背景のパターンを青い市松模様から、グレーのストライプへ変更
- 右側のセルが空白だった場合は、右の列の現セルの表示に使う
[BOM][ANSI]といったマークを表示するようにした
w: ファイルの上書きを出来るようにした- ANSIエンコードなファイルは ANSI エンコードで保存するようにした
- Linux での出力がゼロバイトになる不具合を修正
- BOM付きUTF8は、BOMを復元するようにした
- 入力データ中の空行が無視されてしまう問題を修正
x:dと同様に削除をアサイン
v0.5.0
(2020.3.27)
o- カーソルの下に行追加O- カーソルの上に行挿入D- カーソル上の行を削除
v0.4.0
(2019.11.4)
- ウインドウのリサイズに対応
- Ctrl-L で再表示
w(保存)- 出力の区切り文字を入力時の区切り文字と同じにした
- 既存ファイルへの上書きをしないようにした
- デフォルトのファイル名は、最初のファイル名、もしくは標準出力とした
- ファイル名 "-" は標準出力と解釈するようにした
- 画面描画に標準出力ではなく、標準エラー出力を用いるようにした
q(終了): 本当に終了するかを問い合わせするようにした
v0.3.0
(2019.11.2)
- ファイル出力に対応
v0.2.0
(2019.10.31)
- 検索コマンド
/,?,n,Nを実装
v0.1.0
(2019.10.27)
- 初版