原文 http://weikeqin.com/2017/04/28/cmder-notes/
俗话说,工欲善其事必先利其器。
平常在使用Windows自带的cmd复制粘贴太麻烦,而且cmd在中国用的是gbk编码,有的时候想用UTF-8编码,感觉cmd不太好用,就想找一个替代品,看了powershell,git bash(mingw64) cmder,最后觉得cmder好用。
Cmder1.3.2版本中,可以使用cmd,bash,git-bash。感觉特别方便。
<!--more-->
(1) 配置颜色
(1) 设置背景为豆沙绿色
如图,0对应的是背景,把0的RGB改为199 237 204,就可以看到背景改为豆沙绿了
7对应的是文字的颜色,我把它调成0 0 0,也就是黑色
感觉git bash的配色特别好看,特别舒服
git bash RGB
用户名 0, 191, 0 绿色
mingw64 191, 0, 191 茄紫色
path 191, 191, 0 黄色
branch dev 0, 191, 191 蓝色
changes to be committed new file 0, 191, 0 绿色
staged for commit modified 191, 0, 0 红色
96, 96, 255 淡紫色
(2) 中文乱码问题
我是在使用 java javac命令 和 git commit --amend命令 的时候发现乱码的,所以想把编码设置成UTF-8
(2.1) v1.3.0及以上版本
在Settings > Startup > Environment里添加:
set LANG=zh_CN.UTF8
set LCALL=zhCN.utf8
在cmder v1.3.0以上版本初始创建的cmder/config/user-aliases.cmd文件中已经包含:
ls=ls --show-control-chars -F --color $*
不需要添加其它命令(实际上添加了也没有效果)
(2.2) v1.3.0以下版本
把一下几行代码添加到config/aliases文件末尾即可解决中文乱码问题:
l=ls --show-control-chars
la=ls -aF --show-control-chars
ll=ls -alF --show-control-chars
ls=ls --show-control-chars -F
(2.3) cmder bash 中文乱码
locale charmap
export LANG=zh_CN.utf8
export LC_ALL=zh_CN.utf8
以上只在当前窗口生效,设置启动即生效:
Settings->Startup->Environment 添加
set LANG=zh_CN.UTF-8
set LCALL=zhCN.utf8
保存。重新打开窗口,ls进行测试,成功!
(3) 文字重叠问题
Win + Ait + P 唤出设置界面 > mian > font > monospce 的勾勾去掉(点两下).
(4) 配置其在win+r中打开
把根目录加到系统环境的path变量中即可。
(5) 添加右键
在Cmder的目录下执行 Cmder.exe /REGISTER ALL 命令后,点击鼠标右键就可以看到cmder了
WKQ@WKQ-PC C:\ProfessionSofware\cmder
$ dir
驱动器 C 中的卷是 本地磁盘C
卷的序列号是 6A63-8F3E
C:\ProfessionSofware\cmder 的目录
2017-05-09 16:25 <DIR> .
2017-05-09 16:25 <DIR> ..
2016-12-02 07:14 <DIR> bin
2016-12-02 07:14 73,491 CHANGELOG.md
2016-12-02 07:15 130,560 Cmder.exe
2017-04-28 17:04 <DIR> config
2016-12-02 07:14 1,784 CONTRIBUTING.md
2016-12-02 07:14 <DIR> icons
2017-05-09 16:25 <DIR> node_modules
2016-12-02 07:14 10,039 README.md
2016-12-02 07:15 <DIR> vendor
2016-12-02 07:15 0 Version v1.3.2
5 个文件 215,874 字节
7 个目录 105,438,040,064 可用字节
WKQ@WKQ-PC C:\ProfessionSofware\cmder
$ Cmder.exe /REGISTER ALL
(6) 修改命令提示符号λ
在Cmder官网最新的版本1.3.2中,cmd使用>,bash中使用$(普通用户)和#(管理员)。
建议升级版本。
如果不想升级版本,按照如下方法:
把cmder\vendor\clink.lua文件中第41行中{lamb}修改为$
修改前:
local cmder_prompt = "\x1b[1;32;40m{cwd} {git}{hg} \n\x1b[1;30;40m{lamb} \x1b[0m"
修改后:
local cmder_prompt = "\x1b[1;32;40m{cwd} {git}{hg} \n\x1b[1;30;40m$ \x1b[0m"
(7) 把Tabs放到顶部
Setting(Win+Alt+P) => Main => Tab bar,把Tabs on bottom的勾去掉。
(8) 关闭Tab不提示
Setting(Win+Alt+P) => Main => Confirm,把Confirm console detach的勾去掉。
(9) 我的配置文件
我的配置文件
(10) Command to be executed: "C:\Windows\system32\cmd.exe" /c "C:\ProfessionSofware\cmder\vendor\conemu-maximus5\..\git-for-windows\bin\bash --login -i"
系统找不到指定的路径。
Current directory:
C:\Users\WKQ
Command to be executed:
"C:\Windows\system32\cmd.exe" /c "C:\ProfessionSofware\cmder\vendor\conemu-maximus5\..\git-for-windows\bin\bash --login -i"
ConEmuC: Root process was alive less than 10 sec, ExitCode=1.
Press Enter or Esc to close console...
出现这个问题是因为路径的原因
在cmder的完整版里有git,在cmder的mini版里没有git,但是配置文件里的路径时按照完整版的写的,所以后出现这个问题
解决办法很简单,改cmder安装目录下的/vendor/conemu-maximus5/ConEmu.xml的配置文件
修改配置文件${cmder_home}/vendor/conemu-maximus5/ConEmu.xml
把 %ConEmuDir%\..\git-for-windows 替换成 ${git_home}
查找 git-for-windows\bin\bash 能找到两条记录,如下:
<!-- 第一条是管理员用户的 bash::bash as Admin -->
<value name="Cmd1" type="string" data="*cmd /c "%ConEmuDir%\..\git-for-windows\bin\bash" --login -i -new_console"/>
<!-- 第二条是普通用户的 bash::bash -->
<value name="Cmd1" type="string" data="cmd /c "%ConEmuDir%\..\git-for-windows\bin\bash" --login -i -new_console"/>
我的git安装在C:\ProfessionSofware\Git目录下,${git_home} = C:\ProfessionSofware\Git
把 %ConEmuDir%\..\git-for-windows 替换成 ${git_home} (因为我的 ${git_home}是C:\ProfessionSofware\Git,所以我改成C:\ProfessionSofware\Git)
替换完结果如下,
<value name="Cmd1" type="string" data="*cmd /c "C:\ProfessionSofware\Git\bin\bash --login -i" -new_console:d:%USERPROFILE%"/>
<value name="Cmd1" type="string" data="cmd /c "C:\ProfessionSofware\Git\bin\bash --login -i" -new_console:d:%USERPROFILE%"/>
关掉cmder,重新打开,再试试,发现cmder的bash是不是能用了
(11) Root process was alive less than 10 sec, ExitCode=1.
系统找不到指定的路径。
Current directory:
C:\Users\WKQ
Command to be executed:
"C:\Windows\system32\cmd.exe" /C C:\ProfessionSofware\cmder\vendor\conemu-maximus5\..\git-for-windows\usr\bin\mintty.exe /bin/bash -l
ConEmuC: Root process was alive less than 10 sec, ExitCode=1.
Press Enter or Esc to close console...
修改配置文件
把 %ConEmuDir%\..\git-for-windows 替换成 ${git_home}
<!-- bash::mintty as Admin -->
<value name="Cmd1" type="string" data="*%ConEmuDir%\..\git-for-windows\usr\bin\mintty.exe /bin/bash -l -new_console:d:%USERPROFILE%"/>
<!-- bash::mintty -->
<value name="Cmd1" type="string" data="%ConEmuDir%\..\git-for-windows\usr\bin\mintty.exe /bin/bash -l -new_console:d:%userProfile%"/>
我的git安装在C:\ProfessionSofware\Git目录下,${git_home} = C:\ProfessionSofware\Git
把 %ConEmuDir%\..\git-for-windows 替换成 ${git_home} (因为我的 ${git_home}是C:\ProfessionSofware\Git,所以我改成C:\ProfessionSofware\Git)
<value name="Cmd1" type="string" data="*C:\ProfessionSofware\Git\usr\bin\mintty.exe /bin/bash -l -new_console:d:%USERPROFILE%"/>
<value name="Cmd1" type="string" data="C:\ProfessionSofware\Git\usr\bin\mintty.exe /bin/bash -l -new_console:d:%userProfile%"/>
References
[1] Cmder使用说明
[2] Win下必备神器之Cmder
[3] cmder中文显示相关问题解决方案(1.3以上版本)
[4] cmder默认的命令提示符λ改成$
[5] cmder bash 中文乱码
评论