Câu hỏi Với Bash + iTerm2, cách đặt tên tab?


Trong iTerm2 (Build 1.0.0.20120203), tôi thường mở một vài tab, mỗi tab có các ngăn chia tách và là một chủ đề cụ thể của công việc, ví dụ như kiểm soát sửa đổi, mã hóa, quản lý tệp, công việc đầu cuối mysql. Tôi thường cần chuyển đổi giữa 5 tab trở lên trong luồng công việc của mình. Đôi khi rất khó để nhớ hoặc cho biết đó là bằng cách nhìn vào nội dung của màn hình. Tôi muốn đặt tên cho các tab bằng cách nào đó, vì vậy tôi có thể nhanh chóng biết cái nào bằng cách nhanh chóng liếc nhìn. Điều này có thể không?


152
2018-05-02 19:08


gốc


có thể trùng lặp Thay đổi tiêu đề cửa sổ và tab iTerm2 trong zsh - Daniel Beck♦
Không hoàn toàn trùng lặp. Vậy làm cách nào để thêm ứng dụng hiện đang chạy như một phần của tiêu đề tab? I E. tab nào đang chạy các emacs, mysql, v.v ...? - qazwsx
I E. tất cả các tab của tôi đều có cùng một máy chủ và người dùng. Vì vậy, việc sử dụng những thứ đó sẽ không phân biệt các tab của tôi. - qazwsx
Ý bạn là bạn muốn Hiển thị tên công việc hiện tại từ sở thích của iTerm? Lưu ý rằng chủ đề được liên kết không phải về tên người dùng hoặc máy chủ lưu trữ. - Daniel Beck♦
Phải, tôi muốn hiển thị một số dấu hiệu cho thấy chương trình nào đang chạy hoặc được chạy trong mỗi tab. Ngoài ra, giải pháp được đưa ra trong bài đăng khác không hoạt động đối với Bash + iTerm2. - qazwsx


Các câu trả lời:


Kể từ khi bạn đang sử dụng iterm2 trên một mac, một tùy chọn khác là bạn có thể chỉ cần nhấn Cmd-I, gõ một cái gì đó, và nhấn Escape.

Các giải pháp thiết bị đầu cuối là một chút nhanh hơn này, nhưng chỉ muốn cho bạn biết.


182
2017-08-08 15:29



Điều này hoạt động trong một giây cho đến khi tôi đưa ra một lợi nhuận trên tab mà tôi đã đổi tên. - Stewie
@Stewie In Preferences -> Profiles -> Terminal, bỏ chọn "Cho phép đầu cuối để báo cáo tiêu đề cửa sổ". - Max Cantor
Nó không được chọn. Nó vẫn đổi tên tiêu đề. - Stewie
@SteveBennett nó không phải là "chủ đề" (thực sự thuật ngữ là "hồ sơ") chính nó; lệnh CMD + I là "Chỉnh sửa phiên hiện tại ..." (trong menu Xem), do đó, nó chỉ thay đổi cá thể của tab đó trong tiểu sử. Hitting Escape chỉ đóng cửa sổ, điều này là cần thiết vì cửa sổ đó không có nút "lưu" trên đó. - MidnightLightning
Điều gì sẽ xảy ra nếu bạn có nhiều cửa sổ mở? Bạn có phải đổi tên từng cái để đặt tên cho chính tab đó không? - theicfire


Tôi đã tìm thấy hàm sau, được đặt trong ~/.bashrc Để được hữu ích:

function title {
    echo -ne "\033]0;"$*"\007"
}

Sau đó, tôi có thể gọi nó từ dấu nhắc bash của tôi như sau:

> title I want a pony!

Và tab của tôi được đặt tên phù hợp.


106
2018-05-23 17:57



Tôi đã thử điều này, nhưng nó vẫn không hoạt động. Tôi đặt định nghĩa này vào bash_aliasesvà tải nó vào .profile (if [ -f ${HOME}/.bash_aliases ]; then . ${HOME}/.bash_aliases fi) Nhưng sau đó title dog không biến tiêu đề tab thành "chó" - qazwsx
1 - Tôi đã thêm tôi vào / etc / profile chỉ vì đó là nơi mà bí danh của tôi là ... đừng quên nguồn tập tin sau khi bạn đã hoàn tất. Lưu ý: điều này cũng hoạt động trong thiết bị đầu cuối. - blak3r
Rất hữu ích. Tôi muốn có một con ngựa; và tôi có một cái! - SoEzPz
Tôi đặt tôi vào .bash_profile, khởi động lại và nó hoạt động như một sự quyến rũ. - C Johnson
làm việc cho zsh cũng - Sagar Jauhari


chạy lệnh này để đặt tiêu đề của tab hoặc cửa sổ của bạn:

export PROMPT_COMMAND='echo -ne "\033]0;YOUR NAME HERE\007"'

tôi đã thêm phần sau vào ~/.bash_profile để luôn liệt kê thư mục hiện tại có liên quan đến thư mục gốc của tôi:

export PROMPT_COMMAND='echo -ne "\033]0;${PWD/#$HOME/~}\007"'

hữu ích khi bạn có 100 thiết bị đầu cuối được thu nhỏ trong đế

mũ tip để mac thế giới


40
2018-03-04 00:33



Công trinh! Chỉ cần ghi nhớ rằng một trong hai .bashrc hoặc .bash_profiles có thể được tải và không phải cả hai cùng nhau. Tôi đã có một tập tin .bash_profiles vì ​​vậy tôi đã phải dán nó vào tập tin này. Cảm ơn. - therealmarv
ồ cảm ơn! Tôi đã cập nhật câu trả lời cho phù hợp với điều này. tôi có "source ~ / .bashrc" trong tệp .bash_profile của tôi và quên rằng điều này không phổ biến - schpet


Thêm chức năng này vào ~/.bash_profile và nó sẽ hoạt động.

function title ()
{
    TITLE=$*;
    export PROMPT_COMMAND='echo -ne "\033]0;$TITLE\007"'
}

15
2017-10-24 03:26





Tôi đã sử dụng các giải pháp tương tự như ở trên khá lâu, nhưng tôi sử dụng đủ tab mà tôi cũng muốn chúng được mã hóa màu để dễ dàng tham khảo trực quan. Vì vậy, tôi đánh thức tabset, một tiện ích để đặt tiêu đề tab, huy hiệu và màu sắc dựa trên loại công việc tôi đang làm trong mỗi tab.

example

Nó yêu cầu nút, nhưng đó là một nền tảng thường được cài đặt. Để cài đặt:

npm install -g iterm2-tab-set

11
2018-06-15 14:19



Điều này thật tuyệt! Tôi đặc biệt thích cài đặt tự động của màu tab. Cảm ơn bạn! - Ashutosh Jindal


Tôi thích cái này:

#setup terminal tab title
function title {
    if [ "$1" ]
    then
        unset PROMPT_COMMAND
        echo -ne "\033]0;${*}\007"
    else
        export PROMPT_COMMAND='echo -ne "\033]0;${PWD/#$HOME/~}\007"'
    fi
}
title

Nó sẽ cho phép bạn chuyển đổi tên của một tab giữa tên tùy chỉnh và mặc định của CWD của bạn.

title -> tiêu đề tab của bạn sẽ là ~/YOUR_CWD/

title hey there -> tiêu đề tab của bạn sẽ là hey there


6
2017-07-26 15:29



Lưu ý rằng như-là, điều này sẽ clobber Tích hợp vỏ iTerm. - Michael


Tôi thật sự thích câu trả lời của taylorstinenhưng nó phá vỡ iTerm2 tích hợp vỏ dựa vào PROMPT_COMMAND biến. Bạn có thể sửa đổi mã của Taylor để sửa lỗi này bằng cách thêm __bp_precmd_invoke_cmd trở lại PROMPT_COMMAND bất cứ lúc nào bạn tinker với nó:

# iTerm2 shell integration
test -e "${HOME}/.iterm2_shell_integration.bash" && source "${HOME}/.iterm2_shell_integration.bash"

# iTerm2 tab titles
function title {
    if [ "$1" ]
    then
        export PROMPT_COMMAND='__bp_precmd_invoke_cmd'
        echo -ne "\033]0;${*}\007"
    else
        export PROMPT_COMMAND='echo -ne "\033]0;${PWD/#$HOME/\~}\007";__bp_precmd_invoke_cmd'
    fi
}
title

4
2018-03-30 14:45





tôi thích Michael's câu trả lời.

Nhưng nếu .iterm2_shell_integration.bash không tồn tại?

Đây là của tôi:

# iTerm2 shell integration
test -e "${HOME}/.iterm2_shell_integration.bash" && source "${HOME}/.iterm2_shell_integration.bash"

# iTerm2 tab titles
function title {
  if [ "$1" ] ; then
    test -e "${HOME}/.iterm2_shell_integration.bash" \
      && export PROMPT_COMMAND='iterm2_preexec_invoke_cmd' \
      || unset PROMPT_COMMAND
    echo -ne "\033]0;${*}\007"
  else
    test -e "${HOME}/.iterm2_shell_integration.bash" \
      && export PROMPT_COMMAND='echo -ne "\033]0;${PWD/#$HOME/~}\007";iterm2_preexec_invoke_cmd' \
      || export PROMPT_COMMAND='echo -ne "\033]0;${PWD/#$HOME/~}\007"'
  fi
}
title

3
2018-05-23 13:21



Lưu ý rằng trong v3.1, iterm2_preexec_invoke_cmd đã trở thành __bp_precmd_invoke_cmd - Michael


Nếu bạn đang làm việc với Hồ sơ (rất thuận tiện): Tùy chọn -> Giao diện -> Tiêu đề cửa sổ & tab: chọn 'Hiển thị tên tiểu sử':

image

Đó là cách nó trông như sau:

thumbnail linked to main image


2
2018-01-24 20:45