tmux:如何在光标下打开文件

div*_*mod 5 vim zsh sh tmux tmuxinator

我是一个 vim 用户并且习惯了这个gf命令,它在光标下打开文件。

现在我想问一下,tmux 是否有类似的东西。

我可以浏览 tmux 窗格,并且经常发生光标下有文件路径的情况。现在我喜欢有可能用 vim 在光标下打开那个文件。

  • A:在当前窗口
  • B: 在另一个包含并打开 vim 的窗口中

在调用特殊键组合时,也许有可能在该导航模式下运行 sh 脚本?这将使我可以像在 vim 中使用 vimscript 一样编写自己的脚本。

我已经在 mux .tmux.conf 中使用了一些 vi 复制模式

# VIM
# ===================================================================

# Vimlike copy mode.
unbind [
bind Escape copy-mode
unbind p
bind p paste-buffer
bind -t vi-copy 'v' begin-selection
bind -t vi-copy 'y' copy-selection

# Enable vi keys.
setw -g mode-keys vi

# https://coderwall.com/p/4b0d0a/how-to-copy-and-paste-with-tmux-on-ubuntu
bind -t vi-copy y copy-pipe "xclip -sel clip -i"
Run Code Online (Sandbox Code Playgroud)

kba*_*kba 1

为了实现你想要的,你需要在命令行中使用 stdin (xargs可以做到这一点)并告诉tmux,在 a 中new-window使用复制缓冲区中的参数打开数据:

bind -t vi-copy y copy-pipe "xargs -I{} tmux new-window 'vim {}'"
Run Code Online (Sandbox Code Playgroud)

这需要更多的调整(获得正确的会话,正确的命令,使用$EDITOR而不是 vim 等。

这是相当危险的:想想复制/foo/bar/my;rm -rf /

另外,按原样,这仅适用于相对于 tmux 工作目录的路径。