gpt4 book ai didi

clipboard - 无法粘贴到 MacVim

转载 作者:行者123 更新时间:2023-12-04 00:11:25 29 4
gpt4 key购买 nike

我从 Vim 外部复制文本。 ⌘V 在其他应用程序中粘贴文本没有问题。在 MacVim 中,它不起作用。

在插入模式下,什么都不显示。在普通模式下,我得到 E353: Nothing in register + .发生这种情况时 set clipboard=unnamed是开还是关。

奇怪的是,这以前是有效的。怎么了?

最佳答案

如果您使用 tmux 并且有时您最初通过 mvim 启动 MacVim命令行程序,那么你可能会遇到提示我写 reattach-to-user-namespace command的问题.

我的猜测是剪贴板访问在以前的情况下有效,因为您碰巧通过“正常”GUI 方法(例如 Dock、Finder、Spotlight 等)启动了 MacVim。在您退出之前的 MacVim 实例并通过(例如)mvim 重新启动它后,剪贴板变得无法访问。从 tmux session 内部。

核心问题是在某些上下文中(即在 tmux session 中)启动的程序最终会导致环境拒绝它们访问某些服务(例如 OS X 粘贴板)。

最初的发布在这里很重要。新窗口开始于 mvim -in-tmux(即使没有上面链接的包装程序)应该可以访问剪贴板,只要 MacVim 之前“通过 GUI”启动(也许仍然有一些 MacVim 窗口打开,或者你配置了 MacVim 以保持即使没有打开 window 也能运行)。相应地,要重新访问剪贴板,您需要关闭所有现有的 MacVim 窗口,退出应用程序,然后以可以访问剪贴板的方式(例如通过 GUI,或“在包装器内部”)重新启动它。

一旦你安装了上面链接的包装程序(它也可以通过 MacPorts 和 Homebrew 获得),你可以使用像 reattach-to-user-namespace mvim 这样的命令。确保如果 它最终会启动一个新的 MacVim 实例,然后该新实例将可以访问剪贴板。您可以使用别名、shell 函数或脚本来确保始终“包装”mvim .

其他几个命令也受益于“包装”( pbpastepbcopynohuplaunchctl (取决于您使用的子命令)),因此您可能想要“包装”整个 shell 而不是个别命令。 “包装器”修改的进程环境的一部分是由子进程继承的,因此“包装”你的 shell 会影响你从它运行的大多数命令。如果你使用 tmux,你可以配置你的 default-command自动“包装”你的默认 tmux shell:

set-option -g default-command "reattach-to-user-namespace -l zsh"

关于clipboard - 无法粘贴到 MacVim,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16618992/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com