windows下終端神器之Cmder

前言

在windows下面其實你們不多用cmd,也不多人專門去學bat編程,實在是太不方便。那麼一個黑糊糊的小窗口,界面比小霸王學習機還土,不能隨意改變尺寸, 不支持多tab。長此以往,也沒人關心在windows下面如何像linux下的terminal那樣操做了。在網上瞎逛時,偶爾看到有人說起cmder和conemu才知道有個近似linux下的bash的東西。裝上cmder試了一下果真很酷,因此寫點東西來推廣一下。linux

安裝

安裝cmder有兩種包可選擇,一種是mini, 一種是full. cmder實際上是包裝了幾種軟件,主要是clink, git, conemu, 若是你要本身裝git就能夠選擇mini, 不然安裝full。
這裏是官方主頁, 下載地址就在主頁靠中間的位置。
建議安裝full, 而後直接解壓縮就能夠用了
若是是安裝的mini包,那麼這裏須要配置Git的安裝目錄。
由於個人Git是安裝在D盤的Program Files下的,跨盤同時路徑中有空格,我折騰了很久都無法在cmder的setting裏配置好Task->bash的路徑
後面想了個完美方法,就是在cmder安裝目錄下的vendor文件夾裏建一個軟連接到git的安裝目錄裏
win7下能夠用下面命令git

C:\cmder\vendor> mklink /D git-for-windows "D:\Program Files\Git"
 symbolic link created for git-for-windows <<===>> D:\Program Files\Git

配置

路徑

把cmder的目錄加入到系統PATH裏
右鍵個人電腦->屬性->高級->環境變量->PATH->Edit
把cmder的目錄添加到系統PATH裏
圖片描述shell

右鍵註冊

爲了右鍵菜單有從這裏打開cmder, 能夠執行下面操做
打開administor權限的cmd.exe
圖片描述
在打開的cmd.exe裏執行下面命令
圖片描述編程

執行完成以後,右鍵菜單以下
圖片描述vim

ls中文支持

默認安裝好後,ls命令會顯示中文亂碼,須要打開setting窗口(win+alt+p),設置LANG
圖片描述windows

界面

打開cmder的窗口以下
圖片描述
能夠看到界面很是舒服,並有不一樣顏色顯示瀏覽器

提示符修改

若是喜歡用$作提示符,找到vendor/clink.luabash

cmder_prompt = string.gsub(cmder_prompt, "{cwd}", cwd)
if env == nil then
    lambda = "λ"
else
    lambda = "("..env..") λ"
end
clink.prompt.value = string.gsub(cmder_prompt, "{lamb}", lambda)
end

把上面的λ替換成$重啓cmder就好了,我以爲無所謂,因此沒改服務器

使用

快捷鍵

cmder的快捷鍵和瀏覽器的很相近,若是要用爽cmder必定記住經常使用快捷鍵ssh

  • 雙擊Tab, 能夠路徑補全
  • 能夠用Ctrl+T新建Tab頁
  • 利用Ctrl-W關閉當前Tab頁
  • 使用Ctrl-n來切換到第n個Tab頁
  • Alt+Enter切換到全屏
  • Alt+Shift+n開啓你的settings->Tab下的terminals
  • Ctrl-r反向搜索歷史命令
  • Win+Alt+p打開設置窗口
  • Ctrl-u 刪除文字到行首
  • Ctrl-A 移動光標到行首
  • Ctrl-E 移動光標到行尾

操做

  • 雙擊選中,而後右鍵粘貼
  • 左鍵選中文字, Ctrl-V粘貼

問題

ls時快時慢

ls是系統中用的最多的命令,但不幸的是,當我用softlink在vendor目錄裏創建到Git的連接後,在Cmder裏輸入ls後的返回時快時慢,慢的時候大於10秒,這絕對是不能容忍的。

解決方法一

後來我從u-tools裏下載了windows下的ls, 地址爲https://u-tools.com/download_...
解壓後放到bin裏,這樣就沒有問題了。
不過ls的輸出有時不對齊
圖片描述

解決方法二

再後來我把Git卸載重裝後,ls的問題也好了。 Git裏的command比msys2裏的還新,用msys2裏的ls替換Git裏的也不會有ls返回時快時慢的問題
這個好像過一段時間又會出問題

解決方法三

可能和系統權限有關係,因此有下面的方法

mkpasswd -l -c > C:\cmder\vendor\git-for-windows\etc\passwd
mkgroup -l -c > C:\cmder\vendor\git-for-windows\etc\group

打開 C:cmdervendorgit-for-windowsetcnsswitch.conf

# Begin /etc/nsswitch.conf

  passwd: files # db
  group: files # db

  db_enum: cache builtin

  db_home: env windows cygwin desc
  db_shell: env windows # cygwin desc
  db_gecos: env # cygwin desc

  # End /etc/nsswitch.conf

主要是把group和passwd後面的db給註釋掉

遺留問題

若是真的做爲ssh終端工具,那麼一個很嚴重的問題已經沒法支持一些特殊字符,好比vim-airline的那些字符,或者是vim的一些theme, 但願之後cmder在這方面有大的改進

後言

cmder集成了不少linux的命令以及git,使用起來很是方便。有了它,基本也能夠像Linux下同樣,利用它作不少操做和控制工做。具體的用法還須要你們本身去摸索,我在這裏只是拋磚引玉,但願你們能夠找到它的更多用處。我找到的一個用途是用它來ssh到服務器。我以爲目前在windows上最好的ssh工具是xshell,不幸地是它不能用於商業用途,而Cmder能夠湊和用做windows下的ssh工具,結合tmux的會話保存功能,仍是很爽的。

相關文章
相關標籤/搜索