我,一直有个梦想,就是在 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 |
删除重复命令 |