web-dev-qa-db-ja.com

イタリック体にするのではなく、ハイライトする検索パターンを少なくする

私の理解では、男性はlessをポケットベルとして使用し、lessを使用してキーワードを検索すると、イタリックでキーワードが「強調表示」されます。それは本当に不便だと思うので、これをvimのset hlsearchのようなものに変更して、見つかったパターンの背景が異なるようにします。

man -P vim systemdを実行しようとしましたが、エラーステータス1で終了したため、lessが表示されないようです。

man lessで見つけることができたものは何もありませんでした(代わりに、オプション-Gがハイライト表示をすべてオフにして、イタリックよりもさらに悪いことを発見しました)。

とは言っても、manページで検索の強調表示(背景色を変更)を実現する方法を知っている人はいますか?

ちなみに私はUbuntu 14.10を実行しています

私はこれに遭遇しました question は同じことについて尋ねるようですが、これがどのように機能するかに従っているかどうかはわかりません(LESS_TERMCAP_so)。 lessのmanページではこれについて言及されていません。 (私はこの解決策で奇妙な結果を得ます)

23
sgp667

スーパーユーザーで答えを見つけました: https://superuser.com/questions/566082/less-doesnt-highlight-search

TERM設定と関係があるようです。たとえば、通常のgnome-terminalウィンドウでは通常より少ない強調表示が動作します(白い背景の強調表示)が、tmuxにいるときは斜体になります。私にとっての違いは、tmuxではTERMが「screen」に設定されているが、そうでない場合は「xterm-256color」に設定されていることです。 tmuxウィンドウで「TERM = xterm-256color」を設定すると、lessでの強調表示が背景の強調表示に戻ります。

16
purg

LESS_TERMCAP_soへの言及は不完全でした。これは、termcap so(スタンドアウト)機能をオーバーライドするために使用されるlessの特別な環境変数です。この機能を使用するには、se(スタンドエンド)機能も提供する必要があります。

terminfo(5) マニュアルページには、terminfo(smso/rmso)およびtermcap(so/se)の名前に関するこれらの機能の概要が記載されています。

   enter_standout_mode           smso       so        begin standout mode
   exit_standout_mode            rmso       se        exit standout mode  

強調表示 に関するセクションでは、次のように説明されています。

端末に1種類以上の表示属性がある場合、これらはさまざまな方法で表すことができます。 standoutモードとして1つの表示形式を選択する必要があります。 -目、エラーメッセージおよびその他の注意ゲッターを強調表示するためのフォーマット。 (選択肢がある場合は、反転ビデオと半輝度の組み合わせ、または反転ビデオのみが適しています。)スタンドアウトモードを開始および終了するシーケンスは、smsoおよびrmsoそれぞれ。

standoutに色を使用する場合は、対応するLESS_TERMCAP_seを指定して、色をリセットする必要があります。他の理由(groffのSGR色機能を使用するなど)のためにマニュアルページで色を使用する予定がない限り、これは比較的簡単に実行できます。

コメントで提案された値を仮定します:

export LESS_TERMCAP_so=$'\E[30;43m'

それを使用して、ほとんどの端末でそれをリセットできます

export LESS_TERMCAP_se=$'\E[39;49m'

ちなみに、italicsの理由は、GNU screenの端末の説明がイタリックの標準エスケープシーケンスを使用するためです。独自のスタンドアウト/スタンドエンド機能として、その一部は ターミナルデータベースエントリ で説明されています。

9
Thomas Dickey

ヒット ESCu 検索後にlessで検索の強調表示をオフにします。新しい検索で再びオンになるので、セッションヒットに対して検索の強調表示を永続的にオフにします -G

代わりにLESS='-G'環境内で、またはmanを次のように実行します。

LESS='-G' man less

皮肉なことに、これはすべてlessマンページに記載されています...

以下を環境に配置することもできます。あなたの.bash_profile

export MANPAGER='less -G'
4
wurtel

tmuxの場合、TERMtmux-256colorに設定します。他の素晴らしいものの中で、これはlessで「通常の」逆強調表示を持っています。 Fedoraやcygwinなどのモダンなものを使用する場合にうまく機能します。

$ cat ~/.tmux.conf
⋮
set-option -g default-terminal tmux-256color

Centosのncursesパッケージには、2つのtmux定義(tmuxおよびtmux-256color)がありません。 Fedoraから簡単にインポートできました。 Centosのncursesは、Fedoraのterminfoファイルを直接理解するには古すぎます。

Fedoraの場合:

$ infocmp tmux256-color >temp.txt

Centosの場合:

$ scp Fedora-machine:temp.txt .
$ tic temp.txt

次に、内部tmux

$ TERM=tmux-256-color man tmux

結果!

FYI ticコマンドは、コンパイルされた端末記述を個人のterminfoデータベースに入れます。つまり、~/.terminfo/t/tmux-256color (この場合)。必要な場合は、これをグローバルデータベースに自由に移動してください。

$ Sudo mv ~/.terminfo/t/tmux-256color /usr/share/terminfo/t/
1
bobbogo