답변:
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) 에서 작동하지 않습니다.
나를 위해 일하는 것 :
echo -e "\033];this is the title\007"
Mac OSX 및 iTerm을 사용하는 경우 iTerm2 ::
zsh를 사용하는 경우 설정을 편집해야 할 수도 있습니다. 설정은 일반적으로 파일에 ~/.zshrc
있습니다. 이 줄이 존재하도록 설정을 추가하거나 편집하려고합니다.
DISABLE_AUTO_TITLE="true"
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"
문제를 해결 한 줄을 포함하도록 위의 기능을 수정했습니다 . 제목을 설정하지
A는 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"
허용되는 답변만큼 멋지거나 우아하지는 않지만 작동합니다.