標準愚痴出力

個人的なIT作業ログです。もしかしたら一般的に参考になることが書いているかもしれません(弱気

今までよく理解できていなかった、bash のヒストリを参照して編集した時のヒストリエントリの変化

bash で実験したが

$ echo 1
$ echo 2
$ echo 3

と入力した後、Ctrl-P で echo 2 を呼び出して echo 2+ に変更すると、ヒストリ構造は一時的に

  1. echo 1
  2. echo 2+
  3. echo 3

みたいになる。だが、だが、一旦 Enter を押すと

  1. echo 1
  2. echo 2
  3. echo 3
  4. echo 2+

のように、echo 2 が復元され、echo 2+ が新エントリとして末尾に追加される。

go-readline-ny は一時動作までエミュレートできていないので、いずれちゃんと直さなくちゃなあ(誰も気にしていないようだが)

幸い、ヒストリまわりのインターフェイスの仕様の互換性は維持できそうだ

type IHistory interface {
    Len() int
    At(int) string
}

たぶん、唯一の問題はこの修正をリリースノートや、ChangeLog に、どのように書こうかという点だ。

追記 (2024-06-11)

  • go-multiline-ny については v0.15.0 にて対応
  • go-readline-ny でも一応対応済みだが、まだタグは打っていないので、無理やり使う場合は go get -u github.com/nyaosorg/go-readline-ny@master する必要あり