许多VIM命令背后是否有一些模式?

时间:2010-01-12 11:36:48

标签: vim editor

我必须在IDE中添加VIM个性。我从未使用过VIM而不是最基本的编辑,现在我对命令结构的复杂性感到不知所措。

计数移动和插入/删除命令的组合是否有任何整体结构? 我只是看不到树木。

4 个答案:

答案 0 :(得分:17)

嗯,显然有一个手指位置模式 h j k l

^ 到达行的开头并且 $ 到达结尾的事实是基于常见的正则表达式语法。

向前和向后

Ctrl-F Ctrl-B 页面,这非常直观。

i 插入(之前)和 a 追加(在光标之后)。同样,
I 插入行的开头, A 附加在最后。

> < 分别缩进和缩进。这也很直观。

但总的来说,许多其他命令都在左边的任何键上 - 很难找到字母表字母和编辑命令之间的直观映射。

重复计数总是在命令之前输入,并且大多数时间重复执行该命令,但在某些情况下会做一些聪明但类似的事情。

我认为不要对vi疯狂的秘诀就是从一小撮命令开始。我有很多同事除了

之外什么都不知道
  • 使用箭头键移动光标(您不必使用 h j k l );
  • 使用 i 插入,使用 Del 删除(您不必使用 x );
  • 使用 d删除一行 d
  • 使用 Esc
  • 退出输入模式
  • :x (退出)或 q!退出vi(退出,扔掉我的更改!)

因为我更聪明,我知道并使用的附加命令是:

  • 使用 g g 转到文件顶部,底部带 G
    我可以使用(行号) G 转到指定的行号。
  • y (yank)复制一行,用 p
  • 粘贴
  • c w 更改单词, C
  • 的其余部分
  • d w 删除一个单词,其余部分用 D
  • 我有时会使用来重复最后一个命令,或者如果我搞砸了,那么 u (撤消)。

当您有机会使用其他命令时,您可以根据需要逐个教给他们。

答案 1 :(得分:10)

This is a good article用于解释VIM哲学。

答案 2 :(得分:2)

我认为,与其他编辑器相比,更好地定义VIM的特性是其广泛的运动命令。要学会充分利用VIM,首先要尽可能少地使用箭头键,并在文本中用“块”来表示,如“一个句子”,“一个标签”,“一个词”,“一组括号”。

假设你有function foo($bar, $fooz)你可以通过简单地将光标定位在括号内的任何位置并按ci)(助记符:更改内括号)来更改参数。相同的模式适用于其他命令:yank(y),delete(d)等等。

我知道这并不能解释整个“VIM哲学”,但将正常模式命令与大量运动修改器结合起来才能真正让我看到光。

答案 3 :(得分:0)

有很多有趣且有趣的教程。一个例子是

http://blog.interlinked.org/tutorials/vim_tutorial.html

但是他们大多数人会给你的广泛结构是

  1. 有两种主要的编辑模式 - 命令模式和插入模式。您可以使用密钥从插入模式切换到命令模式。
  2. 您可以通过键入单个键或一系列键在命令模式下执行命令。
  3. 命令可以帮助您实现各种各样的事情 删除行 - dd yanking(复制行) - yy 粘贴当前行下方的行 - p 粘贴当前行上方的行 - P(依此类推)

    命令模式下的大多数命令都可以通过“count”预先固定,以指示命令必须执行的次数。例如,3dd将删除三行。

    命令模式下的一组命令可让您切换到插入模式。这将在下面解释。

  4. 从命令模式进入插入模式有多种方法。其中突出的是(i-插入光标,I-插入行的开头,o-插入一行,O-插入一行,a-append,A-append at line。

    < / LI>

    的快速参考

    http://www.andy-roberts.net/misc/vim/vim.pdf

    将帮助您了解“计数”的相关性