cmder使用配置记录
cmder,一款比Windows系统提供的cmd更好的终端工具,类似Linux系统的终端。
官网:http://cmder.net
下载有两个版本
mini版没有内建msysgit工具,这是Git for Windows的标准配备;如果不需要使用git,可以下载这个。
full版除了git,还可以使用很多Linux命令:比如 grep, curl(没有 wget); 像vim, grep, tar, unzip, ssh, ls, bash…
而且cmder并不需要安装,直接解压后即可使用。
首次使用
解压之后,打开使用的时候,会有个弹出警告,有三个选项,直接点击第一个 unblock 就OK了
然后会打开cmder终端,过一会儿会再次弹出一个警告,这个是个更新检查,说是ConEmu有新的版本,ConEmu是cmder使用的主要工具,具体什么情况并不清楚,有兴趣的可以看看其他人的博客,网上还是有不少的。一般点击download总是会出现下载失败的情况,如果想下载最新版的,可以直接进入官网下载,之后在安装时记得安装在 ~\cmder\vendor\conemu-maximus5\ConEmu
目录下。
如果访问不了官网(需要FQ),或者下载出现各种问题(我就是这样),其实也可以不用下载最新版ConEmu,直接禁止更新就好。
在cmder窗口,按下 win+alt+p
或者鼠标右击cmder窗口顶部或底部选择 Settings
,弹出如下窗口
选择 Main -> Update
将最上面的 Update settings
里面的 Do automatic check on
全部取消
这里默认会在启动时检查更新,因此取消掉就可以了,之后点击右下角的 Save settings
保存设置。
将cmder添加到右键菜单
以管理员身份运行cmd,(注意是cmd,不是cmder)
然后输入以下代码:
Cmder.exe /REGISTER ALL
再次强调,是在cmd里运行,开始我就是没弄明白,在cmder里面运行,然后没效果,还在想是怎么回事。。。
background
cmder还可以设置背景图片
原始的cmder:
设置了背景图的cmder:
设置方法: settings->background
勾选 background image
选项,然后选择一张图片就可以了,下方的Darkening条可以改变亮度(暗度?),Placement
可以选择图片的摆放位置或填充方式,默认是左上UpLeft
。
Quake style
在background选项上面有一个Quake style
,
选中之后,cmder窗口会贴在屏幕正上方,可以通过快捷键 ctrl+` 显示与隐藏窗口,是一种比较酷炫的样式。但是选择了之后,有一个问题,就是每次打开一个新的cmder窗口就会自动作为之前打开窗口的一个tab,而不是新的窗口。而tab的默认路径是之前打开的文件夹路径。
也就是说我先在A项目里打开了cmder窗口之后,再次在B项目中打开cmder窗口时,打开的窗口路径并不是B项目的根目录,而是A项目的根目录。所以我衡量之后,选择了不开启。
中文乱码
网上有不少解决中文乱码的方式,但是好些是几年前的已经过时了,至少没解决我的问题。其实我自己也有点没弄明白我是怎么解决的,在一次删除重新下载使用之后,莫名其妙的就不乱码了。
git commit打开vim,输入中文乱码。
对比不同的话,猜想应该是在环境变量里添加了一条 GIT_INSTALL_ROOT
指向的是 cmder\vendor\git-for-windows
,也就是cmder里的git所在目录的路径。
原因是在初次使用cmder的时候,会在目录下的config目录内生成几个文件,其中一个user-profile.cmd
文件里有提到这个
:: call "%GIT_INSTALL_ROOT%/cmd/start-ssh-agent.cmd"
:: set "PATH=%CMDER_ROOT%\vendor\whatever;%PATH%"
另外一个乱码问题是使用 ls
和 ls |more
命令的时候,这个是跟网上学的,在cmder的settings
里面的Environment
中添加一句
set LANG=zh_CN.UTF8 // ls 中文不乱码
set LANG=zh_CN.GBK // ls |more 中文不乱码
没错,两个只能选一个,根据你的需要来设置就好
git status显示中文乱码
原文地址:https://gist.github.com/vamdt/6334583b4aae156ed8571b7bf2329c62
git status时中文文件名乱码
现象:
\344\275\240\345\245\275
执行以下命令即可:
git config --global core.quotepath false
quotepath解释:
The commands that output paths (e.g. ls-files, diff), when not given the -z option,will quote “unusual” characters in the pathname by enclosing the pathname in a double-quote pair and with backslashes the same way strings in C source code are quoted. If this variable is set to false, the bytes higher than 0x80 are not quoted but output as verbatim. Note that double quote, backslash and control characters are always quoted without -z regardless of the setting of this variable.