Câu trả lời:
Bạn có thể nhập thông tin sau vào zsh
để đặt tiêu đề cửa sổ của iTerm2:
echo -ne "\e]1;this is the title\a"
Nếu bạn muốn tự động hóa để chèn, ví dụ như thời gian hiện tại hoặc thư mục làm việc, hãy chỉnh sửa các zsh
tệp cấu hình của bạn để đặt tiêu đề trong precmd()
hàm thành vd $PWD
.
echo -ne "\e]1;$PWD\a"
Bạn có thể đọc về precmd
chức năng trong man zshmisc
phần SPECIAL FUNCTIONS
.
Profiles > Terminal > Terminal Emulation > Terminal may set tab/window title
.
iTerm2
(3.2.9)
Những gì làm việc cho tôi:
echo -e "\033];this is the title\007"
Nếu bạn sử dụng Mac OSX và iTerm, iTerm2 ::
Nếu bạn sử dụng zsh, thì bạn có thể cần phải chỉnh sửa cài đặt của mình. Cài đặt của bạn thường có trong tệp ~/.zshrc
. Bạn muốn thêm hoặc chỉnh sửa cài đặt của mình để đảm bảo dòng này tồn tại:
DISABLE_AUTO_TITLE="true"
Một trong những tiện ích của việc sử dụng iTerm là khả năng thiết lập tiêu đề tab & tiêu đề tab riêng biệt:
# $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 $@; }
Bằng cách này, bạn có thể thấy ngay máy chủ nào mình kết nối trong cửa sổ nào và tiêu đề cửa sổ cho mỗi tab hiển thị người dùng & CWD.
.bashrc
, phải không?
DISABLE_AUTO_TITLE="true"
đã khắc phục sự cố và theo cách này nếu tôi không đặt tiêu đề, tôi vẫn nhận được tính năng tiêu đề tự động
A precmd
không lừa. Tuy nhiên, một số chủ đề oh-my-zsh lộn xộn với tiêu đề cửa sổ. Đặt PR_TITLEBAR
thành một chuỗi trống để sửa nó.
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
Tôi cũng khuyên bạn nên chơi xung quanh với các cài đặt tab của iTerm2 trong Tùy chọn -> Giao diện.
Không có câu trả lời nào có vẻ phù hợp với tôi, có lẽ là cho phiên bản iterm2 (3.3.3).
Tôi đã tìm thấy điều này: https://gist.github.com/phette23/5270658#gistcomment-3020766
Về cơ bản, bạn có thể làm bất cứ điều gì được nói trong tất cả các câu trả lời khác, nhưng cũng cần phải đặt
Preferences > Profiles > General > Title -> Name (Job)
Điều này làm việc cho tôi.
General
tab, nó nằm dưới Profiles
tab
> Profiles
một. Lỗi của tôi. Đã cập nhật.
Câu trả lời được chấp nhận đã làm việc cho tôi trong một thời gian dài nhưng hiện đã bị hỏng trong phiên bản mới nhất của iTerm2. Một cách giải quyết mà tôi tìm thấy là kích hoạt API Python và tạo một tập lệnh đặt tên tab như vậy:
#!/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)
Được lưu dưới dạng "tab_name.py", sau đó được gọi bằng:
~/Library/ApplicationSupport/iTerm2/iterm2env/versions/*/bin/python3 ~/Library/ApplicationSupport/iTerm2/Scripts/tab_name.py "new tab name"
Nó gần như không đẹp hoặc thanh lịch như câu trả lời được chấp nhận, nhưng nó hoạt động.
iTerm -> Tùy chọn -> Giao diện -> Tiêu đề Cửa sổ & Tab -> kiểm tra Tùy chọn tên hồ sơ