hymkor/csvi
Csvi - A terminal CSV editor
📋 Changes in v1.23.2 (English)
- Change Ctrl-L behavior during input (e.g. cell or filename editing) (#110):
- Redraw the current input instead of clearing the entire screen.
- Update go-readline-ny to v1.14.3 supporting redrawing the current input.
📋 Changes in v1.23.2 (Japanese)
- セルやファイル名などの入力中の Ctrl-L の動作を変更 (#110)
- 画面全体のクリアではなく、編集文字列の再描画だけとした。
- go-readline-ny を編集文字列再表示機能を用意した v1.14.3 へ更新
🐛 Bug fixes
- Fix an issue where, if no recognizable line endings are found in the input data, newly created lines were saved without line breaks (#106)
- Fix an issue where, if no recognizable line endings are found in the input data, the delimiter for newly created lines was always set to tab; it now defaults to tab but respects `-c` / `-t` options (#106)
✨ New features
- Allow canceling save and search operations with Ctrl-C (#105)
- Add `-lf` and `-crlf` options to control the default line ending for newly added lines (#107)
📦 不具合修正
- 読み込みデータ内に(標準とみなせる)改行コードがない場合、保存ファイルの新規作成行にも改行がなく、列区切り文字もタブ固定になってしまう不具合を修正。 (#106)
- 読み込みデータ内に(標準とみなせる)改行コードがない場合、新規作成行の改行コードは OS標準の改行コードとし、区切り文字はタブがデフォルトで `-c`, `-t` などのオプションに従うものとした。 (#106)
📦 新機能
- Ctrl-C で保存や検索操作を中断できるようにした (#105)
- 新規追加行に対するデフォルトの改行コードを制御するオプションとして -lf ・-crlf を追加 (#107)
🐛 Bug fixes
- Fixed an issue where the progress animation was cleared at the wrong position during long save operations. ([go-inline-animation#6], [go-inline-animation#7], #96)
- Preserve original file permissions when overwriting files (#97, #100)
✨ New features
- Changed file saving to use a temporary file until writing completes, eliminating any window where the original file could be left in a partial state. (#95)
- Indicate READONLY files explicitly when prompting for overwrite confirmation (#97)
📝 Documents
- Rename release note files to `CHANGELOG.md` and `CHANGELOG_ja`.md. (#94)
- [go-inline-animation#6]: https://github.com/nyaosorg/go-inline-animation/pull/6
- [go-inline-animation#7]: https://github.com/nyaosorg/go-inline-animation/pull/7
📦 不具合修正
- 保存に時間がかかった時、テキストアニメの消去位置が狂う問題を修正 ([go-inline-animation#6], [go-inline-animation#7], #96)
- 上書き保存時に元ファイルのパーミッションが維持されない問題を修正 (#97, #100)
📦 仕様変更
- ファイル保存時に出力が完了するまで一時ファイル名を使い、元のファイルが不完全な状態になる時間をゼロとした (#95)
- 上書き確認時に、READONLY 属性のファイルであることを明示するようにした (#97)
📦 ドキュメント
- 変更履歴を記録するファイルを `release_note_en.md`, `release_note_ja.md` から `CHANGELOG.md`, `CHANGELOG_ja.md` へ改名 (#94)
- [go-inline-animation#6]: https://github.com/nyaosorg/go-inline-animation/pull/6
- [go-inline-animation#7]: https://github.com/nyaosorg/go-inline-animation/pull/7
📋 User-Facing Changes
- Prevent creation of empty lines at EOF without newline characters. (#79)
- Fixed an issue where the version string was empty when installed via 'go install'. (#82, #84; Thanks to @gsmitheidw)
- Add `-version` option (#82, #85; Thanks to @gsmitheidw)
🗑️ API Changes & Deprecations
- Deprecate `KeyEventArgs.CursorRow` and `CursorCol`; use `CurrentRow()` and `CurrentCol()` instead. (#80)
- Export `Application.isDirty` as `IsDirty` (#81)
📦 Internal & Build Improvements
- Improved build portability by replacing local helper tools with `go run` (`make release`, `make manifest`, `make readme` and `make docs`). (#83, #87)
📦 ユーザインターフェイス変更
- EOF に到達した際、改行を含まない 0 バイト行を生成しないようにした。 (#79)
- go install でインストールした際に、バージョン情報が表示されない問題を修正した (#82, #84; Thanks to @gsmitheidw)
- `-version` オプションを追加 (#82, #85; Thanks to @gsmitheidw)
📦 API 変更
- `KeyEventArgs.CursorRow`, `CursorCol` を Deprecated とした。今後は、かわりに `CurrentRow()`, `CurrentCol()` を使用のこと (#80)
- `Application.isDirty` を `IsDirty` として公開とした (#81)
📦 内部/保守改善
- `go run` の活用により、外部ツール不要でビルド・メンテナンスができるよう改善した (`make release`, `make manifest`, `make readme`, `make docs`) (#83, #87)
📋 Changes in v1.21.2 (English)
- Readline: `Meta`+`Ctrl`+`G` can now be used to cancel input (#74)
📋 Changes in v1.21.2 (Japanese)
- Readline: `Meta`+`Ctrl`+`G` でも入力をキャンセルできるようにした。 (#74)
📋 Changes in v1.21.1 (English)
- Removed the line deletion assigned to the uppercase `D` key. This was done because the escape sequence for the left arrow key (`\x1B[D`) could be split in some environments, causing unintended behavior. Line deletion is still available via `dd`.(#65)
- Improved handling of the Escape key by treating it as a prefix key, preventing misinterpretation of split ESC sequences. (#66, #67)
- As a result, the key used to cancel cell editing has changed:
- Previously: `Esc`
- Now: `Ctrl-G` (consistent with Emacs behavior)
- The following internal libraries were updated as part of this change:
- go-readline-ny: v1.12.3 → v1.14.1 (#68, #71)
- Improved ESC prefix handling
- + 2 more
📋 Changes in v1.21.1 (Japanese)
- 英大文字の`D`キーから行削除の機能を除いた(左矢印キーを表すキーシーケンス `\x1B[D` の入力が分断された場合に、誤動作することがあったため。行削除は `dd` でも利用可能)(#65)
- Escape キーをプレフィックスキーとして扱うように変更し、分断された ESC シーケンス(例: `\x1B[`)による誤動作を防止した。 (#66, #67)
- これに伴い、セル編集中のキャンセル操作を以下のように変更した。
- 旧:`Esc`
- 新:`Ctrl-G`(Emacs と同様)
- 内部的には以下のライブラリを更新した:
- go-readline-ny: v1.12.3 → v1.14.1 (#68, #71)
- ESC をプレフィックスとして扱う挙動に変更
- + 2 more
📋 Changes in v1.21.0 (English)
- Print the value of `-delimiter` on the status line (#57)
- README: Normalize naming: use "Csvi" for the application name and `csvi` for the command (#58)
- Update startup message to use "Csvi" instead of "csvi" (#58)
- Internal: slightly improved handling of halfwidth voiced sound marks during truncation. (#59)
- Work around width miscalculation by inserting U+007F before them
- Internal: "internal/nonblock": `(*NonBlock) TryFetch` now returns `os.ErrDeadlineExceeded` instead of `io.EOF` when a timeout occurs. (#61)
- Display a text animation while waiting for a save operation to complete. (#62)
📋 Changes in v1.21.0 (Japanese)
- `-delimiter` で設定した値を、ステータスラインに表示するようにした (#57)
- README: アプリケーション名としては「Csvi」、コマンド名としては csvi に統一 (#58)
- 起動時メッセージでは「csvi」ではなく「Csvi」を使うようにした (#58)
- 内部変更: 半角カナの濁音を含む文字列の切り詰め処理をわずかに改善 (#59)
- 濁音記号の前に U+007F を挿入し、幅の誤計測を回避
- 内部変更: "internal/nonblock": `(*NonBlock) TryFetch` がタイムアウト時に `io.EOF` ではなく `os.ErrDeadlineExceeded` を返すように変更 (#61)
- 保存処理の待ち時間中にテキストアニメーションを表示するようにした (#62)
📋 Changes in v1.20.1 (English)
- Merge bug fixes from v1.19.x series
- Fix CPU spinning when saving while CSV data is still being loaded (#54,v1.19.4)
- Fix CPU spinning when the CSV has fewer rows than the screen height (#52,v1.19.3)
- Fix CPU spinning after CSV loading completed (#49, #50,v1.19.2)
📋 Changes in v1.20.1 (Japanese)
- v1.19.2 〜 v1.19.4 で行った不具合修正をv1.20 系へ反映
- CSVデータ読み込み途中で保存操作を行うと、以後のキー入力待ちの間に CPU が空回りしてしまう問題を修正 (#54,v1.19.4)
- CSV が画面行数よりも短い場合に CPU が空回しになってしまう問題を修正 (#52,v1.19.3)
- データ読み込みが終わると、CPU が空回りになる問題に対処 (#49,#50,v1.19.2)
- ----
- Jan 18: Released as a pre-release
- Jan 24: Pre-release flag removed and merged into the master branch
📋 Changes in v1.19.4 (English)
- Fix CPU spinning when saving while CSV data is still being loaded (#54)
📋 Changes in v1.19.4 (Japanese)
- CSVデータ読み込み途中で保存操作を行うと、以後のキー入力待ちの間に CPU が空回りしてしまう問題を修正 (#54)
📋 Changes in v1.19.3 (English)
- Fix CPU spinning when the CSV has fewer rows than the screen height (#52)
📋 Changes in v1.19.3 (Japanese)
- CSV が画面行数よりも短い場合に CPU が空回しになってしまう問題を修正 (#52)
📋 Changes in v1.20.0 (English)
- Pressing `Shift`+`R` now edits the current cell using the editor specified by the `-exteditor` option. If not specified, it behaves the same as `r` and uses the built-in readline. (#43)
- Add `-o` option that specifies the filename to write when reading csv from standard input (#45)
- Change the save prompt default filename from `-` to empty and require explicit input for standard input (#46)
- Add `-delimiter` option that specifies the field separator (#47)
- Fix display overflow caused by halfwidth kana with voiced/semi-voiced sound marks (#48)
📋 Changes in v1.20.0 (Japanese)
- `Shift`+`R` を押下すると、オプション `-exteditor` で指定されたエディターによりセル内容を編集できるようにした。指定なしの場合は `r` と同様に内蔵 readline で編集する (#43)
- 標準入力から読み取った時の保存ファイル名を指定するオプション `-o` を追加 (#45)
- 標準入力から読み取った時の保存プロンプトで表示されるデフォルトのファイル名を `-` から空に変更し、入力を必須とした (#46)
- 区切り文字を指定する `-delimiter string` オプションを追加 (#47)
- 半角カナの濁音・半濁音記号が含まれていると表示桁数が超過して表示が乱れる問題を修正 (#48)
📋 Changes in v1.19.2 (English)
- Handle a case where CPU spins after data loading is finished (#49,#50)
📋 Changes in v1.19.2 (Japanese)
- データ読み込みが終わると、CPU が空回りになる問題に対処 (#49,#50)
- Thanks to @presianbg
- Note:
- On Jan 17, disabled pre-released flag
📋 Changes in v1.19.1 (English)
- Fix panic when used as a library and `Config.CellWidth` is nil (#41)
📋 Changes in v1.19.1 (Japanese)
- ライブラリとして使用する際、`Config.CellWidth` が nil の時に panic する問題を修正 (#41)
📋 Changes in v1.19.0 (English)
- Print the separator specified by `-ofs` in gray. (#33)
- Previously, the tool was not operable until at least 100 lines were read or EOF was reached. Now it becomes operable as soon as a single line is read. (#34)
📋 Changes in v1.19.0 (Japanese)
- `-ofs` で指定する区切り文字を灰色で表示するようにした(#33)
- 100行読み込むか、EOF に到達するまで操作できない問題を修正し、1行でも読み込めれば操作可能になるようにした。(#34)
📦 Notes
- (Dec 24, 2024) Released as a pre-release
- (Dec 31, 2024) Disabled the pre-released flag
📋 Changes in v1.18.0 (English)
- Prevent key input responsiveness from being blocked even when CSV data reading stalls. (#28)
- ( e.g.: `pwsh -Command "Get-Content utf_ken_all.csv ; Start-Sleep 15" | csvi` ) ※
- Previously, the save operation waited to finish reading all remaining data before prompting for the file name. Now the file-name prompt is shown first, and the full data read runs in the background. (#28)
- When saving, the default file name was previously taken from the file originally loaded, but it is now taken from the most recently loaded or saved file. (#31)
- Preserved original file permissions when overwriting. (#31)
- Skipped creating backups when writing to non-regular files. (#31)
- Fix a bug where error checks were missing when removing or renaming existing backup files. (#31)
- *(Dec 17, 2025):* If CSV input stalls early, csvi may enter a data-waiting state before key input becomes available, while the initial screen is still being rendered. Once the initial screen has been fully rendered, this issue does not occur.
- + 2 more
📋 Changes in v1.18.0 (Japanese)
- CSVデータ読み込みが滞っても、キー入力に対する応答が止まらないようにした (#28) ※
- ( e.g.: `pwsh -Command "Get-Content utf_ken_all.csv ; Start-Sleep 15" | csvi` )
- セーブ処理で従来はファイル名入力よりも先に、未読データの読み込み完了を待っていたが、今はファイル名入力を優先し、その裏でデータ読み込みを継続するようにした (#28)
- セーブする際のデフォルトファイル名として、最初にロードした時のファイル名を使っていたが、最後にロード/セーブした時のファイル名を使うようにした (#31)
- 上書き時に既存ファイルのパーミッションを変更しないようにした (#31)
- 書き込み対象が非 regular ファイルの場合、バックアップを作らないようにした (#31)
- 既存バックアップの削除・リネーム時のエラーチェックが漏れていた問題を修正 (#31)
- 【2025年12月17日】CSV 入力が早い段階で滞った場合、キー入力を受け付ける前の初期画面描画中に、データ待ち状態に入ることがあります。なお、初期画面が最後まで描画されれば、その後は入力が滞っても同様の問題は発生しません。
- + 2 more
📋 Changes in v1.17.1 (English)
- Fixed an issue where `u` (undo) restored the value from the initial load instead of the last save.
📋 Changes in v1.17.1 (Japanese)
- `u` (undo) で最後に保存した時の値に戻すべき動作が、最初にロードした時の値に戻ってしまう不具合を修正
📋 Specification Changes
- Truncate text that exceeds the cell width and append U+2026 (ellipsis). (#15 and #19 thanks to @toolleeo)
- Implement `-ofs STRING` to specify the separator between cells. (#15 and #19, thanks to @toolleeo)
- Map x to clear the current cell (#16, #21, thanks to @toolleeo)
- ( The previous behavior—deleting the cell and shifting the cells on the right—is still available via `dl`, `d`+`SPACE`, `d`+`TAB`, and `dv`. )
- Track whether the file has been modified (#23)
- Display `*` in the status line when there are unsaved changes
- When executing the `q` command, prompt whether to save the changes (#17, thanks to @toolleeo)
- Implement page up/down (#22, #24, thanks to @wumfi)
- + 1 more
📋 Internal Changes
- Replace all PowerShell-based test scripts with Go test files so that the test suite can run on GitHub Actions and other non-Windows environments. (#14)
📦 仕様変更
- テキストがセル幅を超える場合、末尾を U+2026(…)で省略表示するようにした. (#15, #19 thanks to @toolleeo)
- セル間の区切り文字を指定する`-ofs STRING` オプションを追加 (#15, #19, thanks to @toolleeo)
- x を現在のセルを空にする操作に変更 (#16, #21, thanks to @toolleeo)
- ( 従来の動作である、セルを削除し、右側のセルで詰める機能は dl, d+SPACE, d+TAB, dv で引き続き使用可能 )
- ファイル全体の変更有無を管理 (#23)
- 変更がある場合、ステータスラインに`*` を表示
- `q` コマンド実行時に保存するかを確認するようにした (#17, thanks to @toolleeo)
- ページ単位の移動(PgDn,PgUp)を実装 (#22, #24, thanks to @wumfi)
- + 1 more
📦 内部的変更
- PowerShell で書いていたテストコードを Go に置き換えて、GitHub Actions や Windows以外の環境でも実行できるようにした。(#14)
🐛 Bug Fixes
- Fix: Kill buffer of readline was cleared between sessions (#11)
📋 Specification Changes
- Add key bindings: (#7, #8 and #12, Thanks to @toolleeo)
- `dl`, `d`+`SPACE`, `d`+`TAB`, `dv`, `x` (delete the current cell)
- `dd`, `dr`, `D` (delete the current line)
- `dc`, `d|` (delete the current column)
- `yl`, `y`+`SPACE`, `y`+`TAB`, `yv` (copy the values of the current cell to kill-buffer)
- `yy`, `yr`, `Y` (copy the values of the current row to kill-buffer)
- `yc`, `y|` (copy the values of the current column to kill-buffer)
- `p` (paste the values of kill-buffer after the current cell, row or column)
- + 3 more
📋 Internal Changes
- Internal maintenance: updated dependencies and removed staticcheck warnings. (#6)
📦 不具合修正
- readline の kill buffer の内容が、セッションとセッションの間で引き継がれていなかった問題を修正 (#11)
📦 仕様変更
- キーバインドを追加: (#7, #8, #12, Thanks to @toolleeo)
- `dl`, `d`+`SPACE`, `d`+`TAB`, `dv`, `x` (現在のセルを削除)
- `dd`, `dr`, `D` (現在の行を削除する)
- `dc`, `d|` (現在の列を削除する)
- `yl`, `y`+`SPACE`, `y`+`TAB`, `yv` (現在のセルを内部クリップボードへコピー)
- `yy`, `yr`, `Y` (現在の行を内部クリップボードへコピー)
- `yc`, `y|` (現在の列を内部クリップボードへコピー)
- `p` (現在のセル/列/行の直後に内部クリップボードの値をペースト)
- + 3 more
📦 内部的変更
- 依存モジュールの更新とstaticcheck 警告の解消 (#6)
📋 Specification Changes
- Removed runtime measurement for ambiguous-width Unicode characters
- Previously, `csvi` determined the display width of ambiguous-width characters (e.g., `∇`) by printing them and reading the cursor position using `ESC[6n]`.
- This caused issues on some older terminals and added unnecessary complexity, so the feature has been removed.
- The program now relies solely on [mattn/go-runewidth] for width determination.
- In most cases it works correctly, but if the width is misdetected, you can control it with the environment variable `RUNEWIDTH_EASTASIAN`:
- Double-width: `set RUNEWIDTH_EASTASIAN=1`
- Single-width: `set RUNEWIDTH_EASTASIAN=0` (any non-`1` value with at least one character is also valid)
- The options `-aw`, `-an`, and `-debug-bell` have been removed accordingly.
- + 4 more
🐛 Bug Fixes
- Fixed an issue where executing `echo "ihihi" | csvi -auto "w|-|q|y" > file` , resulted in unwanted text
- ` \r Calibrating terminal... (press any key to skip)\r`
- appearing at the beginning of the output file.
- This was caused by fallback handling in the old width-measurement logic, which has now been removed, so the problem no longer occurs.
📋 Internal Changes
- Moved command-line option parsing from the main package `cmd/csvi` to the subpackage `startup`.
- Removed the deprecated function `(Config) Main`.
📦 仕様変更
- 曖昧幅の 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` を削除しました。
- [mattn/go-runewidth]: https://github.com/mattn/go-runewidth
- 白背景向け配色の自動判定を追加
- + 1 more
📦 不具合修正
- `echo "ihihi" | csvi -auto "w|-|q|y" > file` 実行時に、出力の先頭へ `\r Calibrating terminal... (press any key to skip)\r` が混入する問題を修正しました。原因は、曖昧幅実測が失敗した際のフォロー処理によるもので、この機構の廃止により再発しません。
📦 内部的変更
- コマンドラインオプション解析処理を `"cmd/csvi"` から `"startup"` パッケージへ移動。
- 非推奨の関数 `(Config) Main` を削除。
📋 Changes in v1.15.0 in (English)
- Added key bindings `]` and `[` to adjust the width of the current column (widen and narrow, respectively).
- Added `-rv` option to prevent unnatural colors on terminals with a white background
- At startup, the width of ambiguous-width Unicode characters was being measured, but on terminals that do not support the cursor position query sequence `ESC[6n`, this could cause a hang followed by an error. To address this:
- `-aw` (treat ambiguous-width characters as 2 cells) and `-an` (treat ambiguous-width characters as 1 cell) options were added to skip the measurement and explicitly specify the character width.
- If `ESC[6n` is not supported, the program now continues without aborting.
- Suppress color output if the `NO_COLOR` environment variable is set (following https://no-color.org/ )
- Added support for FreeBSD/amd64
- Added API functions `(Config) EditFromStringSlice`, `uncsv.NewRowFromStringSlice` and and `(*_Application) MessageAndGetKey`.
- + 1 more
📋 Changes in v1.15.0 in (Japanese)
- 現在カーソルがあるカラムの幅を広げるキー `]` と、逆に狭める `[` を実装
- 白背景の端末でも色が不自然にならないよう、`-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` を追加
- + 1 more
📋 Changes in v0.13.1 and v0.14.0 (English)
- Added `L` (Shift-L) command to reload the file using a specified encoding to correct detection errors
- Encoding name completion is supported.
- UTF-16LE and UTF-16BE are not supported yet.
- Added search command (`*` and `#`) to find the next occurrence of the current cell's content
- Made it possible to build with Go 1.20.14 to support Windows 7, 8, and Server 2008 or later.
📋 Changes in v0.13.1 and v0.14.0 (Japanese)
- エンコーディングの誤判定を修正するため、指定されたエンコーディングでファイルを再読み込みする `L` (Shift-L) コマンドを追加
- エンコーディング名の補完に対応
- UTF-16LE および UTF-16BE には未対応
- 現在カーソルがあるセルの内容で検索するコマンド `*`, `#` を追加
- Windows 7,8,2008Server 環境での動作を可能にするため、Go 1.20.14 でビルドできるようにした
📦 🚀 Experimental Release for macOS Users
- This release includes a macOS build for the first time!
- We don't have access to a macOS environment, so we can't test it ourselves.
- If you're a macOS user and willing to help, please try it and report back through GitHub Issues or [Discussions][Discussion].
- Thank you for your support!
📋 Other changes
- Added `-title` option to display a title row above the header row.
- Please share your thoughts and feedback on this release in Discussion #5 .
📦 🚀 実験的な macOS 版の公開
- このリリースでは、初めて macOS 向けバイナリを含めています!
- Go 製である本ツールは理論上 macOS でも動作可能ですが、作者自身は macOS を所持しておらず、動作確認ができていません。
- そのため今回は、実験的なプレリリースという形で macOS 版を同梱し、動作確認へのご協力をお願いするものです。
- > ✅ 動いた! ❌ ダメだった!
- など、Issue ・[Discussion] などでフィードバックをもらえるととても助かります。
- この macOS バイナリは、単に GOOS=darwin としてビルドしたもので、特別な対応は行っていません。今後の正式対応の参考にさせていただきます。
📦 その他の変更
- `-title` オプションの追加により、ヘッダー行の上にタイトル行を表示できるようにした。
- 本リリースについてのご意見・フィードバックは #5 よりお願いいたします。
- [Discussion]: https://github.com/hymkor/csvi/discussions/5
📋 Changes
- #4 Define the different width for cells. e.g., `-w 14,0:10,1:20` means: the first-column has 10 characters wide, the second 20, and other 14. (Thanks to @kevin-gwyrdh)
- Fix: panic when 0 bytes files (`nul` or `/dev/null`) were given
- #4 列ごとに違う幅を設定できるようにした。例: `-w 14,0:10,1:20` 1列目は10桁,2列目は20桁,他は14桁とする (Thanks to @kevin-gwyrdh)
- 0バイトのファイル(`nul`,`/dev/null`)を与えるとクラッシュする不具合を修正
🐛 Bug fix for the prediction implemented on v1.11.0
- Fix: the prediction did not start when the original value of the current cell was empty.
- Fix: the search target for the prediction shifted one column to the right when inserting a cell value with `a`.
📦 v1.11.0 で実装された予測機能の不具合修正
- 現行セルのオリジナルの値が空の時、予測表示が始まらない問題を修正
- `a` でセル値を挿入する際、予測候補の検索先が一つ右の列にズレていた不具合を修正
- 
📋 Changes
- While entering text in a cell, automatically display suggestions from cells in the same column that contain the current input. Press `→` or `Ctrl-F` to accept.) [go-readline-ny v1.5.0]
- Support the hankaku-kana mode on the SKK input (`Ctrl-Q` to enter the hankaku-kana mode from SKK kana mode) [go-readline-skk v0.4.0]
- セル編集中に、同じ列で現在入力中のテキストを含むセルのテキストを候補として自動的に表示し、`→` もしくは Ctrl-F で採用できるようにしました [go-readline-ny v1.5.0]
- SKK入力で半角カナ入力をサポート(SKKのかな入力モードで`Ctrl-Q`を押下する) [go-readline-skk v0.4.0]
📋 Changes from v1.9.1 to v1.10.0 (English)
- Add new options:`-p` Protect the header line ( `Config.ProtectHeader` for package configuration )
- Do not create a row contains nothing but EOF.
- When `-fixcol` is set, the new row which `o` & `O` insert has all columns same as the row cursor exists
- When `-fixcol` is specified
- Fix: `o` and `O`: inserted column was always the first one of the new line
- Fix: `O`: the line of cursor is incorrect before new cell text is input
- Fix timing to close the terminal input was incorrect
- (The cause is unknown; however, the issue has not manifested)
- + 6 more
📦 v1.9.1 から v1.10.0 への変更点 (日本語)
- 新オプション追加:`-p` ヘッダー行を保護 ( パッケージ用設定:`Config.ProtectHeader` )
- EOF だけの行を作成しないようにした
- `-fixcol` 指定時、`o` や `O` で挿入される行は、カーソルのある行と同じ全列を持たせるようにした。
- カラム数固定(`-fixcol`)の時
- `o` や `O` で入力されたテキストが記入される列がカーソルのあった列ではなく常に先頭列になっていた不具合を修正
- `O` でテキストを入力する時の反転セルの行位置がずれている不具合を修正
- 端末入力(go-tty)のクローズタイミングがおかしかった点を修正
- (なぜか問題として表面化していない)
- + 6 more
📋 Changes
- Add the option `-fixcol` that disables keys `i`,`a`, and `x` not to shift columns.
- Move the main function to the sub-package `cmd/csvi` to be available as a package of Go
- Add the option `-readonly` that forbide changing the value of cell. When enabled, "q" shutdowns csvi immediately
- 列をズレさせないよう、`i`,`a`,`x` などを無効にする オプション `-fixcol` を追加
- Goパッケージとして利用できるよう、main 関数を`cmd/main` へ移動
- セルの変更を禁止する `-readonly` オプションの追加。この時は `q` で確認プロンプトは出さない
📋 Changes
- Fix: crashed on starting `csvi` with no arguments
- Fix: a cell were not flipped when the cursor was in a cell with no text.
- Fix: the foreground color was not black, but gray.
- Change the case STDOUT or STDERR is used on no arguments to make the content of foo.txt becomes `foo\r\n` when executing `echo "foo" | csvi -auto "w|-|q|y" > foo.txt`
- 引数なしで `csvi` を起動すると落ちる問題を修正
- テキストがないセルにカーソルがある時にセルが反転しない問題を修正
- カーソルの文字色が黒ではなく灰色になっていた不具合を修正
- `echo "foo" | csvi -auto "w|-|q|y" > foo.txt` で foo.txt が `foo\r\n` になるように、引数ゼロ時の標準出力と標準エラー出力の使い分けを変更した。
📋 Changes
- Update the read bytes of the status line 4 times per second while all lines have not read. Before, it was updated only on the timing user typed key
- Reduced the number of times ERASELINE (`ESC[K`) is output for too slow terminal to improve the speed to update screen.
- まだ全行読み切っていないとき、ステータスラインの読み込み済み行数欄を毎秒4回更新するようにした(今まではキー入力直後にしか更新していなかった)
- 遅い端末向けに、ERASELINE (`ESC[K`) を出力する回数を削減して、表示更新速度を改善
📋 Changes
- Set cursor ON or OFF when YES or NO is asked.
- Fix the problem (since v1.6.0) that the cursor position could become invalid after moving from a long line to a short line, causing a crash when editing.
- Yes/No を問い合わせる時、カーソルを On/Off するようにした。
- 長い行から短い行に移動した後のカーソル位置が無効になることがあり、編集するとクラッシュする不具合(v1.6.0-)を修正
