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?

Nathan Long
sumber

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.

George Yacoub
sumber
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.

pendiam
sumber
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.

xaa
sumber
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.

Enrico Borba
sumber
Bekerja seperti jimat, bahkan ketika perintah suka tail -f ...atau server sedang berjalan!
Derek