Vi & Vim

使用vi和Vim系列文本编辑器的人员的问答


2
如何缩进空格而不是制表符?
我在JADE文件中编码一些html模板。我想用空格而不是制表符自动缩进代码。我尝试了shiftwidth=2,tabstop=2但无论如何,仍然使用制表符而不是空格键来缩进,这会导致JADE编译抛出错误。 如何使用空格而不是制表符自动缩进大部分代码?

5
删除直到当前内部块的右端
假设我有一个这样的代码(|代表光标位置): func1(x|, func2(), y); 我想得到: func1(x|); 有没有一种方法可以将代码从光标位置删除到当前内部块右端之前的位置? 我知道我可以接受,dt).但是我想知道是否有一种方法可以将其与实际di)功能混合使用。

2
在autocmd中是否可以进行AND事件?
我想autocmd 在两个事件上触发,但通常不会以某种方式触发它,即,如果其中一个事件发生,则触发autocmd。如果两个事件都发生,我想触发它​​。 例如: 常用的方法 autocmd BufWrite,BufRead *.c *.py *.h :call StripTrailingWhitespaces() 此代码将在BufWrite或BufRead上调用StripTrailingWhiteSpaces() 我想做类似的事情: autocmd Filetype c,cpp,python AND BufWrite :call StripTrailingWhiteSpaces() 换句话说,autcmd当文件类型为c,cpp,python中的一种时触发,并在此缓冲区上进行写操作。 任何帮助表示赞赏。
21 autocmd 

2
追加到剪贴板的一个如何在vim中注册?
我已经知道您可以使用以下命令将某些内容复制到寄存器中:(加上抽出,删除等命令) "a 我也了解您可以使用以下方法将其附加到寄存器中: "A 另外,我了解如何使用以下方法将内容复制到剪贴板寄存器: "+ 我键入什么来附加到剪贴板寄存器? 我的vim版本: VIM - Vi IMproved 7.4 (2013 Aug 10, compiled Jan 2 2014 19:39:59) Huge version with GTK2 GUI.

5
切换git分支的最简单方法
现在,我正在使用逃犯来管理几乎所有与git相关的事情,但是我找不到能快速可视化并在可用分支之间进行切换的良好工作流程。 我可以做:Git checkout <branch-name>,问题是它会自动完成文件名和分支,并且我希望分支列表。

4
在插入模式下撤消<CR>
有时在插入模式下,我会&lt;CR&gt;误击,并且必须多次击退空格(取决于缩进)才能返回原位。 例如 &lt;div&gt; &lt;p&gt; This is some text []&lt;/p&gt; &lt;/div&gt; 光标是[],我点击&lt;CR&gt;: &lt;div&gt; &lt;p&gt; This is some text []&lt;/p&gt; &lt;/div&gt; 现在,我必须按两次退格键才能返回上一行(这种情况还不错,但缩进量不大)。 您知道更好的方法吗?

2
如何重新定义插件键映射?
我安装了一个不提供禁用其定义的键映射的机制的插件。我想&lt;leader&gt;cc为我自己的目的重新定义插件定义的映射()之一,我尝试将以下行放入我的.vimrc: noremap &lt;leader&gt;cc echo "my purpose" 但这不起作用,&lt;leader&gt;cc仍在执行plugin命令。 如何定义映射,使其覆盖插件定义的映射?


8
是否有折叠vimrc文件的最佳实践
我最近意识到我vimrc现在已经超过400行(IMO太多了,我会尽量减少它),并且为了使其更易于浏览,阅读和编​​辑,我决定研究一下vim中的可折叠概念(我不熟悉)。 我尝试将folding方法设置为,indent但是我不喜欢结果(这太混乱了,主要是因为我的很大一部分vimrc都没有真正缩进)。 我也尝试设置foldmethod为expr,syntax但无法正确折叠任何东西。 在这里,diff用作折叠方法似乎无关紧要。(或者如果我不明白如何使用它) 因此,marker由于我在文件中发现了“ "{{{和” "}}}标记,因此目前我使用的方法并不完全令我满意。 因此,我想知道是否存在有关正确折叠的最佳实践或通用准则vimrc。 注意1:众所周知,SO不是论坛,也不是收集个人意见,这也不是我想要的:当然,我猜有些人有他们的偏好,但我想知道为什么使用例如,标记比使用缩进可提高可读性。 注2:我的主要目标也是使自己vimrc尽可能清晰,因此,如果存在其他最佳做法来创造一个好的,vimrc我对此很好奇。 编辑1:我应该明确指出,我的vimrc内容已经细分为(主要是 常规选项 插件(每个插件及其配置包含一个小节) 映射 导航(也包含小节) 颜色 等等... 正是这种结构让我想到了折叠:我觉得能够只在特定点上输出我感兴趣的部分非常方便。 编辑2:vimrc在几个文件中提及细分的答案是有效的,但出于个人喜好,我宁愿使用折叠,因为我认为在包含我的dotfile的git repo中仅维护一个文件会更容易。那只是个人喜好,我知道也可以使用这种方法,但是我更喜欢使用折叠。
21 vimrc  folding 


5
适用于.vimrc和插件的GitHub
我知道很多人将.vimrc存储在GitHub上,以便更轻松地开始在新计算机上工作,这对我来说完全有意义。但是,包括插件是有问题的,因为我使用的插件已经是git存储库。如何创建一个可同时跟踪其.vimrc和任何可能安装的插件的存储库?


2
从vim执行bash脚本
我使用vim进行bash脚本编写。有时候我不想创建一个新文件,使其可执行,执行然后删除。我的意思是仅将使用一次的脚本。 例如,我打开vim并输入以下内容: #!/bin/bash ll | while read line do echo $line done 我没有保存该文件,只是使用vim来简化bash脚本编写。我知道我可以通过!vim 执行bash命令。但是如何执行缓冲区中的所有内容呢?

3
我该如何告诉vim某些文件扩展名是同义词?
我在.cpp文件中编辑C ++代码,而模板代码进入.tcc文件中。当我打开这样的文件时,没有语法突出显示可用。我set syntax=cpp在中的一个tpp.vim文件中尝试过~/.vim/ftplugin/,但是它什么也没做,而在编辑器中却可以。有什么办法可以使vim将特定扩展名与其他扩展名同义?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.