CMDER是一个因在Windows上没有可用的控制台仿真器而纯粹的挫败感而创建的软件包。它基于带有主要配置大修的CONEMU,带有Monokai配色方案,令人惊叹的曲目(通过曲目完成进一步增强)和自定义提示布局。
CMDE的主要优点是可移植性。它旨在完全独立,没有外部依赖性,这使其非常适合USB棒或云存储。因此,您可以随身携带控制台,别名和二进制文件(例如wget , curl和git )。
CMDER的用户界面还旨在更令人愉悦,您可以在此处比较CMDER和CONEMU之间的主要区别。
C:Program Files或其他需要管理员访问以修改配置文件的任何地方%cmder_root%bin文件夹中,以注入您的路径。Cmder.exe%cmder_root%bin中。请参阅:bin/readme.mdinit.bat ”表的“命令行参数”中的/max_depth [1-5] ,以递归添加子目录。%cmder_root%opt中。请参阅:opt/readme.md/C命令行参数运行Cmder.exe 。示例: cmder.exe /C %userprofile%cmder_config如果丢失了以下目录结构,则将创建以下目录结构。
c:users[username]cmder_config
├───bin
├───config
│ └───profile.d
└───opt
%userprofile%cmder_configbin 。init.bat ”表的“命令行参数”中的/max_depth [1-5] ,以递归添加子目录。%user_profile%cmder_configopt中。| 争论 | 描述 |
|---|---|
/C [user_root_path] | 单个用户CMDER根文件夹。示例: %userprofile%cmder_config |
/M | 使用conemu-%computername%.xml进行conemu设置存储而不是user_conemu.xml |
/REGISTER [ALL, USER] | 注册Windows Shell菜单快捷方式。 |
/UNREGISTER [ALL, USER] | 取消注册Windows Shell菜单快捷方式。 |
/SINGLE | 以单模式启动CMDER。 |
/START [start_path] | 文件夹路径开始。 |
/TASK [task_name] | 启动后开始的任务。 |
/X [ConEmu extras pars] | 向前参数到CONEMU |
因此,您已经对CMDER进行了一些实验,并希望在更永久的家中试一试;
.cmder.exe /REGISTER ALL如果收到“访问拒绝”消息,请确保您在管理员提示符中执行命令。在文件资源管理器窗口中,右键单击或在目录上查看上下文菜单中的“ CMDER”。
(尽管存在一些快捷方式,但尚未记录下来 - 请在此处记录它们)
您可以打开多个包含以下外壳之一的选项卡:
| 任务 | 壳 | 描述 |
|---|---|---|
| cmder | cmd.exe | Windows cmd.exe Shell随着GIT,GIT Aware Prives,Clink(GNU Readline)和别名增强。 |
| cmder作为管理员 | cmd.exe | 管理Windows cmd.exe cmder shell。 |
| Powershell | powershell.exe | Windows Powershell通过git和git Aware提示增强。 |
| Powershell担任管理员 | powershell.exe | 管理Windows powershell.exe cmder shell。 |
| bash | bash.exe | Unix/Linux喜欢在Windows上运行的Bash Shell。 |
| bash作为管理员 | bash.exe | 管理Unix/Linux,例如在Windows上运行的Bash Shell。 |
| 薄荷 | bash.exe | Unix/Linux喜欢在Windows上运行的Bash Shell。请参阅下面的薄荷配置差异 |
| Mintty作为管理员 | bash.exe | 管理Unix/Linux,例如在Windows上运行的Bash Shell。请参阅下面的薄荷配置差异 |
cmder,powershell和bash选项卡都在Windows控制台API的顶部运行,并且您可能会在CMDER中使用CONEMU的配色方案,钥匙绑定和ConeMu设置对话框中定义的其他设置。
注意:使用供应商的git-for-windows安装,只有完整版的CMDER带有预安装的bash。没有其他配置的情况下,预配置的bash选项卡可能无法在CMDER MINI版本上使用。
但是,您可以选择使用Bash的外部安装,例如Microsoft的Linux子系统(称为WSL)或Cygwin Project,该项目在Windows上提供POSIX支持。
注意: Mintty Tabs使用一个名为“ Mintty”的程序作为不基于Windows Console API的终端模拟器,而是由ConeMu以图形方式渲染。 Mintty与其他选项卡不同,因为它支持XTERM/XTERM-256COLOR项类型,并且不适用于配色方案和关键绑定等CONEMU设置。因此,可以期待功能上的某些差异,例如CMDER无法对其进行全系统配置。
结果,mintty特定的配置是通过[%USERPROFILE%|$HOME]/.minttyrc文件完成的。您可以在此处阅读有关Mintty及其配置文件的更多信息。
设置Mintty的CMDER便携式终端颜色的示例:
从狂欢/薄荷外壳中
cd $CMDER_ROOT/vendor
git clone https://github.com/karlin/mintty-colors-solarized.git
cd mintty-colors-solarized/
echo source $CMDER_ROOT/vendor/mintty-colors-solarized/mintty-solarized-dark.sh>>$CMDER_ROOT/config/user_profile.sh
您可能会在此处找到一些Monokai配色方案,可以在此处匹配CMDE。
cmd.exe提示文件文件默认的cmder shell cmd::Cmder提示是使用Clink自定义的,并通过编辑在两个位置之一中的配置文件进行配置:
%CMDER_ROOT%configcmder_prompt_config.lua%CMDER_USER_CONFIG%cmder_prompt_config.lua如果您的cmder设置没有此文件,请从%CMDER_ROOT%vendorcmder_prompt_config.lua.default创建它。
自定义包括:
[user]@[host]提示的开头。~对于主目录。λ符号文档在每个设置的文件中。
cmd.exe shell启动行为1. {cmd::Cmder as Admin}2. {cmd::Cmder}注意:注意报价!
cmd /s /k ""%ConEmuDir%..init.bat" [ADD ARGS HERE]"
init.bat的命令行论证| 争论 | 描述 | 默认 |
|---|---|---|
/c [user cmder root] | 由于非共享的环境,启用用户箱和配置文件夹,用于“ CMDER为Admin”会话。 | 未设置 |
/d | 启用调试输出。 | 未设置 |
/f | 启用cmder快速初始模式。这会禁用某些功能,有关更多详细信息,请参见“拉请请求#1492”。 | 未设置 |
/t | 启用cmder定时初始模式。这显示了运行量脚本所花费的时间 | 未设置 |
/git_install_root [file path] | 用户指定的git安装根路径。 | %CMDER_ROOT%vendorGit-for-Windows |
/home [home folder] | 用户指定的文件夹路径以设置%HOME%环境变量。 | %userprofile% |
/max_depth [1-5] | 在添加%cmder_root%bin和%cmder_user_bin%的路径时,定义最大重复深度 | 1 |
/nix_tools [0-2] | 定义如何将*nix工具添加到路径中。更喜欢Windows工具:1,更喜欢 *NIX工具:2,no /usr/bin in %PATH% :0 | 1 |
/svn_ssh [path to ssh.exe] | 定义%SVN_SSH%因此我们可以将GIT SVN与SSH SVN存储库一起使用。 | %GIT_INSTALL_ROOT%binssh.exe |
/user_aliases [file path] | 指向用户别名的文件路径。 | %CMDER_ROOT%configuser_aliases.cmd |
/v | 启用详细输出。 | 未设置 |
| (自定义参数) | 用户定义的参数由cexec处理。键入cexec /?更多用法。 | 未设置 |
使用cmder特定的shell配置文件,可以使用单用户便携式配置。编辑以下文件以添加您自己的配置:
| 壳 | cmder便携式用户配置 |
|---|---|
| cmder | %CMDER_ROOT%configuser_profile.cmd |
| Powershell | $ENV:CMDER_ROOTconfiguser_profile.ps1 |
| bash/mintty | $CMDER_ROOT/config/user_profile.sh |
注意: bash and mintty会话还将在$HOME/.bashrc文件中获取$CMDER_ROOT/config/user_profile.sh的$ home/.bashrc文件。
您可以编写*.cmd|*.bat , *.ps1和*.sh脚本,然后将它们放入%CMDER_ROOT%configprofile.d文件夹中,以将启动config添加到cmder。
| 壳 | cmder Profile.d脚本 |
|---|---|
| cmder | %CMDER_ROOT%configprofile.d*.bat and *.cmd |
| Powershell | $ENV:CMDER_ROOTconfigprofile.d*.ps1 |
| bash/mintty | $CMDER_ROOT/config/profile.d/*.sh |
为了禁用CMDER提示Git状态全球添加以下内容到~/.gitconfig或本地添加单个repo [repo]/.git/config并开始新的会话。
注意:此配置不是便携式的
[cmder]
status = false # Opt out of Git status for 'ALL' Cmder supported shells.
cmdstatus = false # Opt out of Git status for 'Cmd.exe' shells.
psstatus = false # Opt out of Git status for 'Powershell.exe and 'Pwsh.exe' shells.
shstatus = false # Opt out of Git status for 'bash.exe' shells.
Cmd.exe )别名您可以使用诸如alias name=command类的命令定义cmd.exe会话的简单别名。 CMD.EXE别名通过$1-9或$*特殊字符支持可选参数,因此Alias vi=vim.exe $*键入为vi [filename]将在vim.exe中打开[filename] 。
CMD.EXE别名也可能更复杂。请参阅:Doskey.exe文档有关cmd.exe复杂别名/宏的更多详细信息
使用alias.bat命令定义的别名将自动保存在%CMDER_ROOT%configuser_aliases.cmd文件中
为了使别名和/或任何其他配置文件设置永久添加到以下一个:
注意:这些是通过$CMDER_ROOT/vendor/init.bat按此顺序加载的。在%CMDER_ROOT%中存储的任何内容都将是一种便携式设置,并将遵循CMDER到另一台计算机。
%CMDER_ROOT%configprofile.d*.cmd和*.bat%CMDER_ROOT%configuser_aliases.cmd%CMDER_ROOT%configuser_profile.cmdBash Shells本地支持具有可选参数的简单和复杂的别名,因此它们的工作方式有所不同。键入alias name=command将仅为当前运行会话创建一个别名。
为了使别名和/或任何其他配置文件设置永久添加到以下一个:
注意:这些是通过$CMDER_ROOT/vendor/git-for-windows/etc/profile.d/cmder.sh加载的。 $CMDER_ROOT中存储的任何内容都将是一种便携式设置,并将遵循CMDER到另一台计算机。
$CMDER_ROOT/config/profile.d/*.sh$CMDER_ROOT/config/user_profile.sh$HOME/.bashrc如果将BASH别名添加到$CMDER_ROOT/config/user_profile.sh它们将是可移植的,如果将其复制到另一台计算机时,请关注您的CMDER文件夹。 $HOME/.bashrc定义的别名无法便携。
PowerShell具有本机简单的别名支持,例如[new-alias | set-alias] alias command ,因此在PowerShell会话中不支持具有可选参数的复杂别名。键入get-help [new-alias|set-alias] -full以帮助powershell别名。
为了使别名和/或任何其他配置文件设置永久添加到以下一个:
注意:这些是按照此顺序加载的$ENV:CMDER_ROOTvendoruser_profile.ps1 。 $ENV:CMDER_ROOT将是一种便携式设置,并将遵循CMDER到另一台计算机。
$ENV:CMDER_ROOTconfigprofile.d*.ps1$ENV:CMDER_ROOTconfiguser_profile.ps1要启动供应商的SSH代理,只需调用start-ssh-agent ,它在vendor/git-for-windows/cmd文件夹中。
如果要在启动上运行SSH代理,请在%CMDER_ROOT%/config/user_profile.cmd (通常只是删除IT)中包含@call "%GIT_INSTALL_ROOT%/cmd/start-ssh-agent.cmd" 。
默认情况下,CMDER是使用供应商的Git安装运送的。在启动cmder的每个实例中,都会尝试找到任何其他提供的用户提供的git二进制文件。找到git.exe二进制文件后,cmder通过执行该版本将其版本与供应商的版本进行了比较。供应商的git.exe二进制只有比用户安装的二进制文件使用。
您可以通过在%PATH%环境变量中包含其最喜欢的git版本。此外,CMDER的迷你版(在下载页面上找到)不包括任何供应商的Git二进制文件。
使用以下说明,您可以在CMDER上外部运行Bash(MacOS和GNU/Hurd上使用的默认外壳):
+按钮添加任务。cmd /c "[path_to_external_env]binbash --login -i" -new_console到Commands文本框。建议的可选步骤:
将vendor/cmder_exinit文件复制到Windows SDK Environments /etc/profile.d/文件夹中使用$CMDER_ROOT/config FOLDER中的Portable设置。
注意:如果INIT脚本包含profile.d MINGW可以工作,但尚未对其进行测试。
目标文件扩展名取决于您在该环境中使用的外壳。例如:
/etc/profile.d/cmder_exinit.sh/etc/profile.d/cmder_exinit.zsh在脚本中的删节和编辑以下行,即使从外部CMDER启动时,也可以使用CMDER配置。
# CMDER_ROOT=${USERPROFILE}/cmder # This is not required if launched from Cmder.
init.bat自定义参数自定义用户会话。您可以将自定义参数传递给init.bat ,并在您的user_profile.cmd中使用cexec.cmd来评估这些参数,然后根据检测到的特定标志执行命令。
init.bat创建了两个用于在您的个人资料脚本中使用cexec.cmd快捷方式。
%ccall% - 评估标志,运行命令,如果发现并返回到调用脚本并继续。 ccall=call C:Usersusercmderdevvendorbincexec.cmd
示例: %ccall% /startnotepad start notepad.exe
%cexec% - 评估标志,如果找到命令,则运行命令,并且不会返回到调用脚本。 cexec=C:Usersusercmderdevvendorbincexec.cmd
示例: %cexec% /startnotepad start notepad.exe
当您有多个任务执行cmder并需要根据所选任务以不同的方式初始化会话的初始化时,这很有用。
在启动特定cmder任务时有条件地启动notepad.exe :
媒体Win + Alt + T
单击+添加新任务。
将下面添加到Commands块:
cmd.exe /k " " %ConEmuDir% ..init.bat " /startnotepad "
将下面添加到您的%cmder_root%configuser_profile.cmd
%ccall% " /startNotepad " " start " " notepad.exe " `
要查看cexec的详细用法,请键入cexec /?在cmder。
默认情况下,如下所述,默认情况下,作为基础终端模拟器,带有供应商Conemu安装。
但是,CMDER实际上可以在许多其他终端模拟器中运行,甚至可以集成的IDE。假设您拥有最新版本的CMDER,请按照以下说明与您自己的终端模拟器一起使用CMDER。
有关如何将CMDE与IDE集成的说明,请阅读我们的Wiki部分。
升级CMDE的过程取决于您当前正在运行的版本/构建。
如果您有一个[cmder_root]/config/user[-|_]conemu.xml ,您正在运行较新版本的CMDER,请按照以下过程:
Exit all Cmder sessions and relaunch [cmder_root]/cmder.exe , this backs up your existing [cmder_root]/vendor/conemu-maximus5/conemu.xml to [cmder_root]/config/user[-|_]conemu.xml .
[cmder_root]/config/user[-|_]conemu.xml包含您使用“设置任务”设置对话框进行的任何自定义设置。退出所有CMDER会话并备份您在[cmder_root]/vendor下手动编辑的所有文件。
[cmder_root]/vendor下进行编辑文件,因为您需要在升级后重新应用这些更改。所有用户自定义都应在[cmder_root]/config文件夹中使用。删除[cmder_root]/vendor文件夹。
提示时,将新的cmder.zip或cmder_mini.zip提取到[cmder_root]/覆盖所有文件。
如果您没有[cmder_root]/config/user[-|_]conemu.xml ,您正在运行旧版本的CMDER,请按照以下过程:
退出所有CMDER会话和备份[cmder_root]/vendor/conemu-maximus5/conemu.xml到[cmder_root]/config/user[-|_]conemu.xml 。
备份您在[cmder_root]/vendor下手动编辑的任何文件。
[cmder_root]/vendor下进行编辑文件,因为您需要在升级后重新应用这些更改。所有用户自定义都应在[cmder_root]/config文件夹中使用。删除[cmder_root]/vendor文件夹。
提示时,将新的cmder.zip或cmder_mini.zip提取到[cmder_root]/覆盖所有文件。
您可以通过以下链接进入Appveyor下载当前开发分支的构建:
GitHub Action的最新下载构建可以从下面的链接下载:
包含的所有软件都捆绑在一起
麻省理工学院许可证(MIT)
版权(c)2016塞缪尔·瓦斯科(Samuel Vasko)
特此免费授予获得此软件副本和相关文档文件副本(“软件”)的任何人,以无限制处理该软件,包括无限制的使用权,复制,复制,修改,合并,合并,发布,分发,分发,分发,订婚,和/或允许软件的副本,并允许对以下条件提供以下条件,以下是以下条件。
上述版权通知和此许可通知应包含在软件的所有副本或大量部分中。
该软件是“原样”提供的,没有任何形式的明示或暗示保证,包括但不限于适销性,特定目的的适用性和非侵权的保证。在任何情况下,作者或版权持有人都不应对任何索赔,损害赔偿或其他责任责任,无论是在合同,侵权的诉讼中还是其他责任,是由软件,使用或与软件中的使用或其他交易有关的。