【问题标题】:Alternative/Remap `fn` key in OSX Terminal.app for `tmux``tmux` 的 OSX Terminal.app 中的替代/重新映射`fn` 键
【发布时间】:2019-11-26 01:56:18
【问题描述】:

我在 macOS Sierra 中使用 tmux Terminal.app。当我想暂时禁用允许鼠标报告以复制/粘贴并单击时,我需要按下在我的长苹果键盘上很远的fn 键。有没有办法将此 fn 键更改为更接近的键,例如 ctrl, alt, option?在谷歌搜索了一段时间后,我似乎无法找到如何。

谢谢!

【问题讨论】:

  • 你为什么禁用鼠标报告(我是 Cmd-r)来复制和粘贴? Tmux 有复制粘贴缓冲区,macOS 有 pbcopy/pbpaste 命令。这与 vim 无关,通过 vim 中的 * 寄存器应该可以工作,或者您可以向 !pbcopy 写入行并从 !pbpaste 读取行
  • 当您在 tmux 中使用鼠标报告时,您使用 tmux 鼠标选择,但您不能使用 cmd+c 进行复制(我认为这是视觉选择)。如果在鼠标选择时按住 fn 键,则可以使用 cmd + c。这就是我的意思。
  • Tmux 使用prefix-[prefix-] 进行复制和粘贴。不,您不能使用 cmd-c,但您可以将复制的文本提供给 vim 或 pbcopy(这与使用 cmd-c 相同)。如果你绝对必须的话,你可以点击 cmd-r ro disable mouse。当我有时间时,我会尝试写一个描述我的工作流程的答案。

标签: macos vim terminal tmux terminal.app


【解决方案1】:

要切换鼠标报告,请在 Terminal.app 中按 -R


我想分享我的 Terminal.app + tmux + vim 工作流程,因为它与复制粘贴有关,以提出替代方案。

Vim 到系统

借助自制软件的 vim 或 +clipboard 支持,我使用 "* 寄存器进行 yanks 和 puts。这与系统的其余部分很好地交互。

您也可以随时:r !pbpaste:w !pbcopy(如下所述)。

外壳到系统

macOS 提供pbcopy(1)pbpaste(1)。默认情况下,他们使用系统剪贴板。 pbcopy 是从标准输入读取的接收器,而pbpaste 是写入标准输出的源。

我经常将这些用于命令行剪贴板交互。

Tmux 复制和粘贴

使用 tmux copy-mode 命令进入复制模式(Prefix-[ 默认)。

使用一系列键绑定进行导航。

根据包含viEDITORVISUAL,tmux 使用带有emacs 样式绑定的copy-mode 或带有vi 类绑定的copy-mode-vi — 您可以使用@ 更改.tmux.conf 中的默认值987654336@ 和 mode-keys 选项。详情请见man tmux

在我看来,默认的类似 vi 的绑定有点缺乏,所以我选择在我的 .tmux.conf 中添加以下内容:

bind-key -T copy-mode-vi v send-keys -X begin-selection
bind-key -T copy-mode-vi y send-keys -X copy-selection-and-cancel

一旦我做出选择,我可以用 Prefix-] 将它放在 tmux 中的任何位置。也有缓冲区可供选择。

Tmux & vim

我可以通过:set pasteo 和我的 tmux 粘贴键粘贴到 vim 中。我使用未受损的,所以粘贴切换变为]op。使用来自 github 的 Tim Pope 的 tbone,我还可以在 vim 中使用 :Tput:Tyank

Tmux 和系统

更新:我最近了解到以下内容可以解决问题!

tmux show-buffer | pbcopy

这是最难的部分:我通常在 shell 中执行以下操作:

# pbcopy <<<'{TMUX PASTE}'

这并不完美:如果我用单引号粘贴任何内容,我通常必须通过并做一些编辑工作。在 vi 模式下使用 readline 的 bash 中,这就像 &lt;Esc&gt;kv 一样简单,然后我可以在 vim 中编辑直到我满意为止。

通常是更简单且不易出错的替代方法

# pbcopy
{TMUX PASTE}
<C-d> # send End-of-file

【讨论】:

    猜你喜欢
    • 2017-10-30
    • 2012-10-14
    • 1970-01-01
    • 2018-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-04
    • 2015-08-13
    相关资源
    最近更新 更多