Saya sudah terbiasa dengan iTerm2 (atau Terminal.app untuk kasus ini) di OS X. Tapi saya ingin pindah menggunakan tmux (atau layar, tetapi masalahnya mirip dengan kedua aplikasi).
Jadi ide saya adalah untuk memiliki satu tab ITerm dengan sesi tmux dibuka dengan banyak tab. Untuk melakukan transisi, saya memiliki fitur dasar yang perlu saya konfigurasi di tmux: alihkan tab 'n' dengan menggunakan cmd + n (seperti Firefox, Chrome, iTerm2 sendiri, dll)
Namun saya tidak dapat menemukan cara memetakan kunci cmd pada keyboard mac. Saya pertama kali mencoba menerapkan cmd sebagai kunci awalan, tanpa hasil. Saya sudah mencoba pengaturan
set-option -g prefix M-a (hoping for Meta-a)
set-option -g prefix ^a (hoping for ^ to work)
tapi tidak ada yang berhasil. Apakah ini mungkin? Saya tidak benar-benar perlu mengikat awalan ke cmd, tapi saya ingin dapat mengubah tab tmux dengan cmd + n.
Terima kasih
Jawaban:
Anda ingin menjalankan urutan penekanan tombol (pertama
Ctrl-b
, lalu n mulai dari 0 hingga 9).Taruhan terbaik Anda adalah dengan menggunakan utilitas pintasan keyboard seperti Butler atau Keyboard Maestro untuk melakukan ini untuk Anda.
Menggunakan Butler :
Pilih + »Item Cerdas» Tekan tombol, konfigurasikan tombol pintas
Cmd-1
. TekanCtrl-B
, lalu1
untuk penekanan tombol . Konfigurasikan agar hanya valid di Terminal (atau iTerm). Ini akan memperingatkan Anda bahwa aplikasi lain mungkin tidak menyukainya, tetapi Anda sudah tahu itu.Menggunakan Keyboard Maestro :
Buat grup baru di sebelah kiri yang hanya tersedia di Terminal (atau iTerm).
Tambahkan item baru, dipicu oleh Hot Key Trigger (
Cmd-1
) dan tambahkan dua penekanan tombol untuk tindakannya:Ctrl-B
dan1
.Anda mungkin juga ingin melihat topik ini -
Command
meskipun tidak digunakan , dan tidak bekerja untuk saya menggunakan Terminal.Dari dokumentasi tmux :
Mereka tidak mendukung kunci pengubah ketiga.
sumber
Di iTerm2, Anda dapat memetakan pintasan ke kode hex yang dapat dikirim ke terminal. Preferensi Goto iTerm2 -> Tombol. Di Global Shortcut Keys, klik + dan tambahkan ketik pintasan yang Anda inginkan seperti cmd + 1, yang akan ditangkap. Kemudian pilih "Kirim Kode Hex". Pada kotak yang muncul, ketikkan kode hex yang ingin Anda kirim ke tmux dipisahkan oleh spasi. Ctrl-B adalah 0x02, jadi untuk "Ctrl-B 1", ketik "0x02 0x31". Lihat di sini untuk kode hex lainnya: http://www.nthelp.com/ascii.htm
Saya memetakan Cmd dengan h, j, k, l untuk bergerak di antara panel tmux, dan Cmd dengan% dan "untuk membuat splits. Saya mungkin akan melakukan sesuatu yang mirip dengan memindahkan antara vim splits dengan satu kunci kontrol.
sumber
Pintasan khusus dapat dibuat dengan Terminal.app. Saya baru tahu beberapa hari yang lalu, tetapi ini mungkin terjadi sebelum singa.
Pergilah ke Preferensi> Pengaturan dan klik pada tab "Keyboard". Sekarang Anda perlu menambahkan pintasan keyboard baru dengan mengklik ikon plus di bawah kotak. Sekarang Anda ingin mengatur kombo kunci yang "Mengirim string ke shell."
Contoh: Misalkan saya ingin mengatur M-LeftArrow untuk dipetakan
prefix-p
(jendela sebelumnya).Sekarang cukup ketik
prefix-p
ke dalam kotak input di manaprefix
adalah apa pun yang Anda tetapkan untuk tmux (saya menggunakan cntrl-a sehingga kotak ditampilkan\001p
). Perhatikan bahwa jika Anda melakukan kesalahan, hapus karakter akan dimasukkan alih-alih menghapus karakter yang sebenarnya, jadi tekan tombol "Hapus satu karakter" untuk bergerak mundur, jika Anda mengacaukannya.Karakter khusus yang telah saya atur untuk membuat hidup lebih mudah:
Anda juga dapat memodifikasi cntrl-apapun dan menggeser-apa saja, tetapi ingatlah bahwa ini dapat mengganggu $ EDITOR Anda atau program lain, jadi berhati-hatilah tentang fungsi khusus apa yang mungkin dianggap tidak berguna.
Juga, perhatikan bahwa saya tidak tahu cara menduplikasi fungsi ini di iTerm2.
sumber
Anda mungkin juga ingin mempertimbangkan integrasi asli (tetapi sangat eksperimental) yang ditawarkan iTerm2 dengan tmux: http://code.google.com/p/iterm2/wiki/TmuxIntegration
Dengan begitu, ketika Anda menekan Cmd-D untuk membagi layar, iTerm2 akan membagi tab untuk Anda. Ini bagus, karena perpecahan adalah asli, sehingga Anda dapat menyeret tepi di tengah untuk menyesuaikan kembali lebar, atau Anda dapat memilih panel dengan mengklik. Ditto untuk tab / windows baru (tetapi pintasannya sedikit berbeda - jika tidak Anda tidak akan punya cara untuk menambahkan tab non-tmux).
Dan seperti tmux, jika Anda melepaskan dan memasang kembali, semuanya akan disimpan untuk Anda.
Ada dua peringatan: * ini adalah fitur yang sangat eksperimental dan sangat rentan bagi saya. * Anda harus membangun tmux sendiri (menggunakan arsip di suatu tempat di tautan di atas).
-Chris
sumber
cmd+D
membelah panel iTerm2, bukan tmux.tmux -CC
.Anda juga dapat melihat posting blog ini yang memiliki penjelasan yang sangat rinci tentang integrasi tmux / iterm: http://tangledhelix.com/blog/2012/04/28/iterm2-keymaps-for-tmux/
sumber