问题标签 [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.
range - 如何删除列范围内的前导和尾随空格?
如何删除列范围内的前导和尾随空格?
这不起作用:
vim - 基于下一行是否为空的不同命令
我正在尝试自动添加;, 或在表达式末尾需要的任何内容,然后转到另一行。
基本上它会是这样的inoremap <leader>; <C-o>A;
,但我想要一点改进。如果下一行是空的(或不存在),我希望它这样做<C-o>A;<cr>
,如果它不为空<C-o>A;<Down>
。换句话说,我需要一种惯用的方法来检查下一行是否存在以及它是否为空。谢谢。
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-脚本。
git - 将突出显示的文本发送到 Git 提交的 Vim 函数
问题:
假设我的 vim 缓冲区中有以下文本:
进一步假设我有一个位于~/my_repo
.
目标:制作一个 vim 脚本,以便我可以突出显示上面的文本,并将其作为 git commit 消息发送到~/my_repo
. 它看起来像
它还将在其 repo 参数上自动完成。
尝试的解决方案:
首先,自动完成功能(AFAIK,我认为这可以吗?):
接下来是实际的 git commit 函数,不完整:
假设我可以弄清楚如何CommitTextGitRepo()
在上面工作,我需要的最后一件事是(我认为):
我是如此接近。我该如何完成这件事?:)
vim - 如何在vim中使用args递归地打开文件排除某些目录?
我想递归地打开一个目录中的所有文件,不包括一些子目录。
例如,我想排除任何级别中名为“inbox”的目录下的所有文件。
我可以指定要包含的目录。有没有办法指定我要排除的目录?
例如,以下命令打开.md
所有子目录中的所有文件:
我不想在任何名为inbox
.
vim - 加载插件 utl.vim 后如何加载 vimscript 文件?
在加载一个名为[utl.vim][1]
.
文档说,我需要将这些配置放入after-directory
:
我创建了一个名为utl.vim
inside~/.vim/after/
目录的文件。
但是这个文件没有来源。我使用:scriptnames
.
utl.vim
加载插件后如何确保 Vim 获取此文件?
vim - BufWritePre 上的 Vim 多个 autocmd
我同时使用Chiel92/vim-autoformat
和ntpeters/vim-better-whitespace
。第一个用于自动格式化代码,第二个用于删除额外的空格。我希望他们两个都使用 autocmd 在保存文件时调用它们。看来我没有正确使用 autocmd。我希望有人可以帮助我,因为我对 vimL 知之甚少。
我曾经有以下在保存时启用自动格式化:
而且我还使用'ntpeters/vim-better-whitespace',它也会在保存时去除过多的空格。
问题在于他们每个人都可以完美地工作。但是当将它们放在 .vimrc 中时,它们中的至少一个将不起作用,这取决于脚本中第一个出现的人。
这是我在倾倒 :au BufWritePre 后所拥有的
更新 ...
玩了一段时间后,我发现通过更改保存时自动格式化的方式:
他们俩都可以互相合作。
有人可以帮我理解这里发生了什么吗?谢谢!
search - vim:使用 vimrc 中的高亮执行正常搜索
我正在使用以下映射 * 以突出显示当前选择
但是,此脚本不会突出显示搜索结果。但是,当在 ex 命令模式下手动输入命令时:execute "normal /" . l:pattern . "\<CR>"
,我确实得到了突出显示。
请让我知道如何从 vimrc 脚本中启用高亮显示。
vim - VimL:宽度指定为总宽度函数的 VSPLIT
我想写一个vim脚本,用vsplit打开一个新窗口,其中新窗口的宽度等于总列数减去90。
结果将是,当前窗口将是 90 列宽(查看 80 列代码 + 装订线),新的 vsplit 将占据屏幕剩余的任何部分。
如果我正确理解 vsplit, :vsplit 90 指定正在创建的窗口应该是 90 列。有没有办法将窗口中的当前列数转换为变量?
vim - 如何检查 Vim 缓冲区是否可修改?
我发现 Vim 快捷方式nmap <enter> o<esc>
or nmap <enter> O<esc>
,它用回车键插入一个空行,非常有用。但是,它们对插件造成了严重破坏;例如,ag.vim
它使用要跳转到的文件名填充快速修复列表。在这个窗口中按回车(应该跳转到文件)给我错误E21: Cannot make changes; modifiable is off
。
为了避免在快速修复缓冲区中应用映射,我可以这样做:
这可行,但我真正想要的是避免在任何不可修改的缓冲区中进行映射,而不仅仅是在快速修复窗口中。例如,映射在位置列表中也没有任何意义(并且可能会破坏其他使用它的插件)。如何检查我是否在可修改的缓冲区中?