ConsoleZ

開発の止まったConsole2の後継っぽいConsoleZを試している。シェルでずっと作業するわけじゃないのでckw-modで不満はなくて、Console2には乗り換える意味はなさそうだったんだけど、ConsoleZではウィンドウの再利用が行え、他のアプリケーションから新しいタブを開くということが可能になったのでちょっと良い。

ウィンドウの再利用はSettings→BehaviorにあるInstancesのチェックを外すと、二重起動で新しいタブが開かれるようになる。通常はこれで良いはず。しかしこれだと常にひとつのウィンドウしか開けなくなるので、タブが切り離しできない現状だとちょっと使いづらいこともある。なのでコマンドライン・オプションから制御する方が良い。オプションは-reuse

Console.exe -reuse -d C:\Users\Taroh

このようにすれば既存のConsoleZのウィンドウに新しいタブが追加され、指定ディレクトリがコマンド・プロンプトで開かれる。-tオプションでタブ設定名を併せて指定すればBashとかでももちろん開くことができる。


Vimから簡単に呼べるように設定も書いた。

if has('win32')
	" Reuse existing ConsoleZ instance
	function! s:ReuseConsoleZ(...)
		let tab = &shell

		if a:0 != 0
			let tab = a:1
		endif

		execute 'silent !start Console.exe -reuse -t ' . tab .' -d ' . expand('%:p:h')
	endfunction

	" Complete ConsoleZ tab
	function! s:ConsoleZTabComplete(A, L, P)
		let commands = ['cmd', 'bash', 'ps']
		let matches = []

		for cmd in commands
			if cmd =~? '^' . a:A
				call add(matches, cmd)
			endif
		endfor

		return matches
	endfunction

	" ConsoleZ: Open ConsoleZ
	command! -nargs=* -complete=customlist,<SID>ConsoleZTabComplete ConsoleZ call <SID>ReuseConsoleZ(<f-args>)
endif

デフォルトはVimのシェル設定から引っ張るようにして、追加でタブ設定を補完できるようにしておき、たまに必要になるPowerShellを起動しやすくしたりとかそんな感じ。あらかじめ-reuseオプションでConsoleZを立ち上げておく必要はある。


ウィンドウの再利用に価値を感じるのならオススメとは言えそうだけど、描画パフォーマンスは相変わらず遅く、かっこ良くしたと主張しているタブは非常にダサい(特に消せない横スクロールボタン)。つい先程実装されたIMEのインライン化はトピックではあるけど、必要性には少し疑問が……。