Terminal: Kemampuan untuk mengganti nama judul Tab saat runtime

Dibuat pada 31 Mei 2019  ·  56Komentar  ·  Sumber: microsoft/terminal

Tab adalah fitur yang sangat berguna, tetapi saat Anda membuka lebih banyak tab, menjadi sulit dan membingungkan untuk melacak tab mana yang untuk tujuan apa kecuali Anda tab. Akan lebih baik jika kita dapat mengganti nama Tab dan memberinya nama yang ramah.

Cara kita dapat mengimplementasikan penggantian nama tab dari sudut pandang fungsional adalah:

1 - Klik kanan -> Ganti nama

Klik kanan pada tab yang ingin diubah namanya oleh pengguna, ini akan membuka menu konteks dan dari Menu konteks, pengguna akan memilih Ganti Nama.

Judul tab akan berubah menjadi TextBox, dan pengguna akan dapat menulis nama Tab, dan menekan tombol enter pada keyboard atau mengklik di mana saja di luar kotak teks akan menerapkan judul tab. Jika pengguna menekan tombol ESC, kami akan membuang perubahan.

image

2 - Klik dua kali - judul tab

Judul tab akan berubah menjadi TextBox, dan pengguna akan dapat menulis nama Tab, dan menekan tombol enter pada keyboard atau mengklik di mana saja di luar kotak teks akan menerapkan judul tab. Jika pengguna menekan tombol ESC, kami akan membuang perubahan.

Hasil akhir akan terlihat seperti:

image

Area-User Interface Issue-Feature Product-Terminal Resolution-Fix-Committed

Komentar yang paling membantu

Perhatikan bahwa Anda juga dapat mengatur judul dari baris perintah dengan title "new title" di cmd dan $Host.UI.RawUI.WindowTitle = "new title" di PowerShell

Semua 56 komentar

Tidak bisakah nama Profil digunakan untuk judul tab secara default, tetapi mungkin opsi untuk menampilkan jalur?

Jalur biasanya ada di kemegahan, jadi tidak yakin dibutuhkan di keduanya.

Path ada di sana karena shell memiliki _put_ di sana. Untuk diskusi tentang itu dan manfaat gelar, #608. Ini adalah pertanyaan yang sedikit berbeda.

Tidak bisakah nama Profil digunakan untuk judul tab secara default, tetapi mungkin opsi untuk menampilkan jalur?

Jalur biasanya ada di kemegahan, jadi tidak yakin dibutuhkan di keduanya.

Profil hanya menunjukkan CMD atau PowerShell.. tetapi yang saya usulkan adalah dapat mengganti nama Tab dengan nama yang ramah.

Saya cukup yakin ini adalah bagian dari salah satu solusi yang saya usulkan di utas itu:

Jika kami menggunakan hanya 2 mode, kami dapat melakukannya dengan dua cara yang mungkin:

  1. Tambahkan string titleText:string opsional ke profil. Jika itu disetel, maka kami akan menampilkan string itu alih-alih judul terminal.

    • ini memiliki kelemahan karena tidak default ke nama profil. Pengguna secara manual perlu mengatur string itu.

    • jika nama profil berubah, maka pengguna juga harus mengubahnya secara manual.

    • mungkin tidak terlalu jelas bahwa titleText berarti kita akan menggunakannya sebagai ganti judul terminal, tetapi idealnya pengaturan UI akan menjelaskan hal ini dengan lebih baik, dan kunci sebenarnya tidak terlalu penting.

Tidak bisakah nama Profil digunakan untuk judul tab secara default, tetapi mungkin opsi untuk menampilkan jalur?
Jalur biasanya ada di kemegahan, jadi tidak yakin dibutuhkan di keduanya.

Profil hanya menunjukkan CMD atau PowerShell.. tetapi yang saya usulkan adalah dapat mengganti nama Tab dengan nama yang ramah.

Mengganti nama tab akan menyiratkan nama itu ada sampai tab itu ditutup. Saran saya adalah mengizinkan profil memiliki nama yang dipilih oleh pengguna

Padahal, saya kira saya membiarkan ini terbuka untuk melacak secara khusus menambahkan tombol ke menu klik kanan tab untuk mengatur TitleText profil.



eh, sekarang setelah saya mengetik ini, mungkin kita harus memiliki teks runtime yang kita modifikasi. Saya sedang berpikir dalam kasus di mana pengguna memiliki banyak tab dengan profil yang sama terbuka. Jika pengguna ingin mengganti nama salah satu tab, mereka mungkin tidak ingin nama tersebut diterapkan secara global ke setiap tab dengan profil tersebut. Mereka mungkin hanya ingin mengganti nama tab _one_ itu.

Jadi ini harus melibatkan pengaturan bendera pada Tab yang menggunakan judul runtime sebagai lawan dari judul dari kontrol, dan kita harus mengabaikan semua perubahan judul dari kontrol. Jika setelan judul profil diubah, kami juga akan mengabaikannya.

Meskipun pertanyaan di sini adalah apakah string khusus itu berlaku untuk Tab atau Panel yang difokuskan? Saya mungkin menganggap itu akan berlaku untuk Tab, bukan Panel.

@zadjii-msft itu harus berlaku untuk tab. Juga jika itu menghapus teks, itu harus mengatur flag runtime ke false. Ini juga akan mengaktifkan tab untuk mulai menggunakan nama profil.

@carlos-zamora ingin mengerjakan tindakan tab, dan saya pikir ini cukup cocok. Dia bahkan menyarankannya! Jadi inilah kesepakatannya: jelas ada tiga aliran pemikiran yang berbeda di sini mengenai judul, jadi sekarang ini Spec Needed . :senyum:

@carlos-zamora ingin mengerjakan tindakan tab, dan saya pikir ini cukup cocok. Dia bahkan menyarankannya! Jadi inilah kesepakatannya: jelas ada tiga aliran pemikiran yang berbeda di sini mengenai judul, jadi sekarang ini Spec Needed . 😄

YA! Saya sangat menginginkan fitur ini. Jelas pertanyaan tentang bagaimana ini berinteraksi dengan shell/distro yang mengirim judul ke tab (#608). Saya juga memperhatikan bahwa tindakan melayang harus disertakan dalam hal ini (yaitu: melayang di atas tab menampilkan jalur lengkap di bawah mouse [coba di Edge]). @cinnamon-msft dan saya akan segera menyusun spesifikasi. Kami sangat bersemangat!

Supr. Beri tahu saya bagaimana saya bisa sebagai pengembang berkontribusi.

Perhatikan bahwa Anda juga dapat mengatur judul dari baris perintah dengan title "new title" di cmd dan $Host.UI.RawUI.WindowTitle = "new title" di PowerShell

Kita harus menggunakan #608 untuk melacak masalah pemberian judul tab. Terima kasih!

Perhatikan bahwa Anda juga dapat mengatur judul dari baris perintah dengan title "new title" di cmd dan $Host.UI.RawUI.WindowTitle = "new title" di PowerShell

Sangat membantu! Saya menambahkan fungsi ke Profil Powershell saya agar saya dapat mengaturnya dengan lebih mudah:

function Set-Title {
    param(
        [string]
        $title
    )
    $Host.UI.RawUI.WindowTitle = $title   
}

Perhatikan bahwa Anda juga dapat mengatur judul dari baris perintah dengan title "new title" di cmd dan $Host.UI.RawUI.WindowTitle = "new title" di PowerShell

Saat menjalankan tugas npm, seperti npm run serve , judulnya akan menjadi npm .

Cara sederhana untuk menetapkan nama untuk tab yang terbuka akan sangat berguna untuk membuatnya lebih berguna. Dengan beberapa tab PowerShell terbuka, saya merasa sulit untuk mengetahui yang mana yang saya coba kerjakan.

@greggbjensen pakai fungsi atau alias seperti komentar tvsbrent di atas

@ phuclv90 klik kanan untuk mengatur nama dengan cepat masih akan jauh lebih cepat dan lebih sederhana. Tampaknya diperlukan jika Anda berencana memiliki banyak tab. Kemampuan untuk mengatur warna tab juga akan menjadi tambahan yang bagus.

Akan sangat menyenangkan untuk dapat mengganti nama tab hanya dengan mengklik dua kali dan mengatur judul baru di semacam kotak teks. Nama ini menggantikan judul asli dan tetap sampai tab ditutup atau diganti namanya lagi.

Awalnya diposting oleh @Vasiliy-Bondarenko di #3387

Perkenankan untuk mengganti nama tab dengan nama yang ramah dengan mudah dari UI, ini adalah salah satu fitur yang saya gunakan terus-menerus dengan ConEmu dan salah satu alasan saya belum beralih ke Terminal Windows, karena tidak cukup praktis ketika Anda memiliki banyak "well dikenal" tab dibuka tetapi tidak dapat mengetahuinya dengan mudah ini di Terminal Windows

Baru saja mengetahui bahwa saya setidaknya dapat mengatasi judul di WSL dengan fungsi yang ditambahkan ke .bashrc yang dapat dipanggil dari Prompt misalnya title "my title" :

title() {
    PS1="\[\e]0;${debian_chroot:+($debian_chroot)}$1\a\]\[\033[01;34m\]\w\[\033[00m\]> "
}

Itu sebenarnya bukan _solusi_, itu cara terbaik dan paling fleksibel dan kuat untuk mengatur judul hampir semua jendela terminal. Itu bisa dinamis, bekerja melalui SSH, dan dapat menggabungkan hal-hal yang hanya tersedia di host jarak jauh.

Saya memodifikasi solusi yang diposting oleh @xoofx untuk tidak mengubah Prompt di terminal itu sendiri:

title() {
    PS1="\[\e]0;$* \a\]${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ "
}

Kelihatannya agak jelek, tetapi jika Anda memasukkannya ke dalam ~/.bashrc , Anda akan dapat memanggil title <title_text> dan itu akan mengatur judul tab/jendela, tetapi tidak akan mengacaukannya perintah default.

Di iTerm di Mac saya bisa melakukan ini dan itu sangat berguna. Saya juga dapat mengatur warna tab yang cukup bagus.

Saya hampir secara eksklusif menggunakan Ubuntu WSL di Terminal Windows, dan semua tab saya menunjukkan " myname@mycomputer/c/g " di mana "g" adalah huruf pertama dari direktori root tempat semua proyek saya berada. Itu sama sekali tidak berguna bagiku. Tidak diragukan lagi ada beberapa cara untuk mengubahnya, tetapi cara yang mudah digunakan akan menyenangkan.

:))) Saya menggunakan WSL. Saya ingin mengganti nama tab "monitor saya", saya menggunakan: "monitor saya ; source run.sh"

Strategi @quanticle di atas sangat bagus untuk terminal lokal, tetapi segera setelah Anda ssh ke server yang berbeda, itu mengatur ulang PS1 dan Anda kehilangan gelar Anda. Jadi akan sangat menyenangkan untuk dapat menetapkan label yang persisten.

Strategi @quanticle di atas sangat bagus untuk terminal lokal, tetapi segera setelah Anda ssh ke server yang berbeda, itu mengatur ulang PS1 dan Anda kehilangan gelar Anda. Jadi akan sangat menyenangkan untuk dapat menetapkan label yang persisten.

Agar adil, @quanticle 's solusi yang _even lebih baik (!) _ Jika Anda memasangnya pada remote server juga! Dengan begitu, judul jendela dapat mencerminkan _server mana yang sedang Anda akses_, dan shell dapat memasukkan informasi dinamis apa pun yang akan melekat pada sesi jarak jauh. Itu adalah sesuatu yang menimpa judul tab lokal yang _never_ dapat capai, bahkan jika itu diterapkan dengan sempurna.

@DHowett-MSFT Itu akan benar jika Anda ingin judul mencerminkan "server mana Anda berada", tetapi tidak harus jika Anda ingin judul mencerminkan sesuatu seperti "tugas". Jadi saya mungkin menggunakan beberapa server yang sama, tetapi untuk tugas yang berbeda, dan ingin menyimpan tugas-tugas itu di tab terminal yang berbeda...

Sekarang, ini adalah alasan terakhir dan satu-satunya mengapa saya tidak dapat memilih wt sebagai alat terminal utama di windows.
:(

Itu sebabnya Terminal Windows juga tidak berguna bagi saya, saya berakhir dengan banyak tab bernama node, dan tidak dapat mengubahnya (bahkan setelah mencoba mengubah melalui json, dan menggunakan title dan solusi lainnya).

Saya berakhir dengan banyak tab bernama node,

Oke sekarang itu contoh skenario yang cukup bagus yang _membutuhkan_ ini, dan hanya mengatur judul dari shell tidak akan diperbaiki. Terima kasih untuk umpan baliknya!

Ini bisa membantu:

set PROMPT=$e]0;$p$e$p$g

https://github.com/microsoft/terminal/issues/2304#issuecomment -528319270

Bagi saya tugas ini setara dengan cmder/etc. Saya sering membuka banyak proyek di folder bin atau yang serupa sehingga dapat menerapkan label khusus akan sangat membantu.

Kasus penggunaan lain adalah untuk berinteraksi melalui SSH untuk mendapatkan nama dari variabel lingkungan linux dan menggabungkannya dengan bagian terakhir dari jalur direktori, contoh nama tab:
$PROJECTROOT $CONFIG src/path/to/dir
(dan kemudian memangkas awal jalur, mengetahui direktori saya berada di suatu tempat di bawah/pengguna/nama pengguna kurang berguna daripada mengetahui akhir jalur)

Ini juga harus dapat dikonfigurasi dari baris perintah.

Jadi ketika kita melakukan sesuatu seperti:

wt.exe -p "profil1"

Kita harus dapat menambahkan argumen yang menentukan nama tab, seperti:

wt.exe - "profile1" -nama "nama untuk tab 1"

Ini tentu saja akan bekerja dengan setiap "tab baru" pada baris perintah juga.

Terima kasih.

@mfeemster terima kasih atas sarannya! Saya telah menambahkan itu ke daftar mega pekerjaan yang kami lacak untuk argumen baris perintah di #4632:

  • [ ] Tambahkan dukungan untuk -t,--title title untuk mengatur judul awal sesi terminal baru (tambahkan ke terminal_parameters )

omong-omong, jika menambahkan fitur ini, lebar tab jendela juga harus dipertimbangkan.
lebar tetap karena 16-char membuang terlalu banyak ruang untuk nama pendek, juga menyembunyikan info penting untuk nama panjang.

Saya menyarankan :

  • lebar tab harus 4-char hingga 24-char, sesuaikan otomatis dengan nama tab.
  • dan hapus ruang kosong kepala/ekor.
  • jika tidak ada ikon yang disetel, hapus juga spasi.
  • tambahkan opsi konfigurasi untuk menonaktifkan tombol tutup "X" . hanya mendukung penutupan menu klik kanan.

putty-tab
menghemat lebih banyak ruang untuk informasi nyata. 😃

@fanlix Anda akan senang mengetahui bahwa permintaan Anda sebagian besar sudah dilacak oleh

  • #597 - Opsi ukuran tab lainnya selain equal dan sizeToContent
  • #3327 - Opsi bertema, termasuk menghapus 'X'

Perhatikan bahwa Anda juga dapat mengatur judul dari baris perintah dengan title "new title" di cmd dan $Host.UI.RawUI.WindowTitle = "new title" di PowerShell

Ini hanya untuk mengganti nama konsol.
Tetapi tujuan dari permintaan asli ini adalah untuk mengganti nama tab di dalam konsol.
Harap diingat ini :)

Ini hanya untuk mengganti nama konsol.
Tetapi tujuan dari permintaan asli ini adalah untuk mengganti nama tab di dalam konsol.
Harap diingat ini :)

Anda harus menyadari bahwa mengubah judul "konsol", ketika konsol di-host di tab, _mengubah judul tab_. :senyum:

Anda harus menyadari bahwa mengubah judul "konsol", ketika konsol di-host di tab, _mengubah judul tab_. 😄

Ya kamu benar. :-)
Saya tidak memperhatikan cara ini diterapkan karena itu juga mengganti nama nama konsol ...

Bahkan, nama tab yang saat ini Anda fokuskan menjadi judul konsol di bilah tugas.
Dan sebagai akibatnya, jika Anda bekerja dengan beberapa konsol secara paralel (didedikasikan untuk beberapa tugas dengan daftar tab jarak jauh yang berbeda), nama konsol tidak stabil dan Anda harus mencari lagi: "Di konsol mana tab saya?"

Di ISE ini dipisahkan.
Anda memiliki nama konsol di bilah tugas:

$Host.UI.RawUI.WindowTitle = "new title"

dan untuk nama tab di dalam konsol yang Anda miliki:

$psISE.CurrentPowerShellTab.DisplayName = "tab title"

Satu masalah dengan $Host.UI.RawUI.WindowTitle = "new title" adalah jika saya menjalankan npm run dev , judul tab berubah menjadi npm

Cmder melakukannya dengan baik.

Ini adalah ide yang sempurna untuk pelacak produktivitas saya yang menggunakan nama tab. Akan luar biasa untuk mengotomatiskannya di runtime. Pekerjaan saya di sekitar:
(Saya mendapatkan pembaruan setiap kali saya menghapus konsol yang banyak

## UI
    $pIcon = "💥"
    $tIcon = "😍"
      function trloc ($pth){
        $pwd -replace [regex]::Escape($HomeDir), $pth
      }

  # Comand line
    function prompt {
      (trloc($pIcon)) + "💁‍"
    }

  # Tab - Window - Title - Name as actual path (Shorted because I'am using ManicTime to track my productivity)
    function tabName { $Host.UI.RawUI.WindowTitle = trloc($tIcon) }
    function c { tabName; Clear-Host }

Ini adalah ide yang sempurna untuk pelacak produktivitas saya yang menggunakan nama tab. Akan luar biasa untuk mengotomatiskannya di runtime. Pekerjaan saya di sekitar:
(Saya mendapatkan pembaruan setiap kali saya menghapus konsol yang banyak

## UI
    $pIcon = "💥"
    $tIcon = "😍"
      function trloc ($pth){
        $pwd -replace [regex]::Escape($HomeDir), $pth
      }

  # Comand line
    function prompt {
      (trloc($pIcon)) + "💁‍"
    }

  # Tab - Window - Title - Name as actual path (Shorted because I'am using ManicTime to track my productivity)
    function tabName { $Host.UI.RawUI.WindowTitle = trloc($tIcon) }
    function c { tabName; Clear-Host }

Hai. Tolong, pelacak mana yang Anda gunakan?

Hai. Tolong, pelacak mana yang Anda gunakan?

ManicTime
Sekarang di linux adalah ActivityWatcher juga baik-baik saja, saya berharap itu akan tumbuh lebih cepat :)

Powershell hanya membantu jika itu yang Anda jalankan. Saat menjalankan terminal ssh dengan openssh, akan menyenangkan untuk mengganti nama tab untuk mengetahui Host mana yang saya gunakan. Ini mengambil Host pertama yang Anda dapatkan kemudian setelah itu yang ditampilkannya, tetapi jika Anda mengubah server, itu tidak diperbarui. Saya akan menyukai opsi r-klik untuk mengganti nama, atau bahkan beberapa variabel lingkungan yang dapat saya atur akan diambil.

Maksud saya, itu hanya sesuatu yang dapat Anda konfigurasikan di server tersebut. :)

Anda mengatakan bahwa ketika kita berbicara lebih dari 1000 server. Saya mencoba ini melalui xshell, dan saya memiliki Host benteng tempat saya melompat, dan mencari cara mudah untuk melacak nama server. Dengan xshell ini dilakukan dengan skrip yang saya gunakan untuk mengaturnya secara internal.

Meskipun saya bermain dengan printf \033]0; dan tampaknya melakukan apa yang saya butuhkan.

: tada: Masalah Windows Terminal Preview v1.1.1671.0 .:tada:

Tautan praktis:

Wow.. Selamat tim :D Maaf, saya tidak banyak berpartisipasi di thread.. tapi saya mengikutinya dengan cermat. Ini memberi saya wawasan yang bagus tentang bagaimana Microsoft merencanakan fitur.. Saya selalu mempercayai Microsoft.. tetapi proses ini memberi saya semacam jaminan bahwa fitur dipikirkan secara detail.. dan dengan kualitas dalam pikiran.. fitur kecil seperti ini bagaimana itu bisa diubah menjadi fitur hebat adalah apa yang benar-benar diajarkan oleh utas ini.

Ya, selamat untuk tim.

Saya melewatkan satu hal, dapat mengklik dua kali di tab untuk mengganti namanya, apakah fitur itu direncanakan?

Harus dapat mengatur pengikatan kunci untuk penggantian nama tab (F2 secara default masuk akal?)

@Inrego Anda cukup klik kanan pada tab untuk mengganti namanya. Pintasan KB menurut saya sebagai sesuatu yang diperlukan untuk tindakan yang sering Anda lakukan, jadi Anda tidak ingin menggunakan mouse. Tetapi seberapa sering Anda benar-benar mengganti nama tab saat bekerja? Saya pikir menu klik kanan sudah cukup. Hanya 2 sen saya.

@mfeemster aplikasi konsol menurut saya sebagai sesuatu yang seharusnya tidak memerlukan mouse untuk beroperasi.

Selain itu, saya ingin mengotomatiskan tab penamaan di pengelola kata sandi saya saat masuk ke server.
Untuk saat ini, saya telah menyiasatinya dengan menggunakan palet perintah untuk membuka tab baru dengan nama yang diinginkan. tapi itu tidak ideal.

Ada pintasan KB untuk membuka tab baru. Saya berpendapat bahwa mengganti nama tab bisa menjadi tindakan yang dilakukan lebih sering daripada membuka tab. Atau ada juga shortcut KB untuk menutup semua tab. Juga tindakan yang lebih jarang dilakukan. Hanya karena Anda jarang mengganti nama tab, tidak berarti Anda dapat berasumsi bahwa itu adalah tindakan yang langka untuk semua orang. Apa yang ingin saya katakan, seharusnya tidak menjadi alasan untuk menerapkannya atau tidak, karena sangat subjektif dan bervariasi dari orang ke orang.

Harus dapat mengatur pengikatan kunci untuk penggantian nama tab (F2 secara default masuk akal?)

Anda dapat melakukan ini dengan pengikatan kunci untuk renameTab , tetapi saat ini Anda hanya dapat membuat hardcode sebuah judul. Ada PR terbuka (#7462) yang menambahkan openTabRenamer . Kita perlu kembali ke PR terbuka itu.

Itu yang saya butuhkan, terima kasih. Saya akan mengikuti PR itu

Apakah halaman ini membantu?
0 / 5 - 0 peringkat