itLinkedInPocketCopyログファイルやソースファイルをささっと確認したい時に活躍するlessコマンド。そのままだとモノクロの表示で見にくい。そんな時、source-highlightを入れてシンタックスハイライトするのが一般的な解決法ですが、macOSとかRaspbianの環境ではlessの高度な機能との共存がうまくいかず、、、そこで、改めて解決方法を模索しました。関連やりたいことネットでさらっと見つかる情報を実行しただけでは、シンタックスハイライトとlessの高度な機能(tar.bzとか.bz2など圧縮ファイルの中も見える)がうまく動きませんでした。lessの高度な機能を活かしたままシンタックスハイライトの機能を追加することが目的です。10.12.6)※Homebrewをインストール済み。4.9.35-v7+)用語source-highlight各種プログラムやスクリプトをシンタックスハイライトしてくれる便利なソフト。lesspipe中身を簡単に確認できる「less」をさらに便利にしてくれるコマンド。テキスト以外のファイル(.bz2など圧縮されたテキスト)もlessで簡単に見る事ができるようになります!超便利!macOS編source-highlight、lesspipeをインストールして設定します。source-highlightを入れるmacで、管理者権限のあるユーザーでターミナルを開きます。念のため、source-highlightを探してみます。licenseにagreeしてねと言われたので、以下を実行。/usr/local/Cellar/source-highlight/3.1.8_7無事に入りました!lesspipeを入れる次に、lesspipeを入れます。lesspipe場所を確認しておきます。/usr/local/bin/lesspipeこのシンボリックリンクを作ることで、source-highlightが正しく動くようになります(※詳しく知りたい方は後半のおまけを参照)。source-highlightの設定前に、lesspipeで圧縮ファイルを見てみます。適当なテキストファイルを圧縮したものを開いてみます。hoge.txt.bz2これで中身が表示されればlesspipeのインストールは完了です。設定は、.bashrcに2行加えるだけです。LESS='-R'変更を反映させます。hoge.txt.bz2無事に表示されたらひとまず完了です。修正(zip対応)lessで圧縮ファイル(.bz2とか)を開くことはできたのですが、zipファイルが開けないことに気付きました。原因は、インストールされたsrc-hilite-lesspipe.shにzipが指定されていないこと。いうことで、対象となる拡張子にzipを付け加えます。/usr/local/bin/src-hilite-lesspipe.sh以下の部分を探して、*.tar|*.tgz|*.gz|*.bz2|*.xz)最後に*.zipをパイプでつなげます。onlyなので、書き込む際に!をつけて「w!」とすれば書き込めます。すると、*.zipファイルの中身が見えるようになります。中でも同じような記載があり、各種コマンドに渡しています。してもいいかもしれません。(見え方が変わります)おまけ(lesspipe.shのシンボリックリンク)source-highlightの設定で、lesspipe.shのシンボリックリンクlesspipeを作成しました。/usr/local/bin/src-hilite-lesspipe.shの編集の時に気付かれたかもしれませんが、このなかでlesspipeが参照されています。;;なので、「〜.sh」だと見つからずに失敗していたコマンドが、シンボリックリンクを作成する事でうまく動くようになるということでした!さらに、おまけ!~/.bashrcにsrc-hilite-lesspipe.shを指定していました。%s"と指定すれば、自分用の設定を自由にできちゃいます。ルート権限が使えない環境でこの方法が役に立つと思います。ラズパイ編macOS編で細かく説明したので、ラズパイでは簡単にまとめます。環境変数を設定します。~/.bashrcを実行したら、lessでシンタックスハイライトされるようになります!macOS編と同様に、圧縮ファイル(.bz2とか)を見るためにはlesspipeが必要です。最初から入っていると思うのですが、入っていなければapt-getで入れましょう。hoge.bz2など圧縮ファイルを指定すると自動で展開して表示してくれるはずなのですが、src-highliteのバージョンによっては上記のように環境変数を指定すると展開できなくなってしまいます。※version3.1.8と3.1.7に違いがあるかもしれません。原因はsrc-hilite-lesspipe.shの中身でした。圧縮ファイルに対する処理が書いてない!!簡単に解決するために、macで上手くいっているshスクリプトを持って来ます。;;esacdoneこれを、もとのファイルと置き換えます。現在のファイルをバックアップしておきます。src-hilite-lesspipe.sh.orgスクリプトを編集して、上記のスクリプトをコピペして保存します。lesspipe.shのシンボリックリンクlesspipeを作成しておきます。これで圧縮したファイルもlessで表示できるようになりました!できなかったこと*.bz2ファイルは展開した後にシンタックスハイライトされて表示されたのですが、*.zipファイルはうまくハイライトされませんでした。どこか設定に抜けがあるのかもしれません。まとめmacOSやRaspbian環境で、便利なlessコマンドの機能を活かしたままシンタックスハイライトを行う方法を紹介しました。.ssh/config、Include、bash-completionを活用ラズパイやWebサーバーなど、sshで接続して作業することは多々あると思います。X7のアドインが使えなくなったので削除する方法どーも、最近おもしろいことが多くてついつい夜遅くなり、絶賛寝不足中のまーくです。コメントをキャンセルメールアドレスが公開されることはありません。コメント名前メールアドレスウェブサイトこのフォームを使用することにより、このウェブサイトによるデータの保管および取り扱いに同意するものとします。5+1選!【運用編を追加】まーくお問い合わせやってみてわからなかったことなど技術的な質問は、各記事の一番下にコメント欄(ディスカッション)がありますのでそちらにお願いします。その他はtwitter(@iot_plus_net)にどうぞ。