Questions tagged «vim»

Vim是可用于大多数主要平台的免费和开放源代码的模式文本编辑器。它可以在许多文本编辑任务中实现高效率,但学习曲线陡峭。要学习基础知识,请运行“:help vimtutor”。对于非编程问题,请使用https://vi.stackexchange.com/。

3
如何检查vim编译了哪些选项?
我想知道Vim二进制文件使用了哪些编译选项。有什么办法可以查询吗? 具体来说,我对它是否启用了Python支持感兴趣。
88 vim 

15
如何在Vim中不进入插入模式的情况下在光标所在的位置插入换行符?
是否可以在光标未进入插入模式的情况下在Vim中插入换行符?这是一个示例([x]表示光标位于x): if (some_condition) {[ ]return; } 有时,我可能想输入更多代码。因此,我按i进入插入模式,按Enter插入换行符,然后删除多余的空间。接下来,我将进入普通模式并将光标置于右大括号之前,然后执行相同的操作以使其完全独立。 我已经做了一段时间了,但是肯定有更好的方法吗?

11
使用Vim进行Lisp开发
我已经使用Lisp了一段时间,但是我开始对在Lisp中进行一些“实际”工作变得更加认真。我是Vim的忠实拥护者,想知道如何将Vim用作Lisp开发的编辑器来提高生产力。欢迎插件,工作流程建议等。 请不要说“使用emacs”,因为我已经对Vim有所了解,作为编辑我真的很喜欢它。
87 vim  ide  lisp  common-lisp 

7
Tab与Vim中的Space首选项
Vim在选项卡Vs方面非常宽容。空间偏好。据我了解,该tabstop设置指示制表符的宽度。该shiftwidth设置指定使用<<和>>命令时要增加/减少多少列,而该softtabstop设置会影响Tab在插入模式下按键时要插入的空白量。如果expandtab启用,Tab键将插入softtabstop多个空格字符。而在expandtab关闭的情况下,按键将Tab插入与匹配的最小数量的Tab +空格字符softtabstop。(如果我错了,请纠正我。) 最后一点让我感到奇怪:是否有您不想要的实际案例shiftwidth == tabstop && tabstop == softtabstop?我想不到一个。就我而言,如果我可以在一次分配中将所有这三个值设置为相同的值,那将是最方便的。例如调用: :set stab=4 这相当于运行: :set tabstop=4 softtabstop=4 shiftwidth=4 谁能建议如何做到这一点? 更新 感谢这么远的答复太多PHP,霍布斯和kaiser.se。而不是单独答复每个人,我在这里更新问题。 Softtabstop,expandtab关闭 我在上面说过,在关闭expandtab的情况下,按Tab键会插入与匹配的Tab +空格字符,数量最少softtabstop。我支持这一点,但我认为我需要解释一下我的意思。我将通过一些示例来尝试这样做。要继续,请运行:set list以使您可以看到制表符。 tabstop=4 softtabstop=2 shiftwidth=4 noexpandtab 在插入模式下,按Tab键将插入2个空格字符。再按一次Tab键,而不是再插入两个空格字符(总共4个空格字符),而是用一个制表符替换前2个空格。制表符设置为4,因此单个制表符的宽度与4个空格相同。 tabstop=4 softtabstop=6 shiftwidth=4 noexpandtab 在插入模式下,按Tab键将插入1个制表符和2个空格。制表符的宽度为4,因此总宽度为6,这是使用3个字符实现的。第二次按Tab键将插入两个Tab字符,并删除先前插入的两个空格。总宽度为12,使用3个字符即可实现。 在这两个示例中,Vim都插入了与softtabstop相匹配的最小数量的制表符+空格字符。 如果我在关闭expandtab的情况下工作,我不会希望通过将softtabstop设置为不同于tabstop的值来实现额外的粒度控制。它仍然将是有益的我能够设置tabstop,softtabstop并shiftwidth用一个命令相同的值。 expandtab会使softtabstop冗余吗? tabstop=4 softtabstop=0 shiftwidth=4 expandtab 在插入模式下,按Tab键将插入4个空格。按下Delete键会删除一个空格-因此,如果您不小心按下Tab键,则必须退格4次。 tabstop=4 softtabstop=4 shiftwidth=4 expandtab 在插入模式下,按Tab键将插入4个空格。按退格键将删除4个空格。 如果我使用的是expandtab开机状态,则希望使用Delete键删除与Tab键插入相同的空格。所以在这种情况下,我也觉得这将是能够分配相同的值非常有用tabstop,softtabstop并shiftwidth同时进行。 快捷方式仍然有用 Vim提供了这么多的灵活性,这很好,但是我看不到自己需要它。我只希望能够选择选项卡的宽度,以及它是“硬”选项卡(使用制表符)还是“软”选项卡(由空格组成)。硬标签和软标签之间的切换很容易(:set expandtab!),但我希望设置标签的宽度更加简单,而不必费心使用3个不同的参数。 …

8
隐藏Vim中所有(不)匹配的行
是否可以显示/隐藏vi或Vim中的所有匹配行?不突出显示,而仅显示那些行。 例如,我有一个带有单词word的文本ERROR。如何使其仅显示包含的行,ERROR以及如何仅显示不包含的行ERROR? 是否有一个解决方案,而不删除所有匹配的行,然后将其撤消?
87 vim  vi 


6
如何在Vim中一次打开多个文件?
有没有办法从Vim中打开目录中的所有文件?因此:command,这实际上表示“将所有文件打开/some/path到缓冲区中”。 理想情况下,最好以递归方式在目录下打开所有文件。
87 vim 

6
设置MacVim默认字体
如何为MacVim设置默认字体? 我尝试添加以下行 set guifont = Monaco:h12 到以下两个文件之一: ~/.vimrc ~/.gvimrc ~/Applications/MacVim/MacVim.app/Contents/Resources/vim/vimrc ~/Applications/MacVim/MacVim.app/Contents/Resources/vim/gvimrc ~/Applications/MacVim/MacVim.app/Contents/Resources/vim/.vimrc ~/Applications/MacVim/MacVim.app/Contents/Resources/vim/.gvimrc 我重新启动了MacVim,但是它仍然不会设置默认字体。我错过了什么吗? 更新:我可以set guifont在运行时发出命令,它工作正常。它似乎并没有从我的启动文件中读取它。
87 vim  fonts  default 

8
如何在Vim中的命令和插入模式之间切换?
我刚刚开始使用Vim作为IDE。我已经将它用作测试编辑器已有一段时间了,因此不必经常进入命令模式。但是,由于我使用Java进行编程,因此必须进入命令模式来制作文件,编译/运行...等。 问题是:我需要一种在两种模式之间切换的好方法。 我在网上看了一下,上面说<Esc>应该是要用钥匙的,但这对我不起作用(也许不是gVim的原因?我不知道为什么)。 我CTRLO每次必须按一下才能进入命令模式;退出键在该模式下起作用...它使我回到插入模式。但是,是否有更好或更简单的在命令模式和插入模式之间切换的方式?
87 vim  insert  command 

12
如何在VIM中的大型项目中导航
您如何仅使用VIM管理大型项目(数百个文件)? 我个人开始在任何规模较小的项目中都遇到问题。 有什么方法可以快速“归档”,最好是使用名称补全? 在另一个文件中时,与“转到类定义”相同 我有点了解VIM的所有基础知识,因此使用它来编写脚本或快速编辑某些源代码没有问题。但是当我不得不在文件之间导航时,这对我来说真的很麻烦。
86 vim  editor 

1
如何安装Vimball插件(扩展名为.vba)?
如何安装Vimball插件(带有.vba扩展名)? 该文档只是说: 安装详细信息编辑vba文件并键入: :so % Vimball文档说: 用户需要对vimball进行的所有操作是: vim someplugin.vba :so % :q 我必须在普通模式下(在Vim中)还是在_vimrc文件中写入? 我必须写.vba文件的完整路径吗? 我无法vim someplugin在普通模式下书写。我要写:vim plugin吗?
86 vim  vim-plugin 

8
如何在VIM的命令行上指定“光标下的单词”?
我想编写一个在VIM中指定“光标下的单词”的命令。例如,假设我将光标放在一个单词上,然后使它出现两次。例如,如果单词是“ abc”,而我想要“ abcabc”,则可以输入: :s/\(abc\)/\1\1/ 但是然后,我希望能够将光标移动到“ def”,并使用相同的命令将其更改为“ defdef”: :s/\(def\)/\1\1/ 如何在命令行中编写命令,以便做到这一点? :s/\(*whatever is under the commandline*\)/\1\1
86 vim  command-line 



3
转到第n个符号
如何在Vim中从左移光标到第n个符号? 我看到的解决方案之一是按0n<right-arrow>,它将移动到n + 1位置。有没有更自然的方法呢?
85 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.