cmder
cmder是一个因在Windows上没有可用的控制台仿真器而纯粹的挫败感而创建的软件包。它基于带有主要配置大修的CONEMU,带有Monokai配色方案,令人惊叹的曲目(通过曲目完成进一步增强)和自定义提示布局。
为什么要使用它
cmder的主要优点是可移植性。它旨在完全独立,没有外部依赖性,这使其非常适合USB棒或云存储。因此,您可以随身携带控制台,别名和二进制文件(例如WGET,Curl和Git)。
cmder的用户界面还设计为更令人愉悦,您可以在此处比较cmder和CONEMU之间的主要区别。
安装
单用户便携式配置
- 下载最新版本
- 提取档案。注意:此路径不应是C:\\ Program Files或其他需要管理员访问以修改配置文件的任何地方
- (可选)将自己的可执行文件放入% cmder _root%\\ bin文件夹中,以注入您的路径。
- 运行cmder .exe
共享的cmder安装与不可携带的单个用户配置
- 下载最新版本
- 将存档提取到共享位置。
- (可选)将您自己的可执行文件和自定义应用程序文件夹放入% cmder _root%\\ bin中。请参阅:bin/readme.md
- 默认情况下,将将此文件夹注入您的路径。
- 请参阅“ init.bat”表的“命令行参数”中的 /max_depth [1-5],以递归添加子目录。
- (可选)将自己的自定义应用程序夹放入% cmder _root%\\ opt中。请参阅:opt/readme.md
- 该文件夹不会注入您的路径中,因此您可以完全控制添加的内容。
- 使用 /c命令行参数运行cmder .exe。示例: cmder .exe /c%userProfile%\\ cmder _config
-
如果丢失了以下目录结构,则将创建以下目录结构。
cmder_config
├───bin
├───config
│ └───profile.d
└───opt\”>c:\\users\\[username]\\ cmder _config ├───bin ├───config │ └───profile.d └───opt
-
- (可选)将自己的可执行文件和自定义应用程序文件夹放入%userProfile%\\ cmder _config \\ bin中。
- 默认情况下,将将此文件夹注入您的路径。
- 请参阅“ init.bat”表的“命令行参数”中的 /max_depth [1-5],以递归添加子目录。
- (可选)将自己的自定义应用程序夹放入%user_profile%\\ cmder _config \\ opt中。
- 该文件夹不会注入您的路径中,因此您可以完全控制添加的内容。
- 共享安装和各个用户配置位置都可以包含一组INIT和配置文件。D脚本启用与用户覆盖的共享配置。见下文。
cmder .exe命令行参数
| 争论 | 描述 |
|---|---|
| /c [user_root_path] | 单个用户cmder根文件夹。示例:%userProfile%\\ cmder _config |
| /m | 使用conemu-%computername%.xml进行conemu设置存储而不是user_conemu.xml |
| /注册[全部,用户] | 注册Windows Shell菜单快捷方式。 |
| /解除登记[全部,用户] | 取消注册Windows Shell菜单快捷方式。 |
| /单身的 | 以单模式启动cmder 。 |
| /start [start_path] | 文件夹路径开始。 |
| /task [task_name] | 启动后开始的任务。 |
| /x [CONEMU EXTRAS PAR] | 向前参数到CONEMU |
上下文菜单集成
因此,您已经对cmder进行了一些实验,并希望在更永久的家中试一试;
快捷方式以在选定的文件夹中打开cmder
- 打开终端作为管理员
- 导航到您放置的cmder
- 执行。\\ cmder .exe /如果收到“访问拒绝”消息,请确保您在管理员提示符中执行命令。
在文件资源管理器窗口中,右键单击或在目录上查看上下文菜单中的“ cmder ”。
键盘快捷键
TAB操纵
- CTRL + T :新的TAB对话框(也许您想打开CMD作为管理员?)
- Ctrl + W :关闭选项卡
- CTRL + D :关闭选项卡(如果按空命令按)
- Shift + Alt + #number :快速新选项卡: 1 -CMD, 2- PowerShell
- CTRL + TAB :切换到下一个选项卡
- Ctrl + Shift + Tab :切换到上一个选项卡
- ctrl + #number :切换到选项卡#number
- Alt + Enter :全屏
壳
- Ctrl + Alt + U :在目录结构中穿越(可爱的功能!)
- 结束,家, CTRL :在Windows上照常遍历文本
- CTRL + R :历史搜索
- Shift +鼠标:从缓冲区选择并复制文本
(尽管存在一些快捷方式,但尚未记录下来 – 请在此处记录它们)
特征
使用选项卡中的一个窗口中访问多个外壳
您可以打开多个包含以下外壳之一的选项卡:
| 任务 | 壳 | 描述 |
|---|---|---|
| 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便携式终端颜色的示例:
从狂欢/薄荷外壳中
cmder_ROOT/vendor
git clone https://*g*ithub.co*m/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\”>
cd $ cmder _ROOT/vendor git clone https://*g*ithub.co*m/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配色方案,可以在此处匹配cmder 。
更改cmder默认cmd.exe提示文件文件
默认的cmder shell cmd :: cmder提示是使用clink自定义的,并通过编辑在两个位置之一中的配置文件进行配置:
- 单用户便携式配置% cmder _root%\\ config \\ cmder _prompt_config.lua
- 共享cmder安装与不可销的单个用户配置% cmder _user_config%\\ cmder _prompt_config.lua
如果您的cmder设置没有此文件从% cmder _root%\\ vendor \\ cmder _prompt_config.lua.default创建它。
自定义包括:
- 颜色。
- 单线/多行。
- 仅完整路径/文件夹。
- [用户]@[主机]提示的开头。
- 〜对于主目录。
- λ符号
文档在每个设置的文件中。
使用任务参数更改cmder默认cmd.exe shell启动行为
- 媒体Win + Alt + T
- 点击:
- 1。{cmd :: cmder as admin}
- 2。{cmd :: cmder }
- 添加命令行参数以下指定:
注意:注意报价!
cmd /s /k \"\"%ConEmuDir%\\..\\init.bat\" [ADD ARGS HERE]\"
init.bat的命令行论证
| 争论 | 描述 | 默认 |
|---|---|---|
| /c [用户cmder root] | 由于非共享的环境,启用用户箱和配置文件夹,用于“ cmder为Admin”会话。 | 未设置 |
| /d | 启用调试输出。 | 未设置 |
| /f | 启用cmder快速初始模式。这会禁用某些功能,有关更多详细信息,请参见“拉请请求#1492”。 | 未设置 |
| /t | 启用cmder定时初始模式。这显示了运行量脚本所花费的时间 | 未设置 |
| /git_install_root [文件路径] | 用户指定的git安装根路径。 | % cmder _root%\\供应商\\ git-for-windows |
| /家[主文件夹] | 用户指定的文件夹路径以设置%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%路径%:0 | 1 |
| /svn_ssh [通往ssh.exe的路径] | 定义%svn_ssh%,因此我们可以将GIT SVN与SSH SVN存储库一起使用。 | %git_install_root%\\ bin \\ ssh.exe |
| /user_aliases [文件路径] | 指向用户别名的文件路径。 | % cmder _root%\\ config \\ user_aliases.cmd |
| /v | 启用详细输出。 | 未设置 |
| (自定义参数) | 用户定义的参数由CEXEC处理。键入cexec /?更多用法。 | 未设置 |
cmder shell用户配置
使用cmder特定的shell配置文件,可以使用单用户便携式配置。编辑以下文件以添加您自己的配置:
| 壳 | cmder便携式用户配置 |
|---|---|
| cmder | % cmder _root%\\ config \\ user_profile.cmd |
| Powershell | $ env: cmder _root \\ config \\ user_profile.ps1 |
| bash/mintty | $ cmder _root/config/user_profile.sh |
注意: bash和mintty会话还将在$ home/.bashrc文件中供电,如果它在源源后存在$ cmder _root/config/config/user_profile.sh。
您可以编写 *.cmd | *.bat, *.ps1和 *.sh脚本,然后将它们放入% cmder _root%\\ config \\ profile.d文件夹中以将启动config添加到cmder 。
| 壳 | cmder profile.d脚本 |
|---|---|
| cmder | % cmder _root%\\ config \\ profile.d \\ *。蝙蝠和 *.cmd |
| Powershell | $ env: cmder _root \\ config \\ profile.d \\*。ps1 |
| bash/mintty | $ cmder _root/config/profile.d/* |
GIT状态选择退出
为了禁用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.\”>
[ 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.
别名
cmder (cmd.exe)别名
您可以使用诸如Alias name =命令之类的命令定义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%\\ config \\ user_aliases.cmd文件中
为了使别名和/或任何其他配置文件设置永久添加到以下一个:
注意:这些是通过$ cmder _root/vendor/init.bat按此顺序加载的。在% cmder _root%中存储的任何内容都将是一种便携式设置,并将遵循cmder到另一台计算机。
- % cmder _root%\\ config \\ profile.d \\*。cmd和\\*。蝙蝠
- % cmder _root%\\ config \\ user_aliases.cmd
- % cmder _root%\\ config \\ user_profile.cmd
bash.exe | mintty.exe别名
Bash Shells本地支持具有可选参数的简单和复杂的别名,因此它们的工作方式有所不同。键入别名name =命令将仅为当前运行会话创建一个别名。
为了使别名和/或任何其他配置文件设置永久添加到以下一个:
注意:这些是通过$ cmder _root/vendor/git-for-windows/etc/profile.d/ cmder .sh加载的。 $ cmder _root中存储的任何东西都将是一种便携式设置,并将遵循cmder到另一台计算机。
- $ cmder _root/config/profile.d/*
- $ cmder _root/config/user_profile.sh
- $ home/.bashrc
如果您将bash别名添加到$ cmder _root/config/user_profile.sh.sh,它们将是便携式的,如果将其复制到另一台计算机时,请关注您的cmder文件夹。 $ home/.bashrc定义的别名无法便携。
powershell.exe别名
PowerShell具有本机简单的别名支持,例如[New-Alias | set-alias]别名命令,因此在PowerShell会话中不支持具有可选参数的复杂别名。键入求助[new-alias | set-alias] -full以提供对PowerShell别名的帮助。
为了使别名和/或任何其他配置文件设置永久添加到以下一个:
注意:这些是按照此顺序加载的$ env: cmder _root \\ vendor \\ user_profile.ps1。 $ env中存储的任何内容: cmder _root将是一种便携式设置,并将遵循cmder到另一台计算机。
- $ env: cmder _root \\ config \\ profile.d \\*。ps1
- $ env: cmder _root \\ config \\ user_profile.ps1
SSH代理
要启动供应商的SSH代理,只需调用start-ssh-agent,它在供应商/git-for-windows/cmd文件夹中。
如果您想在启动上运行SSH代理,请在% cmder _root%/config/user_profile.cmd(通常只是删除IT)中,包括@call“%git_install_root%/cmd/start/start-ssh-agent.cmd”。
供应商Git
默认情况下, cmder是使用供应商的Git安装运送的。在启动cmder的每个实例中,都会尝试找到任何其他提供的用户提供的git二进制文件。找到git.exe二进制文件后, cmder通过执行该版本将其版本与供应商的版本进行了比较。供应商的git.exe二进制只有比用户安装的二进制文件使用。
您可以通过在%路径%环境变量中包含其最喜欢的git版本。此外, cmder的迷你版(在下载页面上找到)不包括任何供应商的Git二进制文件。
使用cmder的Windows SDK,使用外部Cygwin/babun,msys2,wsl或git。
使用以下说明,您可以在cmder上外部运行Bash(MacOS和GNU/Hurd上使用的默认外壳):
- 通过按WIN + ALT + T来设置新任务。
- 单击 +按钮添加任务。
- 在顶部文本框中命名新任务。
- 提供任务参数,这是可选的。
- 添加cmd /c“ [path_to_to_external_env] \\ bin \\ bash -login -i” -new_console到命令文本框。
建议的可选步骤:
将供应商/ cmder _exinit文件复制到Windows SDK Environments /etc/profile.d/文件夹中使用$ cmder _ROOT/CONFIG文件夹中的Portable设置。
注意:如果INIT脚本包含profile.d,MINGW可以工作,但尚未对其进行测试。
目标文件扩展名取决于您在该环境中使用的外壳。例如:
- bash-复制到/etc/profile.d/ cmder _exinit.sh
- ZSH-复制to /etc/profile.d/ cmder _exinit.zsh
在脚本中的删节和编辑以下行,即使从外部cmder启动时,也可以使用cmder配置。
cmder # This is not required if launched from 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:\\Users\\user\\ cmder dev\\vendor\\bin\\cexec.cmd
示例:%ccall% /startnotepad start notepad.exe
%cexec% – 评估标志,如果找到命令,则运行命令,并且不会返回到调用脚本。
cexec=C:\\Users\\user\\ cmder dev\\vendor\\bin\\cexec.cmd
示例:%cexec% /startnotepad start notepad.exe
当您有多个任务执行cmder并需要根据所选任务以不同的方式初始化会话的初始化时,这很有用。
在启动特定cmder任务时有条件地启动Notepad.exe:
-
媒体Win + Alt + T
-
单击 +添加新任务。
-
将下面添加到命令块:
cmd.exe /k \" \" %ConEmuDir% \\..\\init.bat \" /startnotepad \"
-
将下面添加到您的% cmder _root%\\ config \\ user_profile.cmd
%ccall% \" /startNotepad \" \" start \" \" notepad.exe \" `
要查看CEXEC的详细用法,请键入cexec /?在cmder 。
将cmder与Windows终端,VS代码和您喜欢的IDE集成
cmder情况下,如下所述,默认情况下,作为基础终端模拟器,带有供应商Conemu安装。
但是, cmder实际上可以在许多其他终端模拟器中运行,甚至可以集成的IDE。假设您拥有最新版本的cmder ,请按照以下说明与您自己的终端模拟器一起使用cmder 。
有关如何将cmder与IDE集成的说明,请阅读我们的Wiki部分。
升级
升级cmder的过程取决于您当前正在运行的版本/构建。
如果您有一个[ cmder _root]/config/user [ – | _] conemu.xml,则正在运行较新版本的cmder ,请按照以下过程:
-
退出所有cmder会话并重新启动[ cmder _ROOT]/ cmder .EXE,这可以支持您现有的[ cmder _ROOT]/vendor/conemu-maximus5/conemu.xml到[ cmder _root _root _root]/config/config/user [ – | ___________________________________________]
- [ cmder _root]/config/user [ – | _] conemu.xml包含您使用“设置任务”设置对话框进行的任何自定义设置。
-
退出所有cmder会话并备份您在[ cmder _ROOT]/供应商下手动编辑的所有文件。
- 不建议在[ cmder _ROOT]/供应商下进行编辑文件,因为您需要在进行任何升级后重新应用这些更改。所有用户自定义都应在[ cmder _root]/config文件夹中进行。
-
删除[ cmder _ROOT]/供应商文件夹。
-
将新的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/config/user [ – | _ | _] conemu.xml。
-
备份您在[ cmder _ROOT]/供应商下手动编辑的任何文件。
- 不建议在[ cmder _ROOT]/供应商下进行编辑文件,因为您需要在进行任何升级后重新应用这些更改。所有用户自定义都应在[ cmder _root]/config文件夹中进行。
-
删除[ cmder _ROOT]/供应商文件夹。
-
将新的cmder .zip或cmder _mini.zip提取到[ cmder _root]中/在提示时覆盖所有文件。
当前的发展建立
您可以通过以下链接进入Appveyor下载当前开发分支的构建:
GitHub Action的最新下载构建可以从下面的链接下载:
执照
包含的所有软件都捆绑在一起
麻省理工学院许可证(MIT)
版权(c)2016塞缪尔·瓦斯科(Samuel Vasko)
特此免费授予获得此软件副本和相关文档文件副本(“软件”)的任何人,以无限制处理该软件,包括无限制的使用权,复制,复制,修改,合并,合并,发布,分发,分发,分发,订婚,和/或允许软件的副本,并允许对以下条件提供以下条件,以下是以下条件。
上述版权通知和此许可通知应包含在软件的所有副本或大量部分中。
该软件是“原样”提供的,没有任何形式的明示或暗示保证,包括但不限于适销性,特定目的的适用性和非侵权的保证。在任何情况下,作者或版权持有人都不应对任何索赔,损害赔偿或其他责任责任,无论是在合同,侵权的诉讼中还是其他责任,是由软件,使用或与软件中的使用或其他交易有关的。
