问题标签 [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 投票
1 回答
77 浏览

vim - 在 vim 中查找第一个未注释的行而不删除搜索

在 vim 中取消注释代码时,我希望有一个宏可以跳转到各种文件中第一个未注释的行。我在 Vim 中使用 nerdcommenter 所以(在突出显示第一个注释行之后)我搜索任何以非#or开头%但仍包含一些非空白字符的行:

但是搜索取代了我的搜索缓冲区。我可以在不擦除搜索缓冲区的情况下进行这样的搜索吗?

我在 nerdcommenter 文档中看不到这样的功能。

0 投票
1 回答
168 浏览

vim - 什么是在 vim 中放置函数的常规文件

我正在搜索 vim 脚本以清除 vim 中的寄存器,我发现这个有用的脚本

现在我正在插入带有函数的代码并将其放入我的.vimrc文件中

我的问题是
1. 是创建函数并将其放入 .vimrc 文件的正确方法吗?
2. 如果我想使用这个脚本作为插件,我应该把这个脚本放在哪个路径?

0 投票
2 回答
259 浏览

vim - 谁自动写入 vim 寄存器?

我正在玩 vim 寄存器。打开vim

我可以在没有任何注册的情况下打开 vim。然后我运行“:NERDTree”命令。执行此操作后,我可以看到这些寄存器:

在此处输入图像描述

现在我的问题是。为什么注册ho存在?寄存器中究竟存储了什么?

0 投票
2 回答
91 浏览

vim - 后恢复寄存器函数调用

我目前正在为 Vim 编写一个插件,我希望它在执行后恢复默认寄存器。但是,有问题的函数是通过<C-r>=Myfunction()<CR>构造调用的,这意味着我需要在函数返回后恢复它。我试过这样做:

可以看到,"寄存器受返回字符串影响,所以不能直接调用setreg。显然这个函数并没有真正做任何事情,但我使用的实际函数很长。另外,如果该字符串有点难以阅读,我深表歉意,但我不确定是否有任何其他方法可以完成此操作。总而言之,当寄存器包含一个单词时,该函数似乎可以工作,但每当寄存器中有换行符时,该函数就会失败。(具体错误E115: Missing quote与 oldreg 参数有关。)我试图通过首先对 oldreg 进行脱壳来解决这个问题;但是,这会导致错误E121: Undefined Variable,其中未定义的变量是我的寄存器中的内容。关于这里可能出了什么问题的任何想法?

编辑:我找到了解决方案。它很毛茸茸,但到目前为止效果很好。以下是如何将解决方案应用于我的示例代码,以防万一它对那里的任何人有所帮助。

0 投票
2 回答
60 浏览

vim - 打印有关 Vim 报告中使用的寄存器的信息

当我拉入寄存器时,我经常打错"x语法,所以我想确认它用于拉出文本的哪个寄存器。

例如,如果我要键入,我的理想输出"x3yy将是“3 行被拉入 x”,而不是当前的“3 行被拉入”。是否可以以某种方式修改此报告?理想情况下,它也适用于删除等。

0 投票
1 回答
296 浏览

vim - vim - 我如何在函数中注册?

我很困惑如何从函数内部使用寄存器。例如,如果我想从 vim 中拉出当前单词以注册“k”,我会使用命令/击键

但这在函数内部不起作用:"开始评论:

有没有办法在不更改评论选项的情况下做到这一点(这甚至可以工作吗?)谢谢;我一整天都在反对这个。

0 投票
1 回答
317 浏览

vim - "+ 注册不能在支持剪贴板的 vim 中工作

我想我的问题可能类似于vim system register * and + not working但我的服务器版本是 ubuntu。而且我确定安装的 vim 具有剪贴板支持。但是,当我在 vim 中运行时,我看不到"+寄存器。:reg以下是我用来诊断这种情况的命令,但我仍然找不到解决方案。

首先,我使用 ssh 连接到这个服务器。要检查 Vim 剪贴板支持的可用性:

但是,当我:reg在 vim 打开的一个文件中运行时,我看不到系统剪贴板寄存器。这是我得到的,(我删除了这些寄存器的内容)

如果此信息有帮助,此服务器的操作系统是 Ubuntu 16.04.4 LTS。

另外,我想我已经用剪贴板安装了 vim 的依赖项,这是我运行时得到的一个子集apt list --installed

vim-common/xenial-updates,xenial-security,now 2:7.4.1689-3ubuntu1.2 amd64 [installed] vim-gnome/xenial-updates,xenial-security,now 2:7.4.1689-3ubuntu1.2 amd64 [installed] vim-gtk/xenial-updates,xenial-security,now 2:7.4.1689-3ubuntu1.2 amd64 [installed] vim-gui-common/xenial-updates,xenial-updates,xenial-security,xenial-security,now 2:7.4.1689-3ubuntu1.2 all [installed,automatic] vim-runtime/xenial-updates,xenial-updates,xenial-security,xenial-security,now 2:7.4.1689-3ubuntu1.2 all [installed,automatic] vim-tiny/xenial-updates,xenial-security,now 2:7.4.1689-3ubuntu1.2 amd64 [installed] vino/xenial-updates,now 3.8.1-0ubuntu9.2 amd64 [installed]

0 投票
1 回答
237 浏览

vim - 粘贴 dot 中的内容。vim中的命令

给定文本中的单词foo,如果我ciwbar<ESC>在将其记录为寄存器中的宏时w键入,然后在命令行中键入 :<C-r>w它会带给我:ciwbar^[

但是,如果我输入:<C-r>.它只会带给我bar

@w但是, and两个命令dot都能够在我的文本的其他部分执行更改内部单词栏

w当我得到寄存器时,有什么方法可以从点中获取所有内容?我想粘贴它并努力在一些步骤中自动执行宏中的最后一个命令

0 投票
2 回答
736 浏览

vim - 在 .vimrc 映射中使用寄存器

我正在做一项涉及对 HTML 模板文件进行多次修改的工作,其中要替换的值在模板中用诸如“%%ARTICLE_DATE”之类的标记指定。我想在我的 .vimrc 的映射中使用“+”或“*”(剪贴板,X 剪贴板)vim 寄存器来使用剪贴板中的值设置搜索。例如:

因此,如果我在另一个应用程序的 X 剪贴板中有“2016 年 6 月 12 日”,我可以键入 Esc-q 并拥有

在我的 vim 命令行中,我可以按 Enter 并有选择地替换匹配的标记。是否有剪贴板内容的功能表示可以用于 <something> 来做到这一点?

0 投票
1 回答
47 浏览

search - 向后搜索视觉模式选择

我希望在 Vim 中以可视模式重新映射我的#*键,以便我能够突出显示部分文本并分别向后和向前搜索它。在先前答案的帮助下,我设法使前向搜索工作。但是,我很难向后搜索工作。以下是我的相关部分.vimrc

最初的高亮和向后搜索效果很好,但是一旦我按下n向后搜索下一个匹配项,Vim 就会继续向前搜索。我怀疑这是因为向后搜索使用?运算符而不是/,这意味着我必须按N而不是n。然而,这与 的正常模式操作有悖常理#,因此我尝试将选择分配给?寄存器,却发现没有名为 的寄存器?。我将如何解决这个问题?理想情况下,我宁愿在不安装插件的情况下这样做。