對於一個UNIX下用慣了各種終端和各種shell的人來說,在Windows世界里最大的痛苦是那個蹩腳的cmd。雖然有Cygwin和Msys 的mintty/rxvt,但它們還是更適合跑bash和它們自己的term類程序,不適合跑Windows的console程序(比如路徑的斜線/反斜 線問題,比如ANSI顏色問題。。。)
下面,我們分兩方面來找找替代品,這次介紹console emulater,類似UNIX下終端仿真器(terminal emulator)那樣的東西,讓多個字符界面程序(比如cmd/bash/python shell)跑在一個窗口里,下次再介紹類似UNIX下shell那樣的東西,切實改進cmd那可憐的交互能力。
推薦: ConEmu
http://code.google.com/p/conemu-maximus5
看看下面的特性列表,顫抖吧!
- 支持多標簽,甚至支持將其它的GUI程序(不僅僅是console程序哦,比如
putty
/記事本等都可以)嵌入為標簽頁; - 可以選擇各種字體,且自帶抗鋸齒功能;
- 對各種console程序都兼容得很好(比如文件管理器Far Manager,win32版本的vim,比如IPython),甚至兼容DOS程序;
- 支持Quake式的下拉風格(即類似於Guake/Tilda/Yakuake那樣的,不用時窗口隱藏,需要時用熱鍵呼出,界面從屏幕頂端拉下來)——這個需要最近的版本(至少2012-06-12之后的);
- 增強的文字選取(比如缺省按住左Alt+鼠標拖動,可以選擇矩形區域)
- 支持ANSI X3.64和xterm 256彩色
- 很多針對Far Manager文件管理器的增強,比如:讓Far Manager支持Windows風格的文件拖放、右鍵菜單、分隔條,給Far Manager文件列表增加了縮略圖和小圖標瀏覽方式(Far Manager可是個基於字符的文件管理器),為查看器/編輯器自動提供新的標簽頁(即將Far Manager的screen實現為了它的標簽頁),
注意: 中文用戶請使用2012-06-17之后的版本,因為這個版本剛修正了中文的顯示問題(以前的版本會在命令行中出現每個漢字出現兩遍的情況。這也是為什么以前我沒有推薦這個好工具的主要原因)。
補充說明一下如何將其它程序變為ConEmu里面的標簽頁(參見其Wiki: LaunchNewTab):

另一種方法是,在ConEmu里面跑一個cmd.exe,然后在cmd里面輸入
putty -new_console,
確定,噠噠!
putty
就變成ConEmu的一個標簽頁了; 輸入:
vim -new_console
然后vim就在一個新的標簽頁里面打開了! (是的,其實這里的
-new_console
並不是putty或者vim的參數,會被ConEmu攔截並進行處理。)
- 注意得選用最近幾天的版本,並在Settings->Features中勾選上Inject ComEmuHk。對於以前的版本,得這樣:
"%ConEmuBaseDir%\ConEmuC.exe" /c vim.exe -new_console:nh0 c:\sources\1.cpp
(詳細解釋可以參看其Wiki: NewConsole ) - 另外一個例子: 將grep的結果“重定向”到一個新的標簽頁:
grep
-new_console-nHi --color path cmd_autorun.cmd
而當前cmd並不阻塞,可以繼續輸入其它命令(缺省不想激活新標簽頁的話可以用-new_console:b
)
其它備選
1 Console2
http://sourceforge.net/projects/console
Console2的功能就比較簡單,主要是提供了多標簽頁,另外有一些小的功能(比如可以選擇字體、可以半透明等)。
對各類Console程序兼容性比較好,cmd/python/bash/vim都可以正常運行。
不過按缺省的設置,在中文系統上使用時,會存在文字錯行的問題,解決方法是將如下內容導入注冊表
(注意拷貝到xxxxxx.reg文件時要保存為Unicode編碼,然后才能導入。轉自: 介紹幾個cmd的替代品_時光可見 )
Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\Console\Console2 command window] "CodePage"=dword:000003a8 "FontSize"=dword:000a0000 "FontFamily"=dword:00000036 "FontWeight"=dword:00000190 "FaceName"="新宋體" "HistoryNoDup"=dword:00000000
但中文輸入還是有問題: 不能激活輸入法,也就是說無法輸入中文,得在其它地方輸入了再粘貼過來。
(圖片來自: http://blog.darkthread.net/blogs/darkthreadtw/archive/2007/02/08/console2.aspx )
2. ColorConsole
http://www.softwareok.com/?Freeware/ColorConsole
ColorControl也是一個比較簡單的多標簽Console,附帶幾個小功能(選中部分文字改變其顏色,帶顏色導出終端文字到HTML/RTF,通過菜單快速跳轉到某個目錄)
ColorConsole在程序兼容性上有比較嚴重的問題,不僅無法運行vim/jasspa等全屏程序,而且msys-bash/python/jsdb等命令解釋器全都無法正常運行。
3.PowerCmd
上面說的幾個工具都可以提供標簽頁,而不能提供分屏能力,但PowerCmd可以(同時也可以再多標簽頁)。
另外有一些小功能:
- 路徑自動補全(按Tab鍵觸發)
- 歷史記錄
- 關鍵字高亮
不過我並不推薦這個工具,一方面它不是免費的; 另一方面它有不少問題: 無法運行python shell(jsdb/lua倒可以運行);跑msys bash時所有msys程序(比如ls,grep)都會segmentation fault;對一些基於屏幕的程序,雖然是象GUI程序一樣打開新窗口,但有時不能正確識別(比如jasspa me) 。