acme "エディタ"には、次の出力をクリックするための優れた機能があります。
foobar.foo:212
acmeはこの行番号でファイルを開きます。
私はtmuxにこのようなサポートを追加したいと思います。 (もはやそのようなものは存在しないようです。)
私が考えているのは、コピーモードに入り、カーソルを1行に置き、選択したエディタでその行の対応するファイルを開くコマンドを実行することです。私の質問は - tmuxをフォークしないと、このようなものを実装できないと思います。誰でもどんな提案がありますか?
答え1
私はacmeを使用しませんが、Emacsを使用します。 Emacsでは、openにファイル名を渡すことができます+<LINE_NUM> <FILENAME>
。例: +13 ~/HINTS
.私のファイルに以下を追加しました~/.tmux.conf
。
bind C-e run "tmux save-buffer - | xargs emacs"
これで、+1 ~/HINTS
端末で作成し、コピーモードに入り、文字列をコピーしてから、C-b C-e
Emacsを使用してファイルの行1を開くことができます。~/HINTS
答え2
send-keys
in を直接使用することはできませんが、copy-mode
次のことができます。
bind-key O send-keys space e enter \; new-window open-at-line \: paste-buffer \; send-keys enter
次に、コピーモードでの最初の文字にカーソルを置き、をクリックしfilename:line
ます<prefix> O
。
これにより、ファイル名と行番号(send-keys space e enter
)がコピーされ、コマンドを使用して新しいウィンドウが開きます。open-at-line
これはシェルスクリプトです。
#!/usr/bin/env zsh
read combo
eval `vim ${combo:s/:/ -c :/}`
filename:line
で結合された内容をpaste-buffer
取得してに渡しますvim
。