一、VIM的三种模式:

        1.一般模式:上下左右移动、删除字符、删除整行、复制、粘贴(无法编辑文件内容)

        按键说明:

                移动光标:

                        ↑(k)、↓(j)、←(h)、 →(l)分别指上下左右移动一个字符;

                        20k 即向上移动20行(移动20此1个字符),同理10j代表向下移动10行

                        [Page Up] [Page Down]向上向下翻一页

                        空格:向右移动一个字符

                        n空格: 向右移动n个字符

                        0 :移动到行首

                        $:移动到行尾

                        G:移动到文档最后一行

                        nG:移动到文档第N行

                        gg:移动到文档首行

                        H :移动到当前屏幕最上方一行的第一个字符

                        L :移动到当前屏幕最下方一行的第一个字符

                        n回车:向下移动N0行

                        w 移动到下一个词首字符

                搜索替换:

                        / 向下搜索  n 下一个 N反方向下一个

                        ?向上搜索 n 下一个 N反方向下一个

                        :n1,n2s/word1/word2/g 第n1到第n2行之间用word2替换word1

                        :1,$s/word1/word2/g  全文替换

                        :1,$s/word1/word2/gc 全文替换,并提示确认

                复制/粘贴/删除:

                        x, X 向后向前删除当前字符

                        dd 删除当前行

                        ndd 向下删除n行,包括当前行

                        d1G 删除首行到当前行,包括删除当前行

                        dG 从当前行到末行全部删除

                        d$ 删除从光标处开始到行末

                        d0 删除从行首到光标处

                        yy 复制当前行

                        nyy 光标所在行开始复制N行

                        y1G 复制首行到光标所在行

                        yG 复制光标所在行到末行

                        y0 y$ 复制到行首到行末

                        p, P 当前行向上向下粘贴

                        J 两行合并为一行向下

                        c 重复删除动作

                        u 恢复上一次操作

                        ctrl+r 重做一次

                        . 重复前一个动作

        2.编辑模式:按i, I, o, O, a, A, r, R中任意一个键进入编辑模式

                i:进入插入模式,当前光标处插入

                I:目前所在行的行首开始插入

                a:当前光标的下一个字符开始插入

                A:光标所在行的行末插入

                o:光标所在行的下一行处插入一行

                O:光标所在行的上一行处插入一行

                r:替换光标所在的字符一次

                R:一直取代光标所在的字符

                :%s/^/your_word/ 行首插入指定字符

        返回一般模式按ESC;

        3.命令行模式:一般模式中输入: / ? 中任意一个进入命令行模式即对vi下达的一些命令在此模式中进行;

                :w 保存

                :w! 强制保存

                :q 退出

                :q! 强制退出不保存

                :wq 保存并退出

                ZZ 如果未改动则不保存,改动了则保存

                :w [filename] 另存为

                :r [filename] 读入另外一个文档

                :n1,n2 w [filename] 将N1到N2行保存为一个文档

                :! command 暂时离开vi执行系统命令

                :set nu 设置显示行号

                :set nonu 设置取消行号

                :help 查看帮助

二、vim 临时文件及救援恢复以及开启时的警告信息:

        vim编辑文件时会在文件的所在目录生成一个临时文件:.filename.swp;

        当vim意外中断后(如突然断电等)正在编辑的文件没有保存的话,(因为.swp文件的存在)再打开会出现警告信息:

        E325: ATTENTION

        Found a swap file by the name ".ip.sh.swp"

        owned by: root   dated: Thu Sep 20 19:00:46 2012

        file name: ~root/ip.sh

        modified: no

        user name: root   host name: localhost

        process ID: 2717 (still running)

        While opening file "ip.sh"

        dated: Sun Sep 16 23:43:44 2012

        (1) Another program may be editing the same file.

        If this is the case, be careful not to end up with two

        different instances of the same file when making changes.

        Quit, or continue with caution.

        (2) An edit session for this file crashed.

        If this is the case, use ":recover" or "vim -r ip.sh"

        to recover the changes (see ":help recovery").

        If you did this already, delete the swap file ".ip.sh.swp"

        to avoid this message.

        Swap file ".ip.sh.swp" already exists!

        [O]pen Read-Only, (E)dit anyway, (R)ecover, (Q)uit, (A)bort:

        出现此警告信息有两种可能原因:

                1.同时有多人在编辑这个文件:要注意同时多人编辑出现一些意外

                2.编辑该文件的时候会话崩溃了,解决办法就是使用:recover 或者 vim –r ip.sh来恢复文件的更改,如果是这样的话同时需要删除这个临时文件以避免警告信息再次出现。

                3.提供一些可供选择的操作:O 只读打开 E 编辑 R 恢复 Q 退出 A 忽略(也会退出到命令行)

三、区块选择:

        v 会将光标经过的字符反白选定

        V 会将光标经过的行反白选定

        ctrl+v 区块选择,会用长方形选择指定区域

        y 复制选定的反白地方

        d 删除选定的反白地方

四、多文件编辑:

        vi file1 file2 file3

        :n 编辑下一个文件

        :N 编辑上一个文件

        :files 列出打开的所有文件

五、多视窗:

        :sp [filename] 开启一个新视窗,不带filename 则表示打开同一个文档

        [ctrl]+w+ j或[ctrl]+w+↓ 移动到下方视窗

        [ctrl]+w+ k或[ctrl]+w+↑ 移动到上方视窗

        [ctrl]+w+ q 退出视窗

六、vim环境设置与记录:

        ~/.viminfo 记录在vim里所做的动作

        ~/.vimrc 设置当前用户vim环境

以上内容整理自鸟哥的私房菜vim章节。