写点什么

Cmder 使用 笔记

用户头像
wkq2786130
关注
发布于: 2020 年 07 月 22 日



原文 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
#设置utf8
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 &quot;%ConEmuDir%\..\git-for-windows\bin\bash&quot; --login -i -new_console"/>
<!-- 第二条是普通用户的 bash::bash -->
<value name="Cmd1" type="string" data="cmd /c &quot;%ConEmuDir%\..\git-for-windows\bin\bash&quot; --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 &quot;C:\ProfessionSofware\Git\bin\bash --login -i&quot; -new_console:d:%USERPROFILE%"/>

<value name="Cmd1" type="string" data="cmd /c &quot;C:\ProfessionSofware\Git\bin\bash --login -i&quot; -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 中文乱码



发布于: 2020 年 07 月 22 日阅读数: 106
用户头像

wkq2786130

关注

hello 2018.09.28 加入

http://weikeqin.com/

评论

发布
暂无评论
Cmder 使用 笔记