05.18 编辑器之神——Vim

编辑器之神——Vim

Vim普遍被推崇为类Vi编辑器中最好的一个,事实上真正的劲敌来自Emacs的不同变体。1999 年Emacs被选为Linuxworld文本编辑分类的优胜者,Vim屈居第二。但在2000年2月Vim赢得了Slashdot Beanie的最佳开放源代码文本编辑器大奖,又将Emacs推至二线,实现大反转!

编辑器之神——Vim

设计理念

命令组合:vim的设计理念是命令的组合;例如普通模式命令"dd"删除当前行,"dj"代表删除到下一行,原理是第一个"d"含义是删除,"j"键代表移动到下一行,组合后"dj"删除当前行和下一行。另外还可以指定命令重复次数,"2dd",和"dj"的效果是一样的。"d^","^"代表行首,故组合后含义是删除到光标开始到行首间的内容;"d$" $"代表行尾,删除到行尾的内容;用户学习了各种各样的文本间移动/跳转的命令和其他的普通模式的编辑命令,并且能够灵活组合使用的话,能够比那些没有模式的编辑器更加高效的进行文本编辑。

编辑器之神——Vim

模式间的组合:在普通模式中,有很多方法可以进入插入模式。比较普通的方式是按"a"(append/追加)键或者"i"(insert/插入)键。

可视模式和命令模式

可视模式:此模式下可以先选择文本的区域然后再使用命令来操作;因为可视模式下选择区域很难转换成普通方法,所以不要像我学习的时候那样用的那么频繁。然而有很多针对可视模式有用的插件。

编辑器之神——Vim

命令模式:是Vim的主要模式。它本质上像ed这种原始的行编辑器。:17,25d在不移动鼠标情况下删除17到25行。:-3t.复制当行的前面三行。:v/foobar/s/thang/thing/g 将不含有“foobar”的文档里所有“thang”替换为 “foobar”,也可以使用所有存储的正则表达式。

编辑器之神——Vim

Vim使用方法

  • 移动光标的方法:

[Ctrl]+[f]:屏幕向下移动一页,相当于[PageDown]按键。

[Ctrl]+[b]:屏幕向上移动一页,相当于[PageUp]按键。

0或功能键[Home]:移动到这一行的最前面字符处。

$或功能键[End]:移动到这一行的最后面字符处。

G:移动到这个文件的最后一行。

gg:移动到这个文件的第一行,相当于1G。

N[Enter]:N为数字,光标向下移动N行。

编辑器之神——Vim

  • 查找和替换:

/word:向下寻找一个名称为word的字符串。

?word:向上寻找一个名称为word的字符串。

:n1,n2s/word1/word2/g:在第n1行和n2行之间寻找word1这个字符串,并且将其替换为word2。

:1,$s/word1/word2/g:从第一行到最后一行寻找word1这个字符串,并且将其替换为word2。

:1,$s/word1/word2/gc:从第一行到最后一行寻找word1这个字符串,并且将其替换为word2.且在替换前显示提示字符给用户确认是否需要替换。

编辑器之神——Vim

  • 删除、复制和粘贴:

x,X:在一行字中,x为向后删除一个字符(相当于[Del]键),X为向前删除一个字符(相当于[Backspace])。

dd:删除光标所在的一整行。

ndd:删除光标所在的向下n行。

yy:复制光标所在的一行。

nyy:复制光标所在的向下n行。

p,P:p为将已复制的内容在光标的下一行粘贴,P则为粘贴在光标的上一行。

u:复原前一个操作。

[Ctrl]+r:重做上一个操作。

.:小数点,重复前一个操作。

编辑器之神——Vim

  • 一般模式切换到编辑模式:

i,I:进入插入模式,i为从目前光标所在处插入。I为在目前所在行的第一个非空格字符处开始插入。

a,A:进入插入模式。a为目前光标所处的下一个字符处开始插入。A为从所在行的最后一个字符处开始插入。

o,O:进入插入模式。o为在下一行插入。O为在上一行插入。

r,R:进入替换模式。r只替换光标所在那个字符一次。R会一直替换光标所在字符,直到按下Esc键。

  • 一般模式切换到命令行:

:q:离开vi.后面加!为强制离开。

:wq:保存后离开。:wq!为强制保存后离开。

编辑器之神——Vim

总结

一旦你习惯于Vim的移动命令,你会乐在其中。当然了你也可以直接使用鼠标,但如果你能熟练使用Vim移动命令,你将很少用鼠标了。手一直在键盘上比时不时腾出手来操作鼠标操作要会更快很多,铁杆Vim用户会重新映射Escape 键到其他更加方便的功能。

编辑器之神——Vim


分享到:


相關文章: