Windows下的Console Emulator


對於一個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之后的版本,因為這個版本剛修正了中文的顯示問題(以前的版本會在命令行中出現每個漢字出現兩遍的情況。這也是為什么以前我沒有推薦這個好工具的主要原因)。

Color prompt in ConEmu (another ANSI x3.64)

Far, cmd, Notepad and PUTTY started in ConEmu

補充說明一下如何將其它程序變為ConEmu里面的標簽頁(參見其Wiki: LaunchNewTab):

最簡單的方法: 菜單里選擇New console...,然后在對話框里面輸入程序名稱即可, 注意這里不僅僅可以輸入cmd/powershell/vim/far這些console程序,你輸入putty甚至notepad,都是可以的!
Create new console dialog
另一種方法是,在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等命令解釋器全都無法正常運行。
colorconsole

3.PowerCmd

上面說的幾個工具都可以提供標簽頁,而不能提供分屏能力,但PowerCmd可以(同時也可以再多標簽頁)。

另外有一些小功能:

  • 路徑自動補全(按Tab鍵觸發)
  • 歷史記錄
  • 關鍵字高亮

不過我並不推薦這個工具,一方面它不是免費的; 另一方面它有不少問題: 無法運行python shell(jsdb/lua倒可以運行);跑msys bash時所有msys程序(比如ls,grep)都會segmentation fault;對一些基於屏幕的程序,雖然是象GUI程序一樣打開新窗口,但有時不能正確識別(比如jasspa me) 。
powercmd


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM