- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
有许多类似的问题,但没有一个答案有效,而且它应该是微不足道的,因为它曾经是。
设想:
在 Ubuntu 桌面系统上,我正在运行一个终端,我通过 SSH 连接到远程服务器。通常,我可以用鼠标从终端(即“从”远程服务器)中选择文本,然后用 将其复制到本地。 CTRL+SHIFT+C (而不是像在终端以外的任何应用程序中那样使用 CTRL+C)并将选择复制到本地剪贴板,然后我可以将其粘贴到任何地方。这也将允许我将其粘贴到终端本身(另一个)与 CTRL+SHIFT+V ,最终将其粘贴到远程服务器(包括 vim)上运行的任何内容。
这曾经在 时可以工作(在远程服务器上使用 debian 8)。在远程服务器上运行 vim ,所以澄清一下:在我本地的 ubuntu 机器中是一个终端;在终端内,我通过 ssh 连接到远程服务器;在我正在运行 vim 的服务器上;所以远程服务器上用vim打开的文件的内容在我本地机器的终端中是可见的。 Ctrl+Shift+C 曾经允许我将选择复制到本地计算机上的本地剪贴板,然后我可以将其粘贴到本地文本编辑器或回到远程计算机上的 vim。这样,我可以从远程 vim 复制粘贴到本地 gedit,反之亦然,或者从远程 vim 复制到远程 vim(通过我的本地剪贴板),或者从远程 vim 复制到另一个终端中的另一个远程 vim,无论是在同一台服务器上还是在另一台服务器上。我完全清楚远程服务器在这种情况下对复制和粘贴一无所知。本地系统只是复制它在终端中看到的文本(恰好是在远程机器上通过 ssh 运行的某些内容的输出),然后将其粘贴回终端(这导致它通过 ssh 进入远程机器)。我知道,它对我有用。
当涉及 vim 时,这不再起作用(在远程机器上使用 debian 10)。现在在远程服务器上我正在运行 Debian 10。只要在远程服务器上我是 ,Ctrl+Shift+C 仍然有效(复制到本地剪贴板)未运行 vim .例如,我可以使用 Ctrl+Shift+C 将文本从远程控制台复制到本地剪贴板。无论我是否在远程机器上的 vim 中,Ctrl+Shift+V 仍然有效。但是,当vim 在终端内的远程计算机上打开,Ctrl+Shift+C 不会复制到本地剪贴板。
我的猜测是 Ctrl+Shift+C 以某种方式被 vim 捕获。
那么,当这个终端恰好正在运行 ssh 并且 vim 恰好在远程机器上打开时,如何将文本从终端复制到 ubuntu 上的剪贴板?
我知道我可以使用 y
到“yank”(即复制)和 p
在 vim 中远程粘贴。然而,这不是我要找的。这一切都是远程发生的,只允许我在远程机器上从 vim 复制到 vim(也许也从 vim 复制到远程机器上的其他东西,我不在乎)。这不允许我从远程机器上的 vim 复制到本地机器上的文本编辑器。
我不想要一个复杂的解决方案,涉及从vim“拉”到远程机器上的其他东西,然后将文件ftp到我的本地机器或其他东西。那是垃圾。我要本地复制所见即所得 本地 尽管事实上在终端中运行的是通过远程机器上的 ssh 的 vim,但在终端中。
我曾经能够做到这一点。我仍然可以使用运行 debian 8 的远程服务器。但不能在运行 debian 10 的远程服务器上。
我怎样才能做到这一点?
最佳答案
你看到的实际上是 :set mouse=a
的结果(或 :set mouse=nvi
)在 Vim 中,这意味着 Vim 将告诉终端它想要捕获和处理鼠标事件,因此它们将转到远程 Vim 而不是留在本地终端。
所以问题实际上不在于 CTRL+SHIFT+C 不工作......但是它没有什么可复制的,因为终端中没有选择,因为鼠标事件被发送到远程 Vim,它使用它们来选择一个 Visual block 。
Debian 8 发布了 Vim 版本 7.4,而 Debian 10 发布了 Vim 8+,并且从 Vim 8 开始一个新的 defaults.vim
当你没有 vimrc 文件时运行它并且会设置 mouse=a
(或 mouse=nvi
)自动,所以也许这就是您从中获取设置的地方?或者如果你有一个 vimrc 文件,也许 Debian 现在在系统 vimrc 文件中包含了这个设置,这就是它的来源......
你有几个选择来解决这个问题。一种是禁用 Vim 对鼠标的捕获,使用 :set mouse=
,您可以在正在运行的 Vim 上执行以确认它为您解决了问题,或者添加到您的 ~/.vimrc
文件以使其永久化。 (如果您是第一次创建新的 vimrc 文件,请参阅 :help defaults.vim
中的说明以保留您一直使用的默认值!)
另一种选择是您的终端可能有一种方法来覆盖鼠标捕获并使用本地选择,即使在终端中运行的应用程序已经捕获了鼠标。这可能涉及在按住修饰键的同时进行选择,例如 ALT 或 CTRL 或者 转移 ,以便终端知道您实际上想要鼠标的其他行为来执行此特定操作。终端使用的修饰键可能会有所不同,但其中之一可能会触发您想要的行为。这通常很容易分辨,因为终端中的鼠标选择在视觉上与 Vim 中的可视模式完全不同。使用覆盖完成正常的鼠标选择后,您可以使用 复制文本CTRL+SHIFT+C 就像你习惯的那样。这种方法为您带来了两全其美的好处,因为您仍然可以在 Vim 中使用鼠标,但是当您真正想要复制和粘贴的选择时,您可以使用它。
关于Ubuntu:如何将文本从在 ssh 上运行 vim 的终端复制到本地剪贴板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59443803/
当尝试复制到剪贴板时,有什么区别 Clipboard.SetData(DataFormats.Text, ""); 和 Clipboard.SetText(""); 最佳答案 SetText 只是 S
我正在尝试将一个对象复制到 Windows 剪贴板上,然后再次关闭。我的代码是这样的: 复制到剪贴板: Clipboard.Clear(); DataObject newObject = new Da
如何在非静态线程中获取剪贴板文本?我有一个解决方案,但我正在尝试获得最干净/最短的方法。正常调用时结果为空字符串。 最佳答案 我会添加一个辅助方法,它可以在 MTA 主线程中将 Action 作为 S
我正在研究Applescript,将上次复制的内容粘贴到任何当前字段中。它将与VoiceOver一起使用,并且关键代码方式(我所知道的唯一方式)并非始终有效。 tell application
我在这里看到: http://www.pgrs.net/2008/1/11/command-line-clipboard-access Linux 和 osx 中有一种方法可以从命令行复制到剪贴板。所
我正在尝试使用已在浏览器中运行的 Clipboard API,但 PhpStorm 不知道它。 怎样才能让 PhpStorm 识别它?我已在项目设置中将 JavaScript 语言版本设置为 ECMA
Wayland 中有剪贴板 API 之类的东西吗?或者我应该在哪里以编程方式将内容粘贴到剪贴板? 我在 Wayland 上运行 Fedora 24。 如果我觉得有一个剪贴板完全没问题,那么有代码示例(
我最近看到一个针对 ClearCase 的绝妙 hack,其中版本号作为提交的一部分被添加到 Windows 剪贴板。黑客看起来像这样: @rem = ' PERL for Windows NT -
为什么 System.Windows.Clipboard(PresentationCore.dll) 对System.Windows.Thickness (PresentationFramework.
我想用来自 NUnit 测试的文本填充 Forms.Clipboard。 我遇到的第一个问题是剪贴板必须在STA模式下使用。我找到了 the solution (NUnit 2.5.x+) 在方法上设
当我想在我的应用程序中共享基本纯文本时,将其复制到剪贴板的选项不会显示在选择器列表中。我的代码有问题吗?还是我的设备设置有误? String code = getXMLCode(); Intent s
我在LibGDX开发游戏,游戏中有登录界面和注册界面。 HTML 版本的游戏有剪贴板的沙盒环境,意味着: 任何从游戏中复制的东西,都不能粘贴到游戏外&从外部复制的任何内容都不能粘贴到游戏的文本字段中
我有一个奇怪的问题,我相信我可能只需要一些权利来声明使其工作。 我有一些用户可以复制文本的 TextView ,并且可以将其粘贴到应用程序内的另一个文本字段中。但是当用户退出(或暂停)应用程序时,用户
我有一个小程序正在监听图像的剪贴板( Hook )。如果有存储或通过ctrl+c等复制的图像,我的程序会自动将图像粘贴到打开的word文档中。 代码: if (Clipboard.ContainsIm
我正在使用在 Linux Mint 上运行的终端仿真器(准确地说是 MATE),它在 Windows 托管的虚拟机中运行。我通过 ssh 连接到 CentOS Linux 上的 bash shell。
我发现自己在运行脚本并将这些运行的输出复制粘贴到电子邮件或其他一些文档中。有没有办法让复制到剪贴板的步骤成为脚本本身的一部分?我的大部分脚本都是 Perl 或 bat 文件,我在 Windows 上工
如何使用 .NET 框架访问剪贴板内容? 最佳答案 检查 Clipboard类及其 SetText\GetText 方法。 另请参阅本教程: Clipboard Copy and Paste with
我有一些代码要复制和粘贴: void WinClipboard::copy( const std::string& input ) { LPWSTR lptstrCopy;
我想获取当前存储在 Windows 剪贴板中的数据并将其保存在一个变量中,然后将数据放回剪贴板。 现在我正在使用这段代码: object l_oClipBrdData = Clipboard.GetD
引用topic这解释了如何将数据复制到 android 剪贴板,是否可以将视频/音频文件复制到剪贴板。 我假设视频/音频文件以二进制值存储并再次绑定(bind)以将它们作为视频/音频播放。 需要您的建
我是一名优秀的程序员,十分优秀!