ov v0.9.4

Posted on:

ov v0.9.4をリリースしました

Terminal PAGER releases ov v0.9.4

検索の改善

検索にインクリメンタルサーチを追加しました。issue#83に上がっていたインクリメンタルサーチを実装しました。 一文字入力するごとに検索をして最短でみつかった語の位置に移動します。 検索は毎回goroutineを使用しているため、入力を妨げないようになっています(小さなファイルだと気がつかないですが、大きなファイルで固まる実装が多いので、その差を実感していただけると思います)。

検索は元々、正規表現の入力も可能だったのですが、入力時に特殊文字を\でエスケープする等のわかりづらさがあったので、今回正規表現検索を使用するかを分けました。 インクリメンタルサーチでも正規表現は使用できます。

元々、大文字、小文字を区別するスイッチはあったので、検索時は、これらの組み合わせによって動作が変わるため複雑になっています。

機能表示(Default)切り替えキーコマンドオプション
インクリメンタルサーチ(I)alt+i–incremental
正規表現(R)alt+r–regexp-search
大文字小文字の区別(Aa)alt+c-i, –case-sensitive

オプションの他、設定によってデフォルトを変更できます。ov.yamlのコメントを外して設定してください。

マークの改善

こちらもissue#86に上がっていたマークの削除とマークの可視化を実装しました。

これまで、現在の見ている行にマークを付けて移動して戻れるようにしていたのですが、削除機能は付けていませんでした。個別削除と全削除をできるようにしています。

マークすると先頭の背景色を変更して可視化しています。この部分はスタイルカスタマイズでStyleMarkLineにより、背景色、前景色、太字、アンダーライン等カスタマイズ可能です。また、MarkStyleWidthにより先頭から何文字スタイルを適用するか設定可能です。一行全部を変更したい場合は -1を指定してください。

スキップ行の指定

v0.9.3のオプションとして、先頭から指定した行を不可視にするオプションを追加しました。これは--headerと組み合わせて使用することを想定しています。 --headerを指定すると先頭から指定した行を固定表示できますが、余分な行があると表示領域が狭くなります。

例えばASCIIのボックス表示では、最上位行が区切り線の行になります。1行だけならまだ良いですが、横に長いデータの場合、折返し表示モードでは区切り線が何行にも渡って表示される場合があります。

1 +----+--------+
2 | id |  name  |
3 +----+--------+
4 |  1 | Orange |
5 |  2 | Melon  |
6 |  3 | Apple  |
7 +----+--------+

この場合 1行スキップして、ヘッダーを1行に指定すると2行目のみヘッダーとして扱われ、4行目以降がボディとしてスクロール対象になります。 skip skip

おまけ

インクリメンタルサーチと正規表現の組み合わせで以下のようなことができるようになりました:-) incsearch incsearch

過去のバージョン

  • v0.9.4 マーク機能の強化、インクリメンタルサーチを追加して検索強化。
  • v0.9.3 スキップ行オプションの追加
  • v0.9.2 主要モジュール更新版
  • v0.9.1 半画面下移動のバグ修正。goのバージョンを1.16以降へ変更。
  • v0.9.0 follow,follow-all,execの各モードを追加、改善。検索とカラム選択のスタイルカスタマイズを可能にしました。
  • v0.8.9 (pre)follow-mode,follow-all-modeの追加
  • v0.8.1 文字の単位をCode point から Grapheme clusterに変更しました。
  • v0.8.0 tcell v2にアップグレードしました。
  • v0.7.1 交互に行スタイル効果適用の行がズレていたので修正
  • v0.7.0 スタイルカスタマイズの改善
  • v0.6.2 検索の高速化とキャンセル処理の追加
  • v0.6.1 細かな修正バージョン
  • v0.6.0 マウスサポート
  • v0.5.0 複数のドキュメントを開く方法を変更
  • v0.4.0 ヘルプ画面を追加
  • v0.3.1 位置をマークする機能を追加
  • v0.3.0 入力の改善
  • v0.2.1 色をカスタマイズ可能にする
  • v0.2.0 検索の改善
  • v0.1.3 行番号モードを追加
  • v0.1.2 Homebrewパッケージの追加
  • v0.1.1 パッケージ自動更新の調整
  • v0.1.0 ovにレポジトリ名と構成を変更。deb/rpmパッケージの追加
  • v0.0.5 現在の基本機能を備えた最初のバージョン

参考

ovの紹介