วิธีการเปลี่ยนชื่อเทอร์มินัลชื่อเทอร์มินัล ZSH บนเดเบียน


14

ผมไม่ทราบว่าผมควรจะขอได้ที่นี่หรือที่ unix.stackexchange.com ผมพบว่าคำถามนี้ที่นี่

คำถามของฉันคือคล้ายผมต้องการที่จะเปลี่ยนชื่อของสถานีที่ฉันใช้ distro Debian ตาม Terminator และ ZSH โอ้ฉัน-zsh ชื่อถูกปรับด้วยทุบตี แต่เมื่อผมย้ายไป ZSH มันแสดงให้เห็นว่า/bin/zshเป็น หัวข้อ.


@ DaniëlW.Cromptonจริงเหรอ? มันคือล่อ? ถ้าเป็นเช่นนั้นฉันจะปิดมันตอนนี้ฉันเชื่อมโยงกับคำถามนั้นฉันรู้ว่ามันอยู่ที่นั่น แต่ไม่รู้ว่ามันเป็นคนหลอกลวงเพราะฉันใช้ระบบปฏิบัติการและอีมู
เลเตอร์อื่น

คุณลองทำสิ่งที่ได้รับคำแนะนำในคำถามที่คุณเชื่อมโยงหรือไม่?
Daniël W. Crompton

2
@ DaniëlW.Cromptonใช่echo -ne "\e]1;this is the title\aและecho -ne "\e]1;$PWD\a"ไม่ให้ข้อผิดพลาด แต่ใช้งานไม่ได้ฉันพยายามยกเลิกการเลือกทั้งหมดยกเว้นกรณีที่ฉันทำบางสิ่งบางอย่างขาดหายไป
Lynob

1
คุณลอง echo -ne "\ e] 0; $ PWD \ a" ด้วย 0 แทนที่จะเป็น 1 หรือไม่?
Daniël W. Crompton

คำตอบ:


13

คุณตั้งค่าชื่อหน้าต่างของคุณด้วยลำดับหนี xtem ในการใช้งานส่วนใหญ่ครั้งแรกจะดีที่สุด:

echo -en "\e]0;string\a" #-- Set icon name and window title to string
echo -en "\e]1;string\a" #-- Set icon name to string
echo -en "\e]2;string\a" #-- Set window title to string

แก้ไข: ข้างต้นตั้งชื่อเพียงครั้งเดียว ในการตั้งค่า zsh ให้แสดง sting ในชื่อเรื่องที่คุณเพิ่มต่อไปนี้.zprofileในไดเรกทอรีบ้านของคุณ:

case $TERM in
    xterm*)
        precmd () {print -Pn "\e]0;string\a"}
        ;;
esac

2
ฉันกล่าวก่อนหน้านี้echo -ne "\e]0;$PWD\a"ผลงาน แต่เมื่อฉันออกจากเปลือกมันหยุดทำงาน ... ผมพยายามที่คุณพิมพ์ในคำตอบและฉันจะได้รับzsh: command not found: stringaและzsh: command not found: e]1และอื่น ๆ ทั้งหมดของพวกเขา
Lynob

1
อัปเดตคำตอบ
Daniël W. Crompton

ในการแทนที่โฮมไดเรกทอรีภายใน $ PWD ด้วย~ฉันใช้precmd () {print -Pn "\e]0;${PWD/$HOME/\~}\a"}(เชลล์ Z)
Maksym Ganenko

13

ต่อไปนี้ทำงานให้ฉันเปลี่ยนชื่อแต่ละแท็บใน gnome-terminal ฉันเพิ่มรหัสต่อไปนี้ไปยังไฟล์~ / .zshrcของฉัน

precmd () { print -Pn "\e]0;$TITLE\a" }
title() { export TITLE="$*" }

สิ่งนี้จะสร้างฟังก์ชั่นไตเติ้ลเพื่อเปลี่ยนชื่อแต่ละแท็บ

หมายเหตุหากคุณใช้oh-my-zshคุณจะต้องปิดการใช้งานคำสั่งอัตโนมัติ คุณสามารถทำได้โดยยกเลิกหมายเหตุบรรทัดนี้ในไฟล์~ / .zshrcของคุณ:

DISABLE_AUTO_TITLE="true"

5
DISABLE_AUTO_TITLE = "จริง" ได้ทำการหลอกลวงสำหรับฉัน ขอบคุณ.
Rakesh Gopal

4

สิ่งนี้จะทำงานได้โดยไม่คำนึงถึงเชลล์ที่ใช้:

printf "\033];%s\07\n" "hello world"

2

คำตอบก่อนหน้านี้ไม่ได้ผลสำหรับฉัน ไม่ใช่โดยไม่มีอาการสะอึก (ไม่รีเฟรชเสมอหรือบางสิ่ง) อาจเป็นเพราะฉันมี ZSH ไม่oh-my-zshได้ โชคดีที่ฉันเรียนรู้chpwdดังนั้น:

chpwd() {
  [[ -t 1 ]] || return
  case $TERM in
    sun-cmd) print -Pn "\e]l%~\e\\"
      ;;
    *xterm*|rxvt|(dt|k|E)term) print -Pn "\e]2;%~\a"
      ;;
  esac
}
  1. chpwd ได้รับการเรียกทุกครั้งที่มีการเปลี่ยนแปลงไดเรกทอรี
  2. ครั้งแรกที่คุณเปิดตัว xterm (หรืออื่น ๆ ) สิ่งนี้จะไม่นับเป็นการเปลี่ยนแปลงไดเรกทอรีดังนั้นให้วางสาย chpwd โดยตรง .zshrc

เนื่องจากฉันไม่ได้ใช้oh-my-zshฉันไม่ทราบว่าทำงานได้หรือไม่ แต่หากพวกเขาเปลี่ยนและเขียนทับchpwd(ในกรณีนี้คุณจะเขียนทับทับของพวกเขา: D) ก็ควร


-1

คุณสามารถสร้างใบที่นำขึ้นหน้าต่างและตั้งชื่อให้เป็นสิ่งที่คุณต้องการ เรียกใช้งานสคริปต์เพื่อเปิดหน้าต่างพร้อมชื่อของคุณ นอกจากนี้คุณยังสามารถกำหนดตำแหน่ง X, Y และขนาดของหน้าต่าง คุณสามารถสร้างหน้าต่างได้หลายหน้าต่างและมีชื่อสำหรับทุกโอกาส


//, มีอะไรพิเศษมากกว่านี้อีกไหม?
Nathan Basanese

เป็นเวลากว่า 12 ปีแล้วที่ฉันเขียนสคริปต์เหล่านั้น ฉันไม่ต้องการที่จะให้ข้อมูลที่ไม่ดี แต่ฉันคิดว่าทั้งหมดนั้นทำโดยใช้ตัวเลือกของ xterm ตรวจสอบหน้า MAN สำหรับ xterm สำหรับข้อมูลเพิ่มเติม ฉันอาจมีสคริปต์อยู่ที่ไหนสักแห่ง แต่ฮาร์วีย์ทิ้งดิสก์เก่าทั้งหมดไว้ในกองซึ่งถูกทิ้งไว้เพื่อกำจัดมันออกไปให้พ้นอันตราย เมื่อการซ่อมแซมเสร็จสมบูรณ์ฉันอาจสามารถอัปเดตสิ่งนี้ได้
cliff2310
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.