関連記事 » ウィンドウ操作について(613日)
» バッチファイル終了時、自動でウィンドウを消す(723日)

一昨日少し書いたConsole2からの乗り換えの件です。当初Cmderがいいかなと思っていたところ、これに含まれているConEmuだけの方が自分に合っていました。設定可能な項目が多くて少し手こずったけど、psqlGit Bashなど主に使うシェルと、バッチファイルやコマンドラインツールの実行環境の両方をだいたい移行できて満足。以下、検討の過程とConEmu設定のメモで、OSはいつも通りWindows 7 32bitです。
Contents

ConEmuのいい所
ConEmuは複数のシェルをタブ化でき、Ctrl+TABで移動も楽々。フォント変更、タイトルバーなど外側を消す、シェル画面の周辺に間隔を空けるなど、外観の自由度も十分あり。同時に、Console2で不満だったテキスト選択のしづらさ・機能不足もなく、Shift+移動キーですぐにテキスト選択モードに移り、インライン選択・矩形選択ともに可能。またAlt+Spaceから全メニュー+一般的なウィンドウ操作ができるのも良いです(二つ目の画像)。


psqlで列数の多いクエリは、画面サイズを拡げてから実行すれば途中折り返しなく表示できます。一般的なアプリケーションと同様、キーボードで「Alt+Space、続いてX打鍵」だけで全画面になるのが便利。これもConsole2ではできず不満だった点です。



ConEmuに決めるまで
4月半ばにConsole2に変えた時は、主にコマンドプロンプトの見た目が問題でした。色やフォントを変えることは一応できるものの、PCごとに設定し直すのが面倒。また文字と外枠がぴったり付いているのが嫌。Console2はそれらを手軽にクリアでき、ポータブルに使えるので乗り換えました。

ところがConsole2はテキスト選択にマウス操作が必須で、それをキーボードだけでできたコマンドプロンプトより、むしろ使い勝手が悪い印象。下の画像はコマンドプロンプトでAlt+Space、続いてEを押したところで、範囲指定を選べば移動キーで矩形選択できました。

またコマンドプロンプトは、Alt+Space、続いてX打鍵で「最大化」を選ぶと、横幅は不変ながら縦は画面サイズまで広がります。これもConsole2でできず、マウス操作しないと画面を広げられないのにイライラ……で調べてみると、他のコマンドプロンプト代替ツール・ソフトウェアが結構見つかり、これらの不満を解消できそうなのが
ConEmuと、それを含むパッケージ的なCmderでした。

最初にConEmuを試し、機能やショートカットは十分良かったものの、文字と外枠がぴったり付いているのがコマンドプロンプトと同じで嫌。変える設定が見当たらず、公式サイトのスクリーンショットも同じなので駄目かorz… 一方Cmderはデフォルト設定で文字と外枠が適度に開いていい感じ。なのにメニューを出すAlt+SpaceWin+Alt+Spaceに変更されていて押しづらい!!何でわざわざ変えるかな…と、一時は諦めました。でも、改めてConEmuの設定を調べたら外枠と文字の間を空ける所が見つかって、万事解決。


ConEmuのインストールと設定(外観など)
公式サイトのトップベージからダウンロード用ページへ行きDownload ConEmu Preview, Portable (32-bit, 64-bit)をクリック。インストーラもありますがポータブル版にしました。ファイルはConEmuPack.150513.7zで、適当なフォルダに解凍し実行ファイルを起動します。


初回起動時は ↓ のfast configurationダイアログが出ます。一番上が設定の保存場所で、デフォルトでは実行ファイルと同じ場所にXMLを作るようになっており、これと実行ファイルを持ち運ぶことでポータブルに使えます。



以下、自分のやった主な設定。まずMainのフォント設定でMonospaceのチェックをオフ。これがチェックされていると、日本語(というか全角幅の文字)も半角の幅しか取られず詰まってしまいます。



Main > Size & Pos 右下、AlignmentCenter console…にチェックを入れ、右側のPad Sizeに適当な値を入力すると、外枠と文字(正味のコンソール部分)の間が空きます。これが出来てよかった!!



Main > Appearance 下の方、Title bar (caption)…のHide caption alwaysをチェックすると、タイトルバーやウィンドウの枠(の主な部分)が消えます。タイトルバーがなくてもタブがあるので何を起動しているか分かり、タブの空いている所をマウスでつかんでウィンドウ移動できるので、タイトルバーは不要と判断。



Key & Macro > Mark/Copy 下の方、Start selection with Shift+Arrowをチェックすると、シフト+移動キーですぐテキスト選択範囲の指定に移れます。シフト+左右キーならインライン選択、シフト+上下キーなら矩形選択と使い分け可能。自分はAutoHotkeyでカーソルを無変換+ホームポジションに持ってきているので
(詳細は57日の記事参照)これはすごく便利。


ConEmuの設定(右クリックへの追加、バッチファイル起動、タスクトレイにしまう等)
Windows 7のエクスプローラで、シフト+右クリックして「コマンドプロンプトをここで開く」を使う人は結構いるかもしれませんが、ConEmuはもっと便利にエクスプローラと統合可能。↓ 設定メニューのIntegration上段のRegisterボタンを押すと、右クリック(シフト不要)、アプリケーションキー、ファイルメニューの中にConEmu Hereが現れ、エクスプローラで開いている場所をカレントとしてコンソールを開けます。

またバッチファイルをConEmuで開く設定は、
Stack Overflow : How do I make conemu open bat files on double click?を参考に、レジストリを次のように変更して出来ました。ConEmuには/cmdというオプションがあるようで、それに続けてバッチファイルのバスを%1で渡します。最後は追加用の引数で、なぜかクォートすると引数やドラッグ&ドロップでのファイル名がうまく渡せませんでした。詳細はそのうち調べます。
# HKEY_CLASSES_ROOT\batfile\shell\open\command の既定のキーを下記に変更
# ConEmuのパスは一例

D:\AppsPortable\ConEmuPack.150513\ConEmu /cmd "%1" %*

↓ メニューのHide to TSAで、起動中のConEmuがタスクトレイに収納されます。TSATaskbar status areaの略。バッチファイルで起動した処理とかポータブル版PostgreSQLを、普段はしまっておくのに便利。元に戻すには、収納されたConEmuのアイコンをダブルクリックするか、右クリックしてRestore from TSAを選べばOK。

コマンドプロンプトは、Windowsキー+R(またはスタートメニューの「ファイル名を指定して実行」)で出るダイアログにcmdと打って使えました。ConEmuでも同様にしたければ、実行ファイルへのショートカットを作ってcoとか短くリネームし、C:/Windowsなどパスが通っている場所に置くだけ。これでcoとか数文字の入力でConEmuが起動します。なおconcomという名は、Windowsシステムの関係で使えません。


ConEmuの設定(よく使うシェルやフォルダを登録)
↓ 設定画面のStartup > Tasksに、よく使うシェルやフォルダをホットキー付きで登録しておくと便利。下はpsqlなどPostgreSQLの各種実行ファイルのあるフォルダを登録した一例です。名前とホットキーは自由に設定し、中ほどのTask parametersに[/dirフォルダの場所]を指定。その下のCommandsに[cmd.exe /k]を入れた場合は当該フォルダを開き、psql.exe[起動オプション]ならpsqlを開くという具合になります。


psqlには超おすすめ! Rターミナルでは範囲選択後に反応しない
自分はコマンドプロンプト全般をこのConEmuで置き換えましたが、コマンドプロンプトをpsqlでしか使わない人にもおすすめ。多くの列も折り返さず表示するとか、結果をコピーしやすいなどメリットが多々あります。使いたいけどうまく設定できないという方は、まで連絡いただければ相談に乗ります。

一方Rのターミナル(Rterm.exe)では、いったん範囲選択すると一切操作を受け付けなくなるという残念な挙動でした。Rコンソール(Rgui.exe)はマウスでの範囲選択のみで使いづらいので、このConEmu+Rterm.exeに置き換えられると嬉しかったのですが。自分の環境特有の問題かもしれず、もう少し調べてみます。

611日追記]どうもRterm.exeより右側にタブを追加すると、範囲選択と相まって操作を受け付けない現象が頻発するようです。右側にタブがない状態や、Rpage関数で起動したmore.comだけが右側にある場合、今のところ問題なく使えています。タブ配置がなぜ関係するのか分かりませんがww