acme "편집기"에는 다음과 같은 출력을 클릭할 수 있는 훌륭한 기능이 있습니다.
foobar.foo:212
acme는 이 줄 번호에서 파일을 엽니다.
나는 tmux에 이와 같은 지원을 추가하고 싶습니다. (더 이상 그런 것은 존재하지 않는 것 같습니다.)
제가 생각하는 작동 방식은 복사 모드로 들어가서 커서를 한 줄에 놓은 다음 선택한 편집기에서 해당 줄의 해당 파일을 여는 명령을 실행하는 것입니다. 내 질문은 - 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
.