使用tcsh显示终端标题中的当前目录


4

我想终端的标题栏总是显示我所在的目录。我不希望它出现在提示中。我在网上找到了一些魔术代码,并在我的.tcshrc中有这个:

set prompt =“%B%m:%n%?====>%b”
alias cwdcmd'echo -ne“\ 033] 0; $ cwd \ 007”'

除了两件事之外,它有点工作:1)标题栏中没有显示cwd,2)命令行打印cwd和一些乱码。我想也许引用不对,或者其他语法问题,但实验并没有带来改进。

由于未指明的原因,我必须使用tcsh而不是bash。后者,我可以工作得很好。


你用什么转义序列与bash一起使用?ESC] 0用于xterm,我不相信Terminal.app支持。
ThorbjørnRavnAndersen

是的,终端确实支持操作系统命令(OSC)转义序列(ESC] Ps; Pt BEL)来设置窗口/选项卡标题。在Lion中,它现在还允许您独立于窗口标题设置选项卡标题。
克里斯Page

Answers:


1

这就是我在.cshrc中的内容

alias cwdcmd'printf“\ 033] 1;%s \ 007 \ 033] 2;%s \ 007”“$ cwd:t”“$ HOST echo $cwd | sed s-$HOME-~-”'

它为iTerm做了一些额外的东西,我使用它而不是Termial,但似乎在那里工作正常。


我怀疑“echo”和“sed”不应该按字面意思显示,但他们确实如此。不管; 如果我把它们砍掉,我仍然会得到我想要展示的东西。有用!
达伦

2

这是我在tcsh中使用的提示。它将窗口标题设置为完整路径(当Chris Page回答时,会在Lion中获得额外的功能)。提示本身基本上[$HOST:$PWD] $USER%使用tcsh%语法。

set prompt = '%{\e]2;%~\a%}%S[%m:%c3] %n%#%s '

0

从Mac OS X Lion 10.7开始,终端现在支持使用标准窗口“代理”图标显示工作目录。对于bash(默认shell),默认情况下启用此选项。请参阅/ etc / bashrc以获取相关代码。

这样可以实现多种行为,例如在同一目录中创建新终端的能力(默认情况下,New Tab将执行此操作,您可以在创建新窗口时启用它),并在退出/重新启动终端时恢复工作目录(简历)。它还允许在打开窗口组时恢复工作目录。

为方便起见,如果你的shell配置为将工作目录路径放在窗口(或标签)标题中,终端将检查标题是否包含有效的本地路径并自动提供一些相同的行为(尽管它不会恢复Resume的工作目录。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.