我,一直有个梦想,就是在 Windows 下摆脱 cmd。
终于我这一天被它弄得心态崩溃,整了一个 cmder 来玩。
这啥
这里有个详细的初步介绍。
好吧,这大概是个 Win 下的可移植的终端的整合包,让你随身携带命令别名、颜色主题之类的。
然后这里主要用来记录使用 cmder 遇到的一些问题。
λ很炫,但也很屑
由于 cmder 将λ作为命令提示符,稍微上下键查看下前后的命令就会多出来一个无法删除的符号,令人谔谔。
于是vendor\clink.lua里面把某一行(因版本不同而不同,行开头是local cmder_prompt =)中的{lamb}改为$即可解决 cmd 的命令提示符问题。
bash 的命令提示符就麻烦些,要在vendor\git-for-windows\etc\profile.d\git-prompt.sh把某一行PS1="$PS1"'λ ' # prompt: always λ改为PS1="$PS1"'$ ' # prompt: always $就好了。
输入中文光标出问题
若使用的是 Git,在vendor\profile.ps1里找到下面这一行:
1 | Microsoft.PowerShell.Utility\Write-Host "`nλ " -NoNewLine -ForegroundColor "DarkGray" |
λ改成$就好了。
隐藏 history
正如 Linux 中国的这篇博客,Linux 下可以方便地隐藏 bash 记录。那么 Cmder 的 cmd,以及 git for windows 呢?
cmd 隐藏 history
cmd 的 history 都在config\.history里,可以直接看到自己的history。
然后进config\settings,不难找到history_file_lines的行,是历史记录的保存条数。下面的history_ignore_space是一个bool变量,为1时可以通过在命令前加上一个空格()来避免命令被加入history。
git for windows 隐藏 history
git for windows 的历史都在~\.bash_history里。在同一目录下,还能看见.bash_profile,即全局配置文件。
在里面塞进去一行export HISTCONTROL=ignorespace,即可将通过命令前加上来避免命令被加入history。
实际上,HISTCONTROL有以下选项:
| 选项 | 效果 |
|---|---|
ignoredup |
默认,忽略重复命令 |
ignorespace |
忽略所有开头的命令 |
ignoreboth |
ignoredups和ignorespace的组合 |
erasedups |
删除重复命令 |