ワンクリックでtmuxとzshの履歴を消去するには?

ワンクリックでtmuxとzshの履歴を消去するには?

tmux clear-historyワンクリックの組み合わせでtmux履歴()とzsh()を消去する方法は?zle clear-screen

画面を消去する一般的な方法は、^L以下を追加することです.tmux.conf

bind -Troot C-l send-keys C-l\; clear-history

だから^L画面を消去し、最後の画面を除くほぼすべての記録を消去します。

次に起こったことが^Lすべてを教えてくれます。

ワンクリックの組み合わせで同じ効果が得られますか?

bind -Troot C-l send-keys C-l\; clear-history\; send-keys C-l\; clear-history

動作しません。次のいずれも起こりません。

bind -Troot C-l send-keys C-l C-l\; clear-history

答え1

努力する:

bind -n C-k clear-history

これは ctrl-k を tmuxclear-history コマンドにバインドします。 -nバインディング後にtmuxコマンドプレフィックス(デフォルトではCtrl-b)を実行する必要はありません。私はbashを使用しているので、ctrl-lはすでにコマンドラインに「clear」と入力するのと同じです。これら2つのキーを使用すると、すべてのスクロールバッファを画面外に移動し(「clear」)、すべての履歴を削除する(tmux「clear History」コマンド)、素晴らしいctrl-l、ctrl-kの組み合わせを取得できます。

また、send-keys -Rリセット(消去)画面も実行します。

bind-key b send-keys -R \; clear-history

これにより、画面とスクロールバックバッファがクリアされます。

答え2

私は結局別の方法で仕事をしましたzsh

# ~/.zshrc
clear-scrollback-and-screen () {
  zle clear-screen
  tmux clear-history
}
zle -N clear-scrollback-and-screen
bindkey -v '^L' clear-scrollback-and-screen

1つの理由は、VimにClマップがあることがありますが、このマップをタップするとVim画面が消去されることがあります。

しかし、このソリューションには欠点があります。これはシェルでのみ機能することです。

答え3

GUIソリューション:

  • GNOMEでは、カスタムコマンド/スクリプトを実行するためのカスタムキーボードショートカットを設定できます。この記事どうするか説明してください

  • KDEでは、カスタムコマンド/スクリプトを実行するためのカスタムキーボードショートカットを設定することもできます。この記事どうするか説明してください

住宅ソリューション:

シェルエイリアスと関数を使用してこのコマンドを実装できます。~/.zshrc

たとえば、次を追加して~/.zshrcシェルを再起動します。

c() {
   tmux clear-history
   clear-history
   clear
   reset
}

alias cc='clear'

cその後、またはcc(コマンドで)を使用して目的の操作を実行できます。

関連情報