示例:
2个窗格。
Pane 1当前目录:/a/b/c/d
Pane 2当前目录:/a/f/g
我想将窗格1的当前目录中的file.csv
复制到窗格2的当前目录。
我的所作所为:
在窗格1中:
cp file.csv ../../../f/g
从窗格1中的dir找到正确的相对路径是缓慢而烦人的,我觉得我可以将文件从一个窗格“拖放”到另一个窗格。
有没有办法做一些类似拖拽的事情?
“好”解决方案的示例:
cp file.csv $pane2dir
由于
答案 0 :(得分:2)
我的tmux.conf中有以下内容
# get directory from other pane using xsel
bind J run-shell -b -t bottom "echo -n #{pane_current_path} | xsel -i"
bind K run-shell -b -t top "echo -n #{pane_current_path} | xsel -i"
bind H run-shell -b -t left "echo -n #{pane_current_path} | xsel -i"
bind L run-shell -b -t right "echo -n #{pane_current_path} | xsel -i"
我要复制到的窗格通常位于当前窗格的左侧或右侧。如果它在右边,我会<prefix> shift-l
将右窗格的当前目录放在剪贴板中。
为了满足您的解决方案要求,可以对其进行修改以创建命令,例如:
cp file.csv $(tmux run-shell -b -t right "echo -n #{pane_current_path} |xsel -i" && (sleep 0.01; xsel -o))
为方便起见,将这些内容放在shell脚本中是有意义的。
在给出我的答案后,我玩了一下,并提出以下
bind L if-shell -b -t right "tmux set-buffer -b panedir #{pane_current_path}" "paste-buffer -db panedir"
将“右”窗格的当前目录直接放在命令行上。
答案 1 :(得分:0)
我有同样的问题,我使用tmux-yank插件。它具有将窗格当前工作目录复制到系统剪贴板的功能。 (免责声明:我是该插件的作者。)
要提供问题的完整答案,以下是我使用此插件执行的步骤:
ctrl-v
或Cmd-v
粘贴您需要的路径