草庐IT

vim备忘表

全部标签

go - Vim 正常模式将制表符显示为 1 个字符宽,不与左边距对齐

这是我的光标在正常模式下最左边的位置。这是它在插入模式下的样子。我有以下文件类型设置auBufNewFile,BufRead*.py\settabstop=4|\setsofttabstop=4|\setshiftwidth=4|\settextwidth=79|\setexpandtab|\setautoindent|\setfileformat=unix|auBufNewFile,BufRead*.js,*.html,*.css\settabstop=2|\setsofttabstop=2|\setshiftwidth=2|auBufNewFile,BufRead*.go\sett

xml - Vim 7.3 自动完成 xml 标签

在vim7.2中编辑.xml文件时,标签会在我开始输入时自动关闭.它会自动完成以正确关闭最后打开的标签。最近下载了vim7.3,换了电脑。我复制了我的vimrc文件,但自动完成xml标记不起作用。如何恢复此功能?我不认为这是我下载的特殊vim脚本。 最佳答案 你确定这是在Vim中吗?例如,EclipseIDE提供了结束标记,但我从未见过Vim这样做。但是您可以教Vim使用插入模式缩写足够容易地自动关闭标签::iabbrev请注意,上面的^X和^O是文字。你必须输入CTRL-v然后CTRL-xCTRL-v然后CTRL-o以缩写形式输入

xml - 删除 Vim 中的重复行?

我正在尝试使用VIM删除我创建的XML文件中的重复行。(我无法重新创建文件,因为ID号会发生变化。)文件看起来像这样:我正在尝试删除重复的k="natural"v="water"行之一。当我尝试使用\_修饰符在我的正则表达式替换中包含换行符时,VIM似乎没有找到任何东西。关于使用什么正则表达式或工具的任何提示? 最佳答案 首先,您可以使用awk删除所有重复行,并保持它们的顺序。:%!awk'\!_[$0]++'如果您不确定是否还有其他一些您不想删除的重复行,那么只需添加条件即可。:%!awk'\!(_[$0]++&&/tag/&&/

xml - 在 Vim 中匹配属性和值的正则表达式

一直在寻找这个地方。假设我有这样一个XMLblock:而且我想使用Vim快速跳转到(或删除)属性及其值。执行此操作的好的正则表达式是什么?我尝试了明显的/.*=".*?"但它太贪婪了——如果我在同一行上有两个属性,它会同时选择它们。任何帮助将不胜感激。我专门寻找正则表达式而不是插件。 最佳答案 在vim中非贪婪运算符是\{-}因此你可以搜索:/[a-z]\{-}=匹配每个属性的LHS。更新:基于以下OP的评论:使用以下非贪婪搜索模式来完全假设"已在属性的RHS上到处使用:/[a-z]\{-}="[^"]\{-}"要将光标移动到搜索模

在 vim 中读取/编辑 XML 模式?

由于XML模式以其正常形式阅读(是的,只想通读模式)可能很乏味,我想知道是否有人知道现有的vim插件将以树形式显示模式,如几个XML编辑器呢?在此树中选择一个节点以导航到架构的相关部分将是一个很好的选择,但不是绝对必要的。感谢您的帮助! 最佳答案 我知道您正在寻找不同的东西,但请查看xml.vim。来自vimscriptswebsite上可用的信息,它说它能够:closingtagswhileyoutypeoptionaladdingattributes%matchesendorbegintagfoldingtags,comment

xml - Vim 宏或插件按顺序重新编号 xml 元素?

我有多个XML文件需要每天编辑。我无法控制读取这些文件的来源,也无法控制XML的格式。问题在于每个元素在每个block中都需要有自己的序号。有时每个block中可以有超过200个元素。当我需要在现有的长block中尽早插入命令时,我必须手动为每个后续元素重新编号,这既乏味又容易出错。此外,名称/值对与所需的顺序编号无关。下面的值“origcmd1”可能是“foobar98765”。它们只是为了说明我的问题。例子:从这里开始:someCmdsTakeParams,param2noguaranteeblocksaresequential#如果我需要提前添加命令,比如在origcmd1和or

xml - 如何使用 VIM 复制 XML 文件中的整个条目?

我在XML文件中有以下内容:我想复制这个条目。通常我会转到第一行,使用V进入Line-Visual模式,转到最后一行,然后拉出并粘贴。如何在不查找条目末尾的情况下复制整个条目? 最佳答案 我今天学到的解决方法(感谢回答CMS问题的this)是使用VIM的textobject动议。将光标放在要复制的条目上,然后在命令模式下键入以下内容:yat:y根据以下Action猛拉。at选择当前标签。请注意,如果光标位于“ArrayType”标签内,则将被抽出。另请注意,这不会拉动整行。仅从开始标签的开始大括号到结束标签的结束大括号。如果您不小心

xml - Vim - 删除 XML 注释

如何删除XML中的评论?如果开始和结束评论标签在同一行,我使用:g/^$/d删除评论。如何删除分布在多行的评论? 最佳答案 \_.而不是.允许匹配所有字符,包括换行符。但仅此一项就会导致正则表达式引擎过火,因为默认情况下正则表达式是贪婪的。使用\{-}而不是*对于非贪婪匹配所有。自g//d命令只删除一行(即使是多行匹配),最好切换到s///g(替换为全局)。:%s///g 关于xml-Vim-删除XML注释,我们在StackOverflow上找到一个类似的问题:

xml - 使用 gg=G 和 xml 的 Vim 格式化

我有一个格式正确的xml文件,并按照此处给出的命令作为答案:HowcanIautoformat/indentCcodeinvim?我正在尝试自动缩进我的文件以显示正确的嵌套。在尝试使用此命令之前,我使用:setft=xml将文件类型设置为xml因为我开始使用的文件的扩展名为.mm,还有:setnowrap。这是我的~/.vimrc文件:syntaxonsethistory=1000setsmartindentsettabstop=2setshiftwidth=2setexpandtab为什么当我发出gg=G时,我收到一条消息说54linesindented,但我的文件仍未嵌套?

xml - Vim 中的模式感知 XML 编辑

在IntelliJIDEA中编辑XML文件时,如果文档引用了模式,IDEA将获取模式并使用该信息进行自动完成。它知道哪些标签在哪些上下文中有效,因此当您按下CTRL-空格键时,它只会建议这些标签。它还突出显示根据架构无效的任何标签。有人知道提供类似功能的Vim扩展吗? 最佳答案 VIM7+支持默认没有任何插件,它可以加载XML定义,有DTD和SchemaNG的转换器:http://vimdoc.sourceforge.net/htmldoc/insert.html#ft-xml-omni例如我的Vim7.3已经有了XHTML的定义: