30

たとえば、セッションman lstmuxに検索すると、検索文字列が強調表示されません。ページが下にジャンプして、検索文字列が期待どおりにバッファの一番上の行に表示されますが、強調表示されません。

セッション中でないときに同じシェルで同じことを行うと、tmux検索文字列が強調表示されます。

これを解決するためにどこから始めればよいのかわかりません。ヒントは大歓迎です。

4

3 に答える 3

21

Less Colors For Man Pages byに基づいてGen2ly、ここに私のmanページとその方法があります:

プレビュー

これはシェルであり、ウェブページではありません! man ページでのカスタム検索の強調表示

方法

  1. (オプション) Konsole/YakuakeのTomorrow テーマを使用しています。
  2. などを編集~/.bashrc ~/.zshrcして追加します。

    # Colored man pages: http://linuxtidbits.wordpress.com/2009/03/23/less-colors-for-man-pages/
    # Less Colors for Man Pages
    export LESS_TERMCAP_mb=$'\E[01;31m'       # begin blinking
    export LESS_TERMCAP_md=$'\E[01;38;5;74m'  # begin bold
    export LESS_TERMCAP_me=$'\E[0m'           # end mode
    export LESS_TERMCAP_se=$'\E[0m'           # end standout-mode
    export LESS_TERMCAP_so=$'\E[38;5;016m\E[48;5;220m'    # begin standout-mode - info box
    export LESS_TERMCAP_ue=$'\E[0m'           # end underline
    export LESS_TERMCAP_us=$'\E[04;38;5;146m' # begin underline
    
  3. 設定をリロードして、man ページ検索を試してください:

    . ~/.bashrc && man ls
    
于 2014-03-05T15:51:31.087 に答える
19

修正しました。問題は、screen $TERMイタリックを処理する方法に関係しています。tmuxFAQから:

vimはイタリックの代わりにリバースビデオを表示し、lessはリバースの代わりにイタリック(または通常のテキスト)を表示します。どうしたの?

これは私の問題と完全に一致します。$PAGERによって使用されるのmanlessデフォルトです。基本的には、マニュアルページの内容を表示するためにman使用されます。less私の場合、lessテキストを強調表示するのではなく、通常のテキストを表示するだけでした。

これが発生する理由:

Screenのterminfoの説明にはイタリックモードがなく、代わりに目立つモードがありますが、urxvtがイタリックに使用するのと同じエスケープシーケンスを使用しています。つまり、イタリックを探しているアプリケーション(vimなど)はそれを見つけられず、代わりに逆になってしまう可能性がありますが、目立つものを求めているアプリケーション(lessなど)は、逆ではなくイタリックになってしまいます。

解決策は、の新しいterminfoファイルを作成することですtmux。これにより、イタリックがサポートされていることがわかります。tmuxソリューションの概要は、(執筆時点で) FAQの非常に下部にあります。

新しいterminfoファイルを作成した後、tmux:(このスーパーユーザーの質問C-b :source-file /absolute/path/to/.tmux.confから)-これにより、ファイルがリロードされます。ただし、これは私には機能せず、変更はサーバーを再起動した後にのみ適用されました(すべてのセッションを閉じてから再度開きます)。tmux.tmux.conftmuxtmux

于 2012-05-12T11:23:27.087 に答える