本文共 3305 字,大约阅读时间需要 11 分钟。
《Cmder进阶配置》涉及 Cmder的选项卡(标签页)的讲解;使用外部 Git、WSL、cygwin、babun中的bash 和 Cmder的更新。
知乎居然不支持表格??
原文首发于:
Cmder进阶配置www.thisfaner.com其中 Cmder(cmd)、PowerShell 和 Bash 选项卡(标签页) 运行于 Windows Console API 之上,所以可以使用 ConEmu 的配色方案、按键绑定和 ConEmu 设置对话框中定义的其他设置。
Mintty 选项卡, 使用一个叫做 Mintty 的程序作为虚拟终端,它不是基于 Windows Console API,而是由 ConEmu 以图形方式呈现。 Mintty 与其他选项卡的不同之处在于,它支持 xterm / xterm-256 color TERM 类型,并且不支持 ConEmu 设置,比如配色方案和按键绑定。 因此,可以预料到功能上的一些差异,例如 Cmder 无法对其应用系统范围的配置。
mintty的额外配置线索见 cmder: readme 和 mintty
通过配置 init.bat
的参数来修改启动行为。
settings [更改语言为简体中文] 启动 任务 {cmd::Cmder}
在下面的位置添加命令行参数:
cmd /k ""%ConEmuDir%..init.bat" [见参数添加到这里]"
注意:这里的引号 ""。
可以发现 上面的参数列表中包含了明确指定 git 安装路径的参数,但是它只能用于 cmd 选项卡,用方法如下:
cmd /k ""%ConEmuDir%..init.bat" /git_install_root D:ScoopApplicationsappsgit2.24.0.windows.2"
但是没有必要这样做,因为 cmder会自动选择使用最新的 git 版本,除非你想使用 比 cmder自带的 git 版本还旧 git 。
编辑下面的文件来添加你自己的配置:
ShellCmder Portable User Config (后缀名不同)Cmder%CMDER_ROOT%configuser_profile.cmd
PowerShell$ENV:CMDER_ROOTconfiguser_profile.ps1
Bash/Mintty$CMDER_ROOT/config/user_profile.sh
Bash 和 Mintty 在使用 $CMDER_ROOT/config/user_profile.sh
配置之后,还会尝试寻找 $HOME/.bashrc
配置文件。
您可以编写*.cmd | *.bat
,*.ps1
和 *.sh
脚本,然后将它们放在%CMDER_ROOT%configprofile.d
文件夹中,即可将启动配置添加到Cmder。
对于完整版的 Cmder ,用户配置文件的保存路径就是影响其可移植性的最大因素。
可以这样简单理解,当用户配置文件位于 CMDER_ROOT
目录之外,此 cmder 就是不可移植的。有一种情况会让 cmder 将配置文件保存在 CMDER_ROOT
目录之外,就是下文的 "使用外部 bash 的情况"。
你可以让 Cmder 运行外部的 bash。
比如,虽然说每次启动cmder时,它都会尝试寻找用户自行安装的git,它会将其自带的git与其做比较并选择git版本高的那个运行。
在默认的 powershell 和 cmd 选项卡下是可以选择最新版本的 git;但是如果在默认的 bash 选项卡中,由于其使用的就是cmder 内部 git 的 bash 所以无法再使用外部外部git。
但是我们可以另外创建一个 任务 选项卡,来指定使用外部 git 所包含的 bash 。
可以在新任务选项卡的命令组(Commands)中使用下面的方式指定:
cmd /c "[path_to_external_env]binbash --login -i" -new_console
那么我们参照上面的方式修改 git bash 路径:
cmd /c ""D:ScoopApplicationsappsgit2.24.0.windows.2binbash" --login -i" -new_console
添加了新任务选项卡之后,还有一些建议的操作:
复制 vendor/cmder_exinit
文件到 Cygwin/Babun 相关目录 ,或者复制到 Git 的 /etc/profile.d/
目录。
复制之后还需要更改该文件的扩展名,扩展名取决于您在该环境中使用的 shell;例如:
/etc/profile.d/cmder_exinit.sh
/etc/profile.d/cmder_exinit.zsh
并修改该文件,删除此行开头的 #
(表明这是一行注释)
# CMDER_ROOT=${USERPROFILE}/cmder # This is not required if launched from Cmder.
如果取消此注释,在运行该 选项卡时会有类似下面的提示:
Using "CMDER_ROOT" at "/c/Users/Fan Dean/cmder". Creating user startup file: /c/Users/Fan Dean/cmder/config/user-profile.sh
如果不取消此注释,则该 bash 将跳过与 cmder 集成
Running in ConEmu without Cmder, skipping Cmder integration.
升级分为两种情况:
[cmder_root]/config/user[-|_]conemu.xml
的文件。我们这里只讨论较新版本的 Cmder 如何升级到最新版本的Cmder(当前时间 2019.12,你应该时刻留意官方说明)
[cmder_root]/vendor/conemu-maximus5/conemu.xml
备份到[cmder_root]/config/user[-|_]conemu.xml
.(该文件包含你使用 "Setup Tasks" 设置对话框所做的任何自定义设置)[Cmder root]/vendor
下手动编辑的所有文件。(所以说一般不建议修改这下面的文件,所有用户自定义都应该在 [cmder_root]/config
文件夹)[cmder_root]/vendor
文件夹[cmder_root]/
目录,并选择覆盖所有文件。如果是使用 Scoop 安装 Cmder 则不需要如此麻烦(可是会失去了可移植性,但应该都不在乎),只需
scoop update cmder
转载地址:http://yaggp.baihongyu.com/