问题标签 [vim-registers]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
29 回答
81352 浏览

vim - 在 Vim 中有没有办法在不将文本放入寄存器的情况下删除?

使用 Vim,我经常想用我刚刚拉出的代码块替换代码块。

但是,当我删除要替换的代码块时,该块本身会进入寄存器,从而擦除我刚刚拉出的块。所以我养成了拉动,然后插入,然后删除我不想要的东西的习惯,但是对于大块代码,试图将插入的块和要删除的块分开会变得很混乱。

那么在 Vim 中替换文本最灵巧、最快捷的方法是什么?

  • 有没有办法删除文本而不将其放入寄存器?
  • 有没有办法说,例如“替换下一个单词”或“替换到下一段”
  • 还是以某种方式使用多寄存器功能的最佳方法?
0 投票
2 回答
13832 浏览

vim - 从一个寄存器复制到另一个

如何在不粘贴到剪贴板的情况下将一个寄存器的内容复制到另一个寄存器?我拉了一个文本,它在默认"寄存器中被拉了。现在我想复制另一个文本而不删除/覆盖"寄存器。所以我想移动"寄存器的内容说一些ab寄存器,以便我可以复制里面的新文本"。这该怎么做?

0 投票
2 回答
825 浏览

vim - 在vim中组合寄存器

是否可以在vim中组合寄存器?例如,如果我有寄存器“a、”b、“c”,我可以轻松创建寄存器“d”,它是所有三个的串联吗?也就是说,无需将它们全部粘贴,然后选择整个内容。

0 投票
2 回答
2485 浏览

vim - 在 Ex 模式下使用 Vim 寄存器

可能是 2 个问题合二为一。我想知道如何在 Ex 模式下引用寄存器。

例如,我正在编辑一个文件,我想保存该文件并附加一个时间戳(或者实际上只是日期戳)。

我知道我可以使用以下命令将寄存器设置为 shell 命令输出的值:

是否有任何取消引用该寄存器并将其值插入 Ex 命令的方法?就像是:

复制到系统剪贴板并粘贴会很好,但将来以更通用/程序化的方式构建其他命令会很好。

0 投票
2 回答
702 浏览

vim - Vim:在寄存器中存储多个命令时如何处理换行符?

我有一个存储 vim 命令片段的文件。当我需要一个片段时,我将其拉出,然后使用@". 片段存储为脚本,每个命令一行,如下所示:

编辑:我从示例中删除了正常模式命令,因为它们不是问题的一部分。

现在这个过程不再起作用了:在执行代码片段时,它只是停在第一行,就好像在等待换行一样。

是否有影响@执行方式的选项?我很确定它在一段时间前工作过......

用 ^M 字符替换换行符是可行的,但会使文件更难处理。


附加信息:

这是另一个症状:当我拉出一个片段时,如果我用它执行它,@"就像我刚才解释的那样,它会停在第一行。但是如果我用它执行它就:@可以了。但是帮助文件似乎并没有暗示这两个命令如何处理寄存器内容的任何区别......

0 投票
4 回答
1582 浏览

regex - 从vim的寄存器中删除换行符?

我有一长串不同的大学名称。我正在尝试通过将行与某些唯一关键字进行比较来构建同义词表;也就是说,在文件中,我将确定哈佛是这里的关键字:

并将它们粘贴到另一个文件中

我一直在通过搜索光标下的单词,将带有该单词的行拉到寄存器中,将寄存器粘贴到另一个文件中,然后使用连接命令“J”将这些行连接在一起:

这工作得很好,但我希望它能够简化。具体来说,我想知道如何从寄存器中删除换行符,这样我就不必在最后一步使用 JJJJ 手动加入行。我想搜索包含光标下单词的所有行,将它们复制到“a”寄存器中,从“a”寄存器中删除换行符,然后粘贴“a”寄存器的内容。

有任何想法吗?

编辑:我知道:

  • 如何全局搜索替换,例如%s/\n//g
  • 如何在缓冲区中搜索和替换 'foo' 从单词到寄存器的内容,例如:%s/foo/a/g
  • 如何在缓冲区中搜索寄存器的内容并替换为 'foo',例如:%s/a/bar/g

我需要知道的:

  • 如何从注册“a”到注册“b”中搜索“foo”并将其替换为“bar”
  • 如何从注册“a”中搜索“foo”并将其替换为“bar”以注册“a”
0 投票
1 回答
471 浏览

vim - 不同 VIM 选项卡的相同寄存器

我正在尝试将我在选项卡中打开的 1 个文件复制粘贴到我在另一个选项卡中打开的另一个文件。

所以我使用视觉块来获取我的选择,拉它,但是当我切换到其他选项卡时,它不会粘贴,它说:

无需注册

有没有办法为不同的选项卡使用相同的寄存器?

0 投票
3 回答
1709 浏览

vim - 在vim中,如何使用setreg将回车添加到寄存器中?

我的 .vimrc 中有这个命令:

当我通过输入缓冲区设置寄存器“g”时,它可以工作:

如果我输入 :registers,它会显示:

之后,键入@g 会导致回车,然后光标移动到下一行。^M 以特殊颜色出现。

但是,当我在 vimrc 中使用 setreg 命令时,如果我键入 @g,则什么也不会发生。

如果我输入 :registers,它会显示:

^M 不是特殊颜色。

我的 .vimrc 中有以下内容:

我要在寄存器中存储的回车是运行MyFunction。只要我手动填充缓冲区而不是使用 setreg,就会完美调用 MyFunction。

我哪里出错了?我的平台是Linux。

0 投票
2 回答
84 浏览

vim - Vim 注册标准

我正在考虑将我的寄存器设置为与常见的编码技术相同。例如,我正在考虑这样做:

然后我会设置ffor循环,wfor循环等。这是一种不好的技术还是有更好的方法?

0 投票
1 回答
144 浏览

vim - VIM 函数创建 CMakeLists.txt

我是 Vim 新手,我想创建一个 Vim 函数来制作 CMake 文件。

它不起作用,我不知道该怎么做,所以我的代码的相关部分是:

它应该将当前文件的名称不带扩展名复制到变量中,然后将其复制到新文件并保存并关闭它。

它说,@%:t 是一个无效的表达式,并且只允许一个文件名。

谢谢!