初学VIM

看了一下Vim tutor,虽然是英文的但是感觉不错,浅显易懂,而且仅仅是入门级别的介绍,900多行,对我我这样的菜鸟来说完全够初步学习了。学习vim的命令,正如tutor里面说说的,learn by usage。
        首先,打开终端,输入vimtutor,就可以进入tutor了,此时的tutor文件是一个副本,可以放心改动。注意如果是命令vim tutor则是用vim打开tutor文件。
    打开tutor之后,最先学的是移动光标。但是要先明确一下,vim有两种模式,一是命令行模式,一是插入模式(另外一种分法是三种模式)。在命令行模式下才可以用h(left)、j(down)、k(up)、l(right)移动光标。虽然使用键盘上的方向键在两种模式下移动光标都不成问题。命令行模式下输入一些命令可以执行一些移动光标、删除等操作。vim打开之后默认进入的就是命令行模式。当然以下所说的命令都要在命令行模式下进行。需要注意的是,vim下不仅命令区分大小写,对键盘操作也区分大小写。插入模式下,所输入的即所见。在命令行模式下按i即可转到插入模式(当然还有其它方式可以进入插入模式)。从插入模式按<ESC>即可返回到命令行模式。另外在命令行模式下如果输入有误,按<ESC>即可放弃输入。
    那么接下来按照文本编辑器的一般功能,就要有File、edit、search等菜单。当然vim也有只不过是用命令来实现。
首先从一些简单的edit操作开始:
1、删除
(1)删除单个字符---x删除光标后面的字符,X删除光标前的字符。
(2)删除多个字符---number+x删除光标后面的number个字符,number+X同理,只是方向不同。例如:4x,5X。
(3)删除整个单词---当然要用上面的方法可以达到目的,但是要数字母个数很麻烦。更快地做法就是移动光标到单词头,按dw。
(4)连续删除多个单词---d+number+w,number即个数,d取delete的首字母。如d2w
(5)删除当前光标至行末的所有---d$
(6)删除整行---dd
(7)删除多行---number+dd
    在vim中的一些操作采用的是operator+[number]+motion的格式,number是可选的。d就是一个operator,number是表示要重复的次数。下面介绍以下几个motion:
    w---直到下一个单词的开头,不包括第一个字母
    e---到当前单词的末尾,包括最后一个字母
    $---到行末,包括最后一个字母
    0---到行首
    这些motion单独使用或者以number+motion的格式使用可以达到快速移动的光标的目的。
    当然删除一个单词也可使用de,但是跟dw是有差别的。
2、增加
    i---在当前光标位置插入文本。i取insert的首字母。
    a---在光标後附加文本。a取append的首字母
    A---在当前行末附加文本,无需将光标移动到行末
    o---在光标下增加一行。o取open的首字母。
    O---在光标上增加一行。
    这5个都会使vim进入insert模式,区别在于光标的位置。
3、改动
    u---撤销上一次的改动,undo之意,相当于常见IDE的向左撤销
    U---修复整行的改动。
    CTRL-R---重做改动,相当于常见IDE的向右撤销
    rx---将当前光标所指的字母用x来替换。r即replace之意,x根据自己所需输入。
    R---替换多个字符。
    c+[number]+motion---改变操作,c取change之意。会删除文本内容,进入插入模式。c的动作会和d一样删除掉内容,区别在于执行之后会进入插入模式。
    另外cc是快速改变整行的操作。
4、复制、粘帖
    v---进入virtual模式,移动光标选中文本。
    y---复制选中的文本,取yank之意。y是一个operator,也支持y+[number]+motion。
    p---将文本放置与光标後,取put的之意,可以paste,也可put之前删除掉的内容。

第二部分search

    /+phrase---向前搜索phrase
    ?+phrase---向后搜索phrase
    n---重复搜索
    N---反方向重复搜索
    CTRL-O---返回旧位置
    CTRL-I---跳到新位置
    搜索操作的一些选项:
    ic或ignorecase---忽略大小写,ic取ignore case之意
    hls或hlsearch---高亮匹配项,hls取highlight search之意
    is或incsearch---显示部分匹配项
    noic---取消忽略大小写
    nohlsearch---取消高亮匹配
    通过例如":set ic"来设置,也可以用“/phrase\c”来一次性设置
    
    %---跳转到匹配的括号,包括),],}
    
    :s/old/new---用new来替换当前行的第一个old
    :s/old/new/g---当前的所有old都用new来替换,g即globally之意
    :#,#s/old/new/g---替换两行之间的所有old,#即行数。
    :#,#s/old/new/gc---替换之前弹出提示

第三部分File
    :q---退出未改动的文件
    :q!---退出,不保存改动
    :w---保存改动
    :!+command---执行外部命令

        以上只是tutor的部分内容。tutor的最后推荐了一些东西进行深入学习。
        (1)vim的 user manual,通过“:help user-manual”
        (2)两本书《Vim - Vi Improve》、《Learning the Vi Editor》。tutor中的推荐说前者尤其适合初学者。
        当然网络上还有其它Vim的教程,有个很有趣的学习Vim的游戏叫做Vim冒险,我玩了以下,第一关那了钥匙就不知道怎么走了 ,也懒得玩了。看了网上别人配置的Vim,觉得还有相当长的一段路要走啊。

你可能感兴趣的:(初学VIM)