[转]Vim常用90%的命令

2015-11-27  本文已影响122人  王巍

本文章转载来自[Vim简明教程]http://blog.csdn.net/niushuai666/article/details/7275406
后来又找到该文章一开始的出处[简明Vim练级攻略]http://coolshell.cn/articles/5426.html
另附[游戏:VIM大冒险]http://coolshell.cn/articles/7166.html

第一级 – 存活

安装 vim
启动 vim
什么也别干!请先阅读

当你安装好一个编辑器后,你一定会想在其中输入点什么东西,然后看看这个编辑器是什么样子。但vim不是这样的,请按照下面的命令操作:
启 动Vim后,vim在 Normal 模式下。
让我们进入 Insert 模式,请按下键 i 。(陈皓注:你会看到vim左下角有一个–insert–字样,表示,你可以以插入的方式输入了)
此时,你可以输入文本了,就像你用“记事本”一样。
如果你想返回 Normal 模式,请按 ESC
键。

现在,你知道如何在 InsertNormal 模式下切换了。下面是一些命令,可以让你在 Normal 模式下幸存下来:

i→ Insert 模式,按 ESC回到 Normal 模式.
x→ 删当前光标所在的一个字符。
:wq→ 存盘 + 退出 (:w 存盘, :q 退出) (陈皓注::w 后可以跟文件名)
dd → 删除当前行,并把删除的行存到剪贴板里
p → 粘贴剪贴板
推荐:
hjkl(强例推荐使用其移动光标,但不必需) →你也可以使用光标键 (←↓↑→). 注: j就像下箭头。
:help <command> → 显示相关命令的帮助。你也可以就输入 :help
而不跟命令。(陈皓注:退出帮助需要输入:q)

你能在vim幸存下来只需要上述的那5个命令,你就可以编辑文本了,你一定要把这些命令练成一种下意识的状态。于是你就可以开始进阶到第二级了。
当是,在你进入第二级时,需要再说一下 Normal 模式。在一般的编辑器下,当你需要copy一段文字的时候,你需要使用 Ctrl
键,比如:Ctrl-C
。也就是说,Ctrl键就好像功能键一样,当你按下了功能键Ctrl后,C就不在是C了,而且就是一个命令或是一个快键键了,
在VIM的Normal模式下,所有的键就是功能键了**。这个你需要知道。
标记:

第二级 – 感觉良好

上面的那些命令只能让你存活下来,现在是时候学习一些更多的命令了,下面是我的建议:(陈皓注:所有的命令都需要在Normal模式下使用,如果你不知道现在在什么样的模式,你就狂按几次ESC键)
各种插入模式

  • a → 在光标后插入

简单的移动光标

  • 0 → 数字零,到行头

拷贝/粘贴
(陈皓注:p/P都可以,p是表示在当前位置之后,P表示在当前位置之前)

  • P→ 粘贴

Undo/Redo

  • u → undo

打开/保存/退出/改变文件(Buffer)

  • :e <path/to/file> → 打开一个文件

花点时间熟悉一下上面的命令,一旦你掌握他们了,你就几乎可以干其它编辑器都能干的事了。但是到现在为止,你还是觉得使用vim还是有点笨拙,不过没关系,你可以进阶到第三级了。

第三级 – 更好,更强,更快

先恭喜你!你干的很不错。我们可以开始一些更为有趣的事了。在第三级,我们只谈那些和vi可以兼容的命令。
更好
下面,让我们看一下vim是怎么重复自己的:
.→ (小数点) 可以重复上一次的命令
N<command> → 重复某个命令N次
下面是一个示例,找开一个文件你可以试试下面的命令:

  • 2dd→ 删除2行

更强
你要让你的光标移动更有效率,你一定要了解下面的这些命令,千万别跳过

  1. NG→ 到第 N 行 (陈皓注:注意命令中的G是大写的,另我一般使用 : N 到第N行,如 :137 到第137行)
  1. gg → 到第一行。(陈皓注:相当于1G,或 :1)
  2. G → 到最后一行。
  3. 按单词移动:
  1. w → 到下一个单词的开头。
  2. e → 到下一个单词的结尾。
    >如果你认为单词是由默认方式,那么就用小写的e和w。默认上来说,一个单词由字母,数字和下划线组成(陈皓注:程序变量)
    >如果你认为单词是由blank字符分隔符,那么你需要使用大写的E和W。(陈皓注:程序语句)


    Word moves example

下面,让我来说说最强的光标移动:

% : 匹配括号移动,包括 (, {, [. (陈皓注:你需要把光标先移到括号上)

相信我,上面这三个命令对程序员来说是相当强大的。
更快
你一定要记住光标的移动,因为很多命令都可以和这些移动光标的命令连动。很多命令都可以如下来干:
<start position><command><end position>

例如 0y$

命令意味着:

你可可以输入 ye,从当前位置拷贝到本单词的最后一个字符。
你也可以输入 y2/foo 来拷贝2个 “foo” 之间的字符串。

还有很多时间并不一定你就一定要按y才会拷贝,下面的命令也会被拷贝:

(陈皓注:可视化选择是一个很有意思的命令,你可以先按v,然后移动光标,你就会看到文本被选择,然后,你可能d,也可y,也可以变大写等)

第四级 – Vim 超能力

你只需要掌握前面的命令,你就可以很舒服的使用VIM了。但是,现在,我们向你介绍的是VIM杀手级的功能。下面这些功能是我只用vim的原因。
在当前行上移动光标: 0 ^ $ f F t T , ;

  • 0 → 到行头

还有一个很有用的命令是 dt"→ 删除所有的内容,直到遇到双引号—— "。

区域选择 <action>a<object> 或 <action>i<object>
在visual 模式下,这些命令很强大,其命令格式为
<action>a<object> 和 <action>i<object>

  • action可以是任何的命令,如 d (删除), y (拷贝), v (可以视模式选择)。

假设你有一个字符串 (map (+) ("foo")).而光标键在第一个 o 的位置。

  • vi" → 会选择 foo.

块操作: <C-v>
块操作,典型的操作: 0 <C-v> <C-d> I-- [ESC]

  • ^ → 到行头

自动提示: <C-n> 和 <C-p>
在 Insert 模式下,你可以输入一个词的开头,然后按 <C-p>或是<C-n>,自动补齐功能就出现了……

Completion
宏录制: qa 操作序列 q, @a, @@
  • qa 把你的操作记录在寄存器 a。

示例
在一个只有一行且这一行只有“1”的文本中,键入如下命令:

  • J → 把所有的行连接起来(变成一行)
  • < 或 > → 左右缩进
  • = → 自动给缩进 (陈皓注:这个功能相当强大,我太喜欢了)


    Autoindent

在所有被选择的行后加上点东西:

  • <C-v>

分屏: :split 和 vsplit
.
下面是主要的命令,你可以使用VIM的帮助 :help split. 你可以参考本站以前的一篇文章VIM分屏

  • :split → 创建分屏 (:vsplit创建垂直分屏)

结束语
上面是作者最常用的90%的命令。
我建议你每天都学1到2个新的命令。
在两到三周后,你会感到vim的强大的。

有时候,学习VIM就像是在死背一些东西。
幸运的是,vim有很多很不错的工具和优秀的文档。
运行vimtutor直到你熟悉了那些基本命令。
其在线帮助文档中你应该要仔细阅读的是 :help usr_02.txt.
你会学习到诸如 !,
目录,寄存器,插件等很多其它的功能。

学习vim就像学弹钢琴一样,一旦学会,受益无穷。

上一篇下一篇

猜你喜欢

热点阅读