www.srekcah.org > ~utashiro > perl > scripts >

termfix

termfix-2.0
8年ぶりにアップデート。
Perl5 でのみ動作。
現在の設定に存在しないコードを追加できるようにした。
ドキュメントを pod 化。
termfix-1.4

応用例

  1. man の結果を見ながらコマンドを実行したいのに、man コマンドを終ると 前の画面に戻ってしまう

    more や環境変数 PAGER で指定されているコマンドが、起動時と終了時に端末 のモードを切替えるシークエンスを出しているためです。
    ti        str                 String to begin programs that use termcap.
    te        str                 String to end programs that use termcap.
    
    表示コマンドが終了した時に、以前の画面に戻ってくれると嬉しい場合が多い のですが、戻って欲しくない場合もあります。そのような時には、次のように して一時的に ti と te を無効にしてコマンドを実行しましょう。
    % termfix tite@ man 5 termcap
    
  2. screen を使うと xterm の reverse video が戻ってしまう

    screen が、起動時に termcap(5) の is (terminal initialization) の文字 列を出力しているためだと思われます。これを正しく設定するのも手ですが、 面倒だったら is を無効にしてしまえば、当面の問題は解決します。
    % termfix is@ screen
    

    ついでに rs も無効にしておいた方がいいかも。

  3. xterm では色の属性も変えられるので、アンダーラインやボールドの色を 変更したい

    たとえば、こんな風にすると、ボールドの部分が赤、アンダーラインが青にな ります。

    % termfix us="\E[34m" ue="\E[m" md="\E[31m" me="\E[m" man man
    
    ボールドとアンダーラインはそのままで色も付けたければこうです。
    % termfix so="\E[44;37m" se="\E[m" us="\E[34;4m" ue="\E[m" md="\E[31;1m" me="\E[m" man man
    
    alias を定義してもいいし、たとえば .cshrc や .login で
    alias colorize 'termfix so="\E[44;37m" se="\E[m" us="\E[34;4m" ue="\E[m" md="\E[31;1m" me="\E[m"'
    setenv TERMCAP "`colorize`"
    
    のように定義しておけば、いつもその環境になります。

  4. cdif の出力と、それを less で見た時で表示が違う

    alias cless termfix mdme=sose usue=mdme less
    
    という定義をして cless で見ると同じに見えるはずです。