Answers:
您可以输入以下内容zsh
来设置iTerm2的窗口标题:
echo -ne "\e]1;this is the title\a"
如果要自动插入例如当前时间或工作目录,请编辑zsh
配置文件以将precmd()
函数标题设置为例如$PWD
。
echo -ne "\e]1;$PWD\a"
您可以在部分中阅读有关此precmd
功能man zshmisc
的信息SPECIAL FUNCTIONS
。
Profiles > Terminal > Terminal Emulation > Terminal may set tab/window title
。
iTerm2
(3.2.9)的最新稳定版本
使用iTerm的便利之一是可以分别设置窗口标题和标签标题:
# $1 = type; 0 - both, 1 - tab, 2 - title
# rest = text
setTerminalText () {
# echo works in bash & zsh
local mode=$1 ; shift
echo -ne "\033]$mode;$@\007"
}
stt_both () { setTerminalText 0 $@; }
stt_tab () { setTerminalText 1 $@; }
stt_title () { setTerminalText 2 $@; }
这样,您可以立即在哪个窗口中查看连接到的主机,每个选项卡的窗口标题显示用户和CWD。
.bashrc
,对吗?
DISABLE_AUTO_TITLE="true"
解决问题的行,这样,如果我不设置标题,我仍然会获得自动标题功能
一个precmd
是卓有成效的。但是,某些oh-my-zsh主题会与窗口标题混淆。设置PR_TITLEBAR
为空字符串即可修复它。
set-window-title() {
# /Users/clessg/projects/dotfiles -> ~/p/dotfiles
window_title="\e]0;${${PWD/#"$HOME"/~}/projects/p}\a"
echo -ne "$window_title"
}
PR_TITLEBAR=''
set-window-title
add-zsh-hook precmd set-window-title
我还建议您在“首选项”->“外观”中使用iTerm2的标签设置。
对于我来说,所有答案似乎都没有用,可能对于iterm2版本(3.3.3)。
我发现了这一点:https : //gist.github.com/phette23/5270658#gistcomment-3020766
本质上,您可以执行所有其他答案中所述的任何操作,但还需要设置
Preferences > Profiles > General > Title -> Name (Job)
这对我有用。
General
标签下,而是在Profiles
标签下
> Profiles
一个。我的错。更新。
接受的答案对我有用了很长时间,但现在在最新版本的iTerm2中已被打破。我发现一种解决方法是启用Python API并创建一个脚本来设置选项卡名称,如下所示:
#!/usr/bin/env python3.7
import argparse
import iterm2
def get_args():
parser = argparse.ArgumentParser(description='Set the tab name')
parser.add_argument('name')
return parser.parse_args()
ARGS = get_args()
async def main(connection):
app = await iterm2.async_get_app(connection)
window = app.current_terminal_window
if window is not None:
tab = window.current_tab
await tab.async_set_title(ARGS.name)
else:
# You can view this message in the script console.
print("No current window")
iterm2.run_until_complete(main)
另存为“ tab_name.py”,然后调用:
~/Library/ApplicationSupport/iTerm2/iterm2env/versions/*/bin/python3 ~/Library/ApplicationSupport/iTerm2/Scripts/tab_name.py "new tab name"
它不如公认的答案好或优雅,但它可以工作。