ターミナル・ユーティリティ

ファイラー

SSHなどのターミナル環境でインタラクティブなファイル操作を行いたい場合、Midnight Commander(mc)を利用できます。 mcコマンドを実行するとディレクトリ内のファイルリストが表示され、カーソルキーで移動できます。

  • メイン領域に2ペインのディレクトリ・リストが表示される。Tabでペイン移動可能
  • ウインドウ下部にshellプロンプトがある。表示領域は狭いがシェルとして機能し、mcのショートカット以外の入力はshellが受けとる
  • メニューはファンクションキー(またはAlt+数字)に割り当てられており、画面上にも表示されている
  • ファイル操作もファンクションキーからメニュー呼び出し
  • libgpmによりマウスも効く。ただし、右クリックやドラッグアンドドロップに対応機能はない
  • view(ファイルプレビュー)機能については、外部コマンドを利用して拡張

ターミナルでPDF閲覧

popplerとlessを組み合わせるとターミナルでPDFを開けます。Debianの場合、poppler-utilsとlessをインストールします。

環境変数LESSOPENlesspipeというフィルタスクリプトを指定すると、ファイル拡張子に応じた変換を実行します。pdfの場合にはpoppler-utilsが提供するpdftotextが指定されています。

export LESSOPEN='| /usr/bin/lesspipe %s'

フィルタを適切に設定した状態でファイルをlessするとテキストレンダリングされたPDFを表示できます。
ただし、PDFの中には印刷機能で作成されたファイルがあり、実体が画像になっていると何も表示されません。

mcでPDFプレビュー

Midnight Commander(mc)は、環境変数VIEWERを参照するため、lessを指定しておくとmcからプレビューできます。

export VIEWER='less'

外部のviewerを利用するには、mcの設定でinternal viewerをオフにしておく必要があります。

gitのTUIクライアント

ターミナルでgitをインタラクティブに操作するツールは tig が定番です。
vimライクなキーバインドで操作します。各モードについては、hキーのヘルプで確認できます。

tigは pull/push を実装していないポリシーですが、~/.tigrcでキーバインドを追加すると動作します。以下の設定はspacemacsのmagitに合わせた例です。

bind generic F !git pull %(remote)
bind status P ?git push origin

prefixの!?は実行前の確認の有無を制御しています。
gitはGUIツールに決定打がなく、tigはポータブルな選択肢として優れています。

日本語フォント

ターミナルの文字重複を緩和するで解説しているとおり、白源フォントのHackGen Consoleはターミナルに向いています。
ターミナルのフォント設定は、各ソフトが提供するconfigに従います。SSHなどの構成では構成要素は増えますが、リモートのエディタなどではなくクライアントのターミナル設定で制御します。

AndroidのTermuxは$HOME/.termux/font.ttfを参照するため、ダウンロードしたフォントを配置して再起動すると利用できます。
見た目の品質はフォント指定だけでほぼ制御できます。

bashの補完強化

bashはTabキーで入力候補を補完できます。 bash-completionは補完対象をコマンドごとに拡張します。Debianの場合、同名のパッケージをインストールすると有効になります。
たとえば、sshコマンドをタブ補完すると、~/.ssh/configに定義したホスト名が補完されます。

中馬崇尋
Chuma Takahiro