Vimperator 复制/粘贴

Vimperator 复制/粘贴

我正在尝试毒蛇。我主要想要它用于 hjkl 滚动,并且我喜欢它的“提示”系统用于跟踪链接。我想这两个功能确实是我所需要的。

我不介意其他功能,只是有时会妨碍我。

最让我恼火的是复制/粘贴。我习惯使用Ctrl+ c/ Ctrl+ v,我不介意使用其他快捷方式,但是......

:help yank表示复制选定的文本是用 Y 完成的,但提到的粘贴的唯一方法是鼠标中键!

这实在太可笑了,违背了 Vim 的精神!

如何在不使用鼠标的情况下在 Vimperator 中进行粘贴?

答案1

你能做的最好和最简单的事情就是重新映射按键。这并不难。将其放入你的 _vimperatorrc(或 Linux 中的 .vimperatorrc)中

noremap <C-c> <C-v><C-c>
noremap <C-v> <C-v><C-v>

<C-v>默认映射到“传递下一个”模式,这意味着您按下的下一个键将直接发送到 Firefox,而不会被 vimperator 处理和使用。因此,上述映射只是激活“传递下一个”模式并发送相应的快捷键。

甚至有一个vimperator 插件进一步扩展了此功能并重新映射了所有常见的 Windows 快捷方式,因此它们的行为符合预期。

答案2

我很惊讶这个问题没有更准确的答案。所选答案的插件链接解决了 OP 的问题,但没有人真正解释如何在不使用直通 (Cv) 模式的情况下将某些内容粘贴到文本字段中。

如果您在 INSERT 模式下的文本字段中想要粘贴某些内容,在 vi-land 中,显然要做的事情是按 ESC 和 p 进行粘贴。在 vimperator 中,这不起作用 - ESC 会让您完全退出 INSERT 模式,并进入使用整个页面/选项卡的模式。

Vimperator 通过添加一个额外的 BASIC 模式 TEXTAREA 解决了这个问题。在 TEXTAREA 模式下,您可以使用在 vi 中使用的受支持命令。

Enter TEXTAREA mode: C-t
Paste:    p
Copy line:    yy
Delete Char:  x
Delete Line:  dd

ETC。

这似乎没有很好的记录——我最终大部分是错误地弄明白了这一点。它在多行和单行文本框中的工作原理相同。

答案3

目前,vimperator 重新映射了 Ctrl+C(从“复制”到“取消”)和 Ctrl+V(从“粘贴”到“传递”)。在 Linux 上,复制/粘贴的首选方法是使用鼠标中键,因此这不是问题。在 Windows 上,这是一个用户界面灾难,急需修复。

您可以从三个地方复制文本:网页中的文本、表单字段中的文本以及外部应用程序中的文本。您可以将文本复制到两个地方:表单字段中和外部应用程序中。地址栏和命令栏的工作方式与表单字段类似。

Copying from...
     A web page: 'Y' works, '^C' doesn't
     Form field: 'Y' doesn't work, '^C' does
     Extern application: 'Y' doesn't work, '^C' does
  Copying to...
     Form field: '^V' doesn't work, '^V,^V' does
     External application: '^V' works, '^V,^V' pastes twice
 Or, seen another way
       Copy  Paste
 Page  Y     N/A
 Form  ^C    ^V,^V
 App   ^C    ^V

普通用户不会记住该表格。他们永远也想不通,因为没有明确记录,即使有,他们也不会阅读。相反,他们会使用右键菜单,这是唯一一个在任何地方都适用的东西。事实上,在我开始使用 Vimperator 几周后,我发现自己在一个完全不相关的应用程序中做了这件事,这是我以前从未做过的事情。

我们需要将 ^C 和 ^V 恢复到它们原来的、正确的复制和粘贴功能,这意味着取代 ^C=取消和 ^V=传递热键。事实上,这两个热键都是 vimperator 独有的,在 vim 中没有出现。^V 在 vi​​m 中表示“阻止视觉”,这在 vimperator 中不适用,因此传递可以很容易地分配给其他键。我建议在命令模式下使用反斜杠,在命令和插入模式下使用 ctrl+反斜杠。这样就剩下 ^C 了。我认为应该将其移动到 ^S。它有两个很好的助记符:它是“停止”,它也是 XOFF 的 Unix 热键,虽然没用,但语义相似。^S 目前在 vimperator 中是“将页面另存为”,很少使用,仍然可以通过 :save 或 :saveas 访问。

撤消功能也坏了;以前是 ^Z,但 ^Z 不是直通模式,如果不使用鼠标,就无法撤消表单字段中的编辑。我认为没有理由不将其移至另一个热键,尤其是因为 vim 中的 ^Z 表示暂停,这完全不相关,而且意外发现自己处于直通模式会让人非常困惑。我想不出一个非任意热键来将其更改为,但 ^Z 本来就相当任意,所以任何未使用的热键都可以。

来源:http://www.mozdev.org/pipermail/vimperator/2008-October/002359.html

答案4

我发现给出的答案没什么用,因为我在任何地方都看不到Ctrl+ c。我所做的是使用 SecureCRT 快捷方式。也就是说,从页面复制:

Ctrl+Ins

粘贴: Ctrl+V两次(正如某人在其他地方的答案中所说的那样)。

相关内容