Vim / vi 生存指南

22

什么是必要的 vim 命令?新用户需要知道哪些命令以避免出现问题?请每条评论只写一个命令。


1
请重新措辞,要求人们每个答案只发布一个命令,以便可以正确投票。 - SCdF
应该是一个社区维基页面。 - mmcdole
36个回答

1

我的最大建议是:ctrl+q。当你不小心按下ctrl+s保存正在工作的文件时,这个快捷键可以拯救你的一天。


0
有时候重新格式化缓冲区很不错(例如重新标签,对齐括号等)。我最近学了一个时间节省器:
gg=G

例如...它将转换以下内容:
if ( !flag )
{
  // Do something special
  }
else
   {
 // Do another special thing
}

转换为以下内容:

if ( !flag ) 
{
    // Do something special 
}
else
{
    // Do another special thing
}

如果您有一个XML文件,希望重新缩进,因为格式混乱,您可以运行上面的命令,将以下内容转换为:
<root>
<addressBook>
    <contact first="Frank" last="Tank"/>
        <contact first="Foo" last="Man"/>
    </addressBook>
</root>

转换成更易读的人类语言,例如以下内容:

<root>
    <addressBook>
        <contact first="Frank" last="Tank"/>
        <contact first="Foo" last="Man"/>
    </addressBook>
</root>

0

我是通过这里的教程迈出了我的第一步,并使用参考速查表几周。当然,在vim/gvim/Macvim中也有vimtutor。


0

我的收藏:

%  find matching bracket/brace 
* and #  next/previous match
gg top of page
G end of the page
<Ctrl-v> Change to visual mode and select column
<Ctrl-a> increase current number by 1
<Ctrl-x> decrease current number by 1
Running macros

0

有人提到过热情洋溢的ctags吗?谷歌并安装它,比您可能拥有的默认ctags好得多。要使用它,请转到项目根目录并键入

:!ctags -R .

构建项目中的所有内容(Java、C++、Python、Ruby、JavaScript等)的数据库,在名为“tags”的文件中。

:help ctags提供了大量命令,太多以至于无法总结生成的标记的使用方式。将光标放在函数名称上,输入CMD]打开定义该函数的文件。还有许多类似的命令。几乎成为第二天性...几乎像IDE一样好用(而且VIM从不像Eclipse经常失望)。


0

真正的力量在于搜索。以下是必要的命令:

/Steve 将在文本中找到第一个“Steve”实例。 n 将在文本中查找下一个“Steve”。 :%s//Stephen/g 将用“Stephen”替换您刚刚搜索到的所有“Steve”实例。

不是为了自我推销,但我写了一篇博客文章,重点介绍了Vim对于初学者的关键部分。


0

我最喜欢的命令之一是%G,它可以直接跳转到文件末尾。在日志文件中特别有用。


1
实际上,您可以放弃“%”,只需键入“G”。 “%”是无意义的。 - Nathan Fellman
%并不是毫无意义的,因为它可以帮助你找到匹配的括号。如果你不在方括号、花括号或圆括号内部,那么它就是一个无操作。 - tzot

0

如何在模式之间切换(按i进入插入模式(其中一种方式),按esc退出插入模式,按冒号进入命令模式),以及如何保存和退出。(:wq)


0
另一个有用的命令是搜索某些内容:/ 例如,/Mon 将在您的文件中搜索(并在 vim 中高亮显示)任何 Mon 的出现。

0

正如其他人已经提到的,vimtutor是学习vim的最佳途径。它将教会你vim中所需的一切知识。我想给你的一个通用建议是尽可能少地使用插入模式。在其他模式下有巨大的能力,只需要一点练习就可以习惯。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接