Dengan tmux di OSX, bagaimana saya bisa membuat perintah + k menjadi lebih jelas?


20

Ketika saya menggunakan terminal di OSX, saya sering menggunakan + Kuntuk menghapus layar dan buffer scrollback. Jauh di dalam memori otot.

Saya sudah mulai bermain-main dengan tmux, dan satu keluhan adalah bahwa + Kmenghapus seluruh layar, panel dan semua. Apa yang saya inginkan adalah hanya memengaruhi panel fokus.

Bisakah saya mengkonfigurasi perilaku ini?

Jawaban:


21

Konfigurasikan iTerm2 untuk mengirim perintah yang jelas

Preferensi -> Tombol -> + (tambahkan pintasan global baru)

  • Pintasan keyboard: ⌘ + k
  • Tindakan: Kirim teks
  • nilai:

bersihkan \ n

Atau konfigurasikan iTerm2 untuk memetakan ⌘ + k secara efektif ke ctrl + l

  • Pintasan keyboard: ⌘ + k
  • Tindakan: Kirim Kode Hex
  • nilai:

0x0c

Dengan cara ini Anda tidak akan melihat teks berkedip dan perintah yang jelas tidak akan mencemari riwayat Anda.


2
Solusi sederhana dan elegan. Terimakasih temanku.
Rafael

Solusi indah! Anda telah membuat pengalaman tmux saya jauh lebih menyenangkan. Terima kasih :)
Matt Darby

Hanya peringatan, ini akan mem-flash teks ke terminal
Jay

1
Ini bagus, tetapi bergantung pada clearperintah dan karenanya tidak akan berfungsi saat di dalam irb atau rails console.
Robert

17

Anda dapat menggunakan prefix+ r, setelah + K, untuk menggambar ulang jendela tmux.

Jika Anda dapat menghentikan kebiasaan itu, ctrl+ yang normal lberfungsi normal per panel.


3
ctrl + l tidak sama dengan cmd + k karena Anda masih dapat menggulir ke atas dan melihat riwayat lama dengan ctrl + l. Jika Anda mengekor log, misalnya, yang dengan cepat mengisi kembali gulir Anda, cmd + k sangat berharga karena Anda tahu persis kapan terakhir kali Anda tinggalkan. ctrl + l tidak akan melakukan ini untuk Anda.
Bjorn

@BjornTipling ⌘ + K adalah fitur emulator terminal, dan tidak akan bekerja di dalam tmux ... mengikat ini dirancang untuk menghapus stdout statis, yang bukan bagaimana tmux, dan program-program lain seperti vim / emacs / weechat / mutt, sedang ditampilkan.
demure

1
+1 untuk menghentikan kebiasaan itu, saya tidak bisa berhenti melakukannya sampai hari ini. Yang terbaik adalah mengetik, clearsaya kira
zanona

3

Anda dapat menambahkan baris berikut di .tmux.conf:

# clear the current pane
bind -n C-k send-keys C-l \; clear-history

Kemudian muat ulang konfigurasi tmux Anda. Sekarang Anda dapat menggunakan kunci ikat Anda +k(misalnya: Ctrl+ b, k) untuk menghapus panel saat ini.

Saya tidak tahu sintaks untuk OSX tapi saya kira Anda dapat dengan mudah menyesuaikan garis.


Saya melihat bahwa C-lmembersihkan layar dan clear-historymenghapus buffer scrollback. Apa yang dilakukan \;bagian itu?
Nathan Long

ini menjalankan @NathanLong
Jay

3

bind -n C-k send-keys -R \; send-keys C-l \; clear-history

Dapat ini dari sini

Alat peraga untuknya. Ini bekerja untuk saya sama seperti Cmd+kbekerja pada terminal emulator, dan bekerja untuk saya di macOS 10.12.5 dengan iTerm2.


Bekerja seperti jimat, bahkan ketika perintah suka tail -f ...atau server sedang berjalan!
Derek
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.