Con tmux su OSX, come posso rendere command + k più chiaro con grazia?


20

Quando utilizzo il terminale in OSX, utilizzo spesso + Kper cancellare lo schermo e il buffer di scorrimento. È profondo nella memoria muscolare.

Ho iniziato a armeggiare con tmux e un aspetto negativo è che + Kpulisce l'intero schermo, i riquadri e tutto il resto. Quello che vorrei è che influisse solo sul riquadro focalizzato.

Posso in qualche modo configurare questo comportamento?

Risposte:


21

Configura iTerm2 per inviare il comando clear

Preferenze -> Tasti -> + (aggiungi un nuovo collegamento globale)

  • Scorciatoia da tastiera: ⌘ + k
  • Azione: inviare testo
  • valore:

chiaro \ n

In alternativa, configura iTerm2 per mappare efficacemente ⌘ + k su ctrl + l

  • Scorciatoia da tastiera: ⌘ + k
  • Azione: Invia codice esadecimale
  • valore:

0x0c

In questo modo non vedrai il testo lampeggiare e il comando clear non inquinerà la tua cronologia.


2
Soluzione semplice ed elegante. Grazie amico mio.
Rafael,

Bella soluzione! Hai reso la mia esperienza di tmux molto più piacevole. Grazie :)
Matt Darby,

Solo un avvertimento, questo farà lampeggiare il testo al terminale
Jay

1
Questo è fantastico, ma si basa sul clearcomando e quindi non funzionerà all'interno della console irb o rails.
Robert,

17

Puoi usare prefix+ r, dopo il + K, per ridisegnare la finestra di tmux.

Se riesci a rompere l'abitudine, un normale ctrl+ lfunziona normalmente per riquadro.


3
ctrl + l non è lo stesso di cmd + k perché puoi ancora scorrere verso l'alto e vedere la vecchia storia con ctrl + l. Se ad esempio stai inserendo un registro che riempie rapidamente lo scorrimento indietro cmd + k è inestimabile perché sai esattamente quando sei stato interrotto l'ultima volta. ctrl + l non lo farà per te.
Bjorn,

@BjornTipling ⌘ + K è una funzione dell'emulatore di terminale e non funzionerà all'interno di tmux ... questa associazione è progettata per cancellare lo stdout statico, che non è come tmux, e altri programmi come vim / emacs / weechat / mutt, vengono visualizzati.
esca il

1
+1 per aver rotto l'abitudine, non posso smettere di farlo fino ad oggi. La cosa migliore è digitare clearinvece immagino
zanona,

3

Puoi aggiungere le seguenti righe nel tuo .tmux.conf:

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

Quindi ricaricare il tuo tmux config. Ora puoi usare il tuo tasto bind +k(es. Ctrl+ b, k) Per cancellare il riquadro corrente.

Non conosco la sintassi per OSX ma immagino che tu possa adattare facilmente la linea.


Vedo che C-lcancella lo schermo e clear-historycancella il buffer di scorrimento. Cosa fa la \;parte?
Nathan Long,

funziona sia su @NathanLong
Jay il

3

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

Capito da qui

Puntelli a lui. Questo funziona per me proprio come Cmd+kfunziona sull'emulatore di terminale e funziona per me su macOS 10.12.5 con iTerm2.


Funziona come un incantesimo, anche quando un comando come tail -f ...o un server è in esecuzione!
Derek,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.