博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
cmder添加到系统变量中_Cmder进阶配置
阅读量:5010 次
发布时间:2019-06-12

本文共 3305 字,大约阅读时间需要 11 分钟。

《Cmder进阶配置》涉及 Cmder的选项卡(标签页)的讲解;使用外部 Git、WSL、cygwin、babun中的bash 和 Cmder的更新。

Cmder的选项卡(标签页)

d4e3773ed4f496fb23cd9f58c22460be.png
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

Cmder完整版和迷你版

  • Cmder完整版: 只有完整版的 Cmder 有一个预先安装的 bash,它包含在 git-for-windows 中。
  • Cmder 迷你版:如果没有额外的配置,预先配置的 Bash 选项卡可能无法在 Cmder 迷你版上工作;但是其他选项卡是可以工作的。
  • 对于完整版或迷你版都可以选择使用外部安装的 bash,例如 Microsoft 的 Linux 子系统中的bash 或在 windows 上提供 POSIX 支持的 Cygwin 项目。

更改Cmder启动时的默认启动行为

通过配置 init.bat 的参数来修改启动行为。

settings [更改语言为简体中文] 启动 任务 {cmd::Cmder} 在下面的位置添加命令行参数:

cmd /k ""%ConEmuDir%..init.bat" [见参数添加到这里]"

注意:这里的引号 ""。

dd5b96339622034df1af82131897fbd4.png
cmder启动参数

可以发现 上面的参数列表中包含了明确指定 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.cmdPowerShell$ENV:CMDER_ROOTconfiguser_profile.ps1Bash/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 的情况"。

使用外部 Git、WSL、cygwin、babun中的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;例如:

  • bash :复制到/etc/profile.d/cmder_exinit.sh
  • zsh: 复制到/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 升级

升级分为两种情况:

  • 当前 cmder 较新: 意味着你有类似 [cmder_root]/config/user[-|_]conemu.xml 的文件。
  • 当前 cmder 较旧:意味着你没有上面的文件。

我们这里只讨论较新版本的 Cmder 如何升级到最新版本的Cmder(当前时间 2019.12,你应该时刻留意官方说明)

  1. 【可选】退出所有 Cmder 会话并重新启动 cmder.exe,这会将你现有的[cmder_root]/vendor/conemu-maximus5/conemu.xml 备份到[cmder_root]/config/user[-|_]conemu.xml.(该文件包含你使用 "Setup Tasks" 设置对话框所做的任何自定义设置)
  2. 【可选】退出所有 Cmder 会话并备份你在[Cmder root]/vendor 下手动编辑的所有文件。(所以说一般不建议修改这下面的文件,所有用户自定义都应该在 [cmder_root]/config 文件夹)
  3. 删除 [cmder_root]/vendor 文件夹
  4. 解压 cmder 压缩包到 [cmder_root]/ 目录,并选择覆盖所有文件。

如果是使用 Scoop 安装 Cmder 则不需要如此麻烦(可是会失去了可移植性,但应该都不在乎),只需

scoop update cmder

转载地址:http://yaggp.baihongyu.com/

你可能感兴趣的文章
跨浏览器问题的五种解决方案
查看>>
XPath定位时,使用文本的方法小技巧。
查看>>
安装pandas报错(AttributeError: 'module' object has no attribute 'main')
查看>>
ch02 fundamental definition 01
查看>>
JSON解析
查看>>
Position is everything?(css定位学习的一些心得)(一)
查看>>
如何提高编程水平
查看>>
Jquery Uploadify3.21.与2.1版本 使用中存在的问题--记录三
查看>>
Linux查看进程的内存占用情况 分类: ubuntu ...
查看>>
[BZOJ 2818]Gcd
查看>>
FORM值传递与地址传递
查看>>
(译)yaml快速教程
查看>>
C:大数相加
查看>>
160. Intersection of Two Linked Lists
查看>>
人生苦短,我用python-- Day11
查看>>
JAVA Bean
查看>>
ehcache memcache redis 三大缓存男高音_转
查看>>
curd_3
查看>>
百度地图API示例之设置地图显示范围
查看>>
Java构造方法、重载及垃圾回收
查看>>