MinTTY 是 Cygwin 的新默认控制台。
什么是用于更改 MinTTY 窗口标题的 shell 命令(我可以将其放入 .bashrc 中,或者甚至更好地放入 .zshrc 中)?
我希望窗口的标题是当前目录的路径,并在我在控制台内切换目录时更新它。
小智 59
怎么了
以下命令对我不起作用:
echo -ne "\e]0;MYTITLE\a"
Run Code Online (Sandbox Code Playgroud)
事实证明,我的默认 Cygwin 安装在 .bashrc 中包含以下提示定义:
PS1=\[\e]0;\w\a\]\n\[\e[32m\]\u@\h \[\e[33m\]\w\[\e[0m\]\n$
Run Code Online (Sandbox Code Playgroud)
请注意,提示 ( \e]0;\w\a)的第一部分是每次出现提示时设置窗口标题。
解决方案
在您的.bashrc定义 2 个函数中添加这些行:
function settitle() {
export PS1="\[\e[32m\]\u@\h \[\e[33m\]\w\[\e[0m\]\n$ "
echo -ne "\e]0;$1\a"
}
function settitlepath() {
export PS1="\[\e]0;\w\a\]\n\[\e[32m\]\u@\h \[\e[33m\]\w\[\e[0m\]\n$ "
}
Run Code Online (Sandbox Code Playgroud)
然后您可以使用以下命令设置自定义标题:
settitle "MYWonderfullTest here"
Run Code Online (Sandbox Code Playgroud)
或者您可以使用以下命令恢复到 cygwin 的默认值(当前路径):
settitlepath
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助
小智 27
为此,您可以使用 xterm 控制序列更改它,如下所示:
echo -ne '\e]0;Title\a'
Run Code Online (Sandbox Code Playgroud)
请参阅:http : //code.google.com/p/mintty/issues/detail?id=241
将其放入 .zshrc 中:
# Change title of MinTTY to current dir
function settitle() {
echo -ne "\033]2;"$1"\007"
}
function chpwd() {
settitle $(cygpath -m `pwd`)
}
Run Code Online (Sandbox Code Playgroud)
函数settitle中的特殊字符序列使MinTTY改变窗口的标题。
在zsh中,如果您定义一个具有特殊名称 chpwd 的函数,它将在每个 chdir 之后调用。
适用于 WinXP,Cygwin 1.7 和 MinTTY 运行 zsh。
| 归档时间: |
|
| 查看次数: |
27898 次 |
| 最近记录: |