问题标签 [viml]

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 回答
27 浏览

range - 如何删除列范围内的前导和尾随空格?

如何删除列范围内的前导和尾随空格?

这不起作用:

0 投票
1 回答
253 浏览

vim - 基于下一行是否为空的不同命令

我正在尝试自动添加;, 或在表达式末尾需要的任何内容,然后转到另一行。

基本上它会是这样的inoremap <leader>; <C-o>A;,但我想要一点改进。如果下一行是空的(或不存在),我希望它这样做<C-o>A;<cr>,如果它不为空<C-o>A;<Down>。换句话说,我需要一种惯用的方法来检查下一行是否存在以及它是否为空。谢谢。

0 投票
0 回答
144 浏览

vim - 转义隐藏命令 vimscript 中包含的字符

我正在使用帮助文件中的隐藏来突出显示/着色特定的文本字符串。在我添加下面的 :print: 示例之前,这一切正常。

隐藏示例

使用这个隐藏了所有 : 正如预期的那样,所以我试图逃避 : 周围的字打印:

最初的隐藏声明是:

我将比赛更改为:

如果我写了:print:as: :print :

但是,我更愿意转义或告诉解析器在某些情况下忽略匹配,例如::,或者##因为这:print :不是我所追求的:)。

我想要达到的目标

我正在使用以下内容来隐藏比赛的开始和结束元素,参见图片

图像中的: /if line..示例做了我想要的

但是,如果我有一个像

即第二个图像,然后所有图像都:被隐藏,正如预期的那样。

我正在寻找一种方法来逃避第二个和第三个,:这样它们就不会被隐藏,而不必: %s/[:print:]//g :在帮助文件中写入 .

为了实现第二个例子

在此处输入图像描述

作为一种解决方法,我将 match 命令更改为

在我用第二个 ^* 字符串编写帮助之前,它一直有效

在此处输入图像描述

有什么建议么?

注意:这篇文章是以下内容的副本,因为我无法在那里得到答案:https ://vi.stackexchange.com/questions/5850/escaping-a-character-included-in-a-conceal-command-脚本

0 投票
1 回答
62 浏览

git - 将突出显示的文本发送到 Git 提交的 Vim 函数

问题:

假设我的 vim 缓冲区中有以下文本:

进一步假设我有一个位于~/my_repo.

目标:制作一个 vim 脚本,以便我可以突出显示上面的文本,并将其作为 git commit 消息发送到~/my_repo. 它看起来像

它还将在其 repo 参数上自动完成。

尝试的解决方案:

首先,自动完成功能(AFAIK,我认为这可以吗?):

接下来是实际的 git commit 函数,不完整:

假设我可以弄清楚如何CommitTextGitRepo()在上面工作,我需要的最后一件事是(我认为):

我是如此接近。我该如何完成这件事?:)

0 投票
1 回答
252 浏览

vim - 如何在vim中使用args递归地打开文件排除某些目录?

我想递归地打开一个目录中的所有文件,不包括一些子目录。

例如,我想排除任何级别中名为“inbox”的目录下的所有文件。

我可以指定要包含的目录。有没有办法指定我要排除的目录?

例如,以下命令打开.md所有子目录中的所有文件:

我不想在任何名为inbox.

0 投票
1 回答
312 浏览

vim - 加载插件 utl.vim 后如何加载 vimscript 文件?

在加载一个名为[utl.vim][1].

文档说,我需要将这些配置放入after-directory

我创建了一个名为utl.viminside~/.vim/after/目录的文件。

但是这个文件没有来源。我使用:scriptnames.

utl.vim加载插件后如何确保 Vim 获取此文件?

0 投票
0 回答
845 浏览

vim - BufWritePre 上的 Vim 多个 autocmd

我同时使用Chiel92/vim-autoformatntpeters/vim-better-whitespace。第一个用于自动格式化代码,第二个用于删除额外的空格。我希望他们两个都使用 autocmd 在保存文件时调用它们。看来我没有正确使用 autocmd。我希望有人可以帮助我,因为我对 vimL 知之甚少。

我曾经有以下在保存时启用自动格式化:

而且我还使用'ntpeters/vim-better-whitespace',它也会在保存时去除过多的空格。

问题在于他们每个人都可以完美地工作。但是当将它们放在 .vimrc 中时,它们中的至少一个将不起作用,这取决于脚本中第一个出现的人。

这是我在倾倒 :au BufWritePre 后所拥有的


更新 ...

玩了一段时间后,我发现通过更改保存时自动格式化的方式:

他们俩都可以互相合作。

有人可以帮我理解这里发生了什么吗?谢谢!

0 投票
0 回答
280 浏览

search - vim:使用 vimrc 中的高亮执行正常搜索

我正在使用以下映射 * 以突出显示当前选择

但是,此脚本不会突出显示搜索结果。但是,当在 ex 命令模式下手动输入命令时:execute "normal /" . l:pattern . "\<CR>",我确实得到了突出显示。

请让我知道如何从 vimrc 脚本中启用高亮显示。

0 投票
1 回答
50 浏览

vim - VimL:宽度指定为总宽度函数的 VSPLIT

我想写一个vim脚本,用vsplit打开一个新窗口,其中新窗口的宽度等于总列数减去90。

结果将是,当前窗口将是 90 列宽(查看 80 列代码 + 装订线),新的 vsplit 将占据屏幕剩余的任何部分。

如果我正确理解 vsplit, :vsplit 90 指定正在创建的窗口应该是 90 列。有没有办法将窗口中的当前列数转换为变量?

0 投票
2 回答
1076 浏览

vim - 如何检查 Vim 缓冲区是否可修改?

我发现 Vim 快捷方式nmap <enter> o<esc>or nmap <enter> O<esc>,它用回车键插入一个空行,非常有用。但是,它们对插件造成了严重破坏;例如,ag.vim它使用要跳转到的文件名填充快速修复列表。在这个窗口中按回车(应该跳转到文件)给我错误E21: Cannot make changes; modifiable is off

为了避免在快速修复缓冲区中应用映射,我可以这样做:

这可行,但我真正想要的是避免在任何不可修改的缓冲区中进行映射,而不仅仅是在快速修复窗口中。例如,映射在位置列表中也没有任何意义(并且可能会破坏其他使用它的插件)。如何检查我是否在可修改的缓冲区中?