私の理解では、男性はless
をポケットベルとして使用し、less
を使用してキーワードを検索すると、イタリックでキーワードが「強調表示」されます。それは本当に不便だと思うので、これをvimのset hlsearch
のようなものに変更して、見つかったパターンの背景が異なるようにします。
man -P vim systemd
を実行しようとしましたが、エラーステータス1で終了したため、less
が表示されないようです。
man less
で見つけることができたものは何もありませんでした(代わりに、オプション-G
がハイライト表示をすべてオフにして、イタリックよりもさらに悪いことを発見しました)。
とは言っても、manページで検索の強調表示(背景色を変更)を実現する方法を知っている人はいますか?
ちなみに私はUbuntu 14.10を実行しています
私はこれに遭遇しました question は同じことについて尋ねるようですが、これがどのように機能するかに従っているかどうかはわかりません(LESS_TERMCAP_so
)。 less
のmanページではこれについて言及されていません。 (私はこの解決策で奇妙な結果を得ます)
スーパーユーザーで答えを見つけました: https://superuser.com/questions/566082/less-doesnt-highlight-search
TERM設定と関係があるようです。たとえば、通常のgnome-terminalウィンドウでは通常より少ない強調表示が動作します(白い背景の強調表示)が、tmuxにいるときは斜体になります。私にとっての違いは、tmuxではTERMが「screen」に設定されているが、そうでない場合は「xterm-256color」に設定されていることです。 tmuxウィンドウで「TERM = xterm-256color」を設定すると、lessでの強調表示が背景の強調表示に戻ります。
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
の端末の説明がイタリックの標準エスケープシーケンスを使用するためです。独自のスタンドアウト/スタンドエンド機能として、その一部は ターミナルデータベースエントリ で説明されています。
ヒット ESCu 検索後にless
で検索の強調表示をオフにします。新しい検索で再びオンになるので、セッションヒットに対して検索の強調表示を永続的にオフにします -G。
代わりにLESS='-G'
環境内で、またはman
を次のように実行します。
LESS='-G' man less
皮肉なことに、これはすべてless
マンページに記載されています...
以下を環境に配置することもできます。あなたの.bash_profile
:
export MANPAGER='less -G'
tmuxの場合、TERM
をtmux-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/