検索パターンを斜体にするのではなく、強調表示を少なくする


23

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

実行しようとしましたman -P vim systemdが、エラーステータス1で終了しましたless

man lessその助けで私が見つけることができたものは何もありませんでした(代わりに、オプション-Gが一緒に強調表示をオフにすることがわかりましたが、イタリックよりもさらに悪いです)。

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

参考までにUbuntu 14.10を実行しています

私はこの質問に出くわしたのと同じことについて尋ねているようですが、この動作をどのように行っているかわかりません(LESS_TERMCAP_so)。lessmanページには、このことを言及していません。(このソリューションでは奇妙な結果が得られます)


これは、その行を~/.bashrcファイルに配置することを意味します。export LESS_TERMCAP_so=$'\E[30;43m'同様に、この答えを参照してくださいunix.stackexchange.com/questions/38634/...
iyrin

1
man man | vim -vimの設定、キー、機能を活用するために使用することがあります
-JJoao

これに対する解決策を見つけましたか?私は1台のマシンでまったく同じ問題を抱えていますが、その違いはわかりません。上記のLESS_TERMCAP_so変数により、ファイル全体がオレンジ色の背景に変わります
...-user1338062

私はまだこれに苦労しています
-sgp667

回答:


16

スーパーユーザーに関する回答が見つかりました:https : //superuser.com/questions/566082/less-doesnt-highlight-search

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


私はすでにこの質問を忘れていましたが、これは刺激的なニュースです。コンピューターに手を出したらすぐにテストします!
sgp667

1
他のアプリケーションは、WeeChatなどのtmux内でTERMをscreen *に設定することに依存しているため、これは非現実的なソリューションです。tmuxでscreen *に設定されていない場合、WeeChatには奇妙なレンダリングの問題があります。
ブレインラフレニエール16

tmux <2.0で問題があり、tmux v2以降は問題がないことに注意しました。
-artfulrobot

素晴らしい発見。私は今持っているset -g default-terminal "xterm-256color"私に〜/ .tmux.conf私のCentOSの上の7箱(その他)。
14:43にsshow

screen-256color存在するかどうかも確認してください:try ls /usr/share/terminfo/s/
aDroid

8

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

terminfoの(5)のマニュアルページのterminfoのために、これらの機能の概要を示します(smso / rmso)とのtermcap(そう/ SE)名:

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

そのセクション 強調表示は、次のことを説明しています。

端末に1種類以上の表示属性がある場合、これらはさまざまな方法で表すことができます。エラーメッセージやその他のアテンションゲッターを強調表示するための優れた、コントラストの高い、見やすい形式を表す1つの表示フォームを傑出モードとして選択する必要があります。(選択できる場合は、反転表示にハーフブライトを加えたもの、または反転表示のみが適しています。)傑出モードを開始および終了するシーケンスは、 smso および rmsoとしてそれぞれます。

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

コメントで提案されている値を仮定すると:

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

次に、ほとんどの端末でそれをリセットできます

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

ちなみに、イタリック体の理由は、GNUの端末記述でscreenは、イタリック体の標準エスケープシーケンスを独自の傑出した機能として使用しているためです。それのいくつかは端末データベースエントリーで議論されます


これは(Macのtmuxで)私にとって実際に機能した最初のソリューションでした。上記の両方のエクスポート行をbash構成ファイルに追加するだけです。
-Marlun

しかし、これらの行が強調表示され、ターミナルが強調表示された後、すべての環境変数を表示するために「エクスポート」を書くと、それを閉じて新しいものを開始する必要があります。
マルラン

そのような場合、特定の変数を必要とするプログラムを呼び出すスクリプトに変数を入れます。変更された変数は、スクリプト内でのみ適用されます。
トーマスディッキー

export | lessあまりにも回避策として機能
Marlun

4

ESCu検索less後に検索の強調表示をオフにするには、ヒットします。新しい検索で再び有効になるため、セッションヒットの検索ハイライトを永続的に無効にするには-G

代わりにLESS='-G'環境に配置するか、次のmanように実行します。

LESS='-G' man less

皮肉なことに、これはすべてで文書化されています lessマンページにます...

また、環境内に次のものを配置することもできます.bash_profile。たとえば、

export MANPAGER='less -G'

私の質問で説明したように、完全に無効にしたくないので、画面上での表示方法を変更したい 私の質問は誰かが私のためにそれを編集したため誤解を招く可能性があります。
sgp667

1

tmuxの場合TERMtmux-256colorに設定します。他の素晴らしい点の中でも、これには「通常の」逆ハイライトがlessにあります。fedoraやcygwinのような最新のものを使用する場合に有効です。

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

ただし、Centosncursesパッケージには、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

結果!

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

$ sudo mv ~/.terminfo/t/tmux-256color /usr/share/terminfo/t/
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.