fzf tmux pasteb deleteb

时间:2019-04-01 13:35:27

标签: bash tmux fzf

试图了解pastebdeleteb的来源吗?

我希望,如果我手动打开tmux,则pasteb和deleteb内置在命令或其他内容中,但是据我所知,它们是否尝试在tmux会话中键入它们?

https://github.com/junegunn/fzf/blob/master/shell/key-bindings.bash#L34

__fzf_select_tmux__() {
  local height
  height=${FZF_TMUX_HEIGHT:-40%}
  if [[ $height =~ %$ ]]; then
    height="-p ${height%\%}"
  else
    height="-l $height"
  fi

  tmux split-window $height "cd $(printf %q "$PWD"); FZF_DEFAULT_OPTS=$(printf %q "$FZF_DEFAULT_OPTS") PATH=$(printf %q "$PATH") FZF_CTRL_T_COMMAND=$(printf %q "$FZF_CTRL_T_COMMAND") FZF_CTRL_T_OPTS=$(printf %q "$FZF_CTRL_T_OPTS") bash -c 'source \"${BASH_SOURCE[0]}\"; RESULT=\"\$(__fzf_select__ --no-height)\"; tmux setb -b fzf \"\$RESULT\" \\; pasteb -b fzf -t $TMUX_PANE \\; deleteb -b fzf || tmux send-keys -t $TMUX_PANE \"\$RESULT\"'"
}

1 个答案:

答案 0 :(得分:1)

这些是内部tmux命令。

来自tmux man page

  

删除缓冲区[-b缓冲区名称]

     

(别名:deleteb)

     

删除名为buffer-name的缓冲区,如果未指定,则删除最近添加的自动命名的缓冲区。


  

粘贴缓冲区[-dpr] [-b缓冲区名称] [-s分隔符] [-t目标窗格]

     

(别名:pasteb)

     

将粘贴缓冲区的内容插入到指定的窗格中。如果未指定,请粘贴到当前版本中。使用-d,还删除粘贴缓冲区。输出时,粘贴缓冲区中的任何换行(LF)字符均被分隔符替换,默认情况下为回车(CR)。可以使用-s标志指定自定义分隔符。 -r标志意味着不进行替换(相当于LF的分隔符)。如果指定了-p,则在应用程序请求使用括号粘贴模式的情况下,在缓冲区周围插入粘贴括号控制代码。