内容在鸟哥P300
    1.常用命令
    image.jpeg
    我认为我常用的几个
    0| $ 移动到这一列的最前边|最后边
    20(enter) 向下移动20行
    x 向后删除一个字符
    . (小数点) 重复前一个操作
    u 撤销前一个操作
    :! 命令 就能看到命令的执行结果
    可视区块
    v V Ctrl+v
    d y p
    自己去体会 就知道了 命令行模式按着就行
    #多文件打开 vim vimtest1 vimtest2 在vimtest1 中输入 :n 就会进入第二个文件 在vimtest2 中输入 :N 就会进入第一个文件 #多窗口打开 vim /root/ds 在命令行输入 :sp [filename] 如果 不输入就还会打开这个文件 这个文件会出现2窗口 使用场景: 文件太长 既想看头部 又想要看尾部 如果 输入文件名字就会打开这个 文件 这两个文件之间切换 使用 ctrl+w+上箭头|下箭头 按法是 先按住ctrl和w 然后松开 按箭头就行 下边有详细解释
    一.命令模式可用命令
    image.jpeg
    image.jpeg
    image.jpeg
    二.编辑模式可用命令
    image.jpeg
    三.命令行模式命令
    image.jpeg
    2.vim 的暂存盘、救援回复与打开时的警告讯息
    当我们在使用 vim 编辑时, vim 会在与被编辑的文件的目录下,再创建一个名为
    .filename.swp 的文件。 比如说我们在上一个小节谈到的编辑 /tmp/vitest/man_db.conf 这个
    文件时, vim 会主动的创建 /tmp/vitest/.man_db.conf.swp 的暂存盘,你对 man_db.conf 做
    的动作就会被记录到这个 .man_db.conf.swp 当中喔!如果你的系统因为某些原因断线了,
    导致你编辑的文件还没有储存,这个时候 .man_db.conf.swp 就能够发挥救援的功能了!

    1. [dmtsai@study vitest]$ vim man_db.conf
    2. E325: ATTENTION <==错误代码
    3. Found a swap file by the name ".man_db.conf.swp" <==下面数列说明有暂存盘的存在
    4. owned by: dmtsai dated: Mon Jul 6 23:54:16 2015
    5. file name: /tmp/vitest/man_db.conf <==这个暂存盘属于哪个实际的文件?modified: no
    6. user name: dmtsai host name: study.centos.vbird
    7. process ID: 31851
    8. While opening file "man_db.conf"
    9. dated: Mon Jul 6 23:47:21 2015
    10. 下面说明可能发生这个错误的两个主要原因与解决方案!
    11. 1 Another program may be editing the same file. If this is the case,
    12. be careful not to end up with two different instances of the same
    13. file when making changes. Quit, or continue with caution.
    14. 2 An edit session for this file crashed.
    15. If this is the case, use ":recover" or "vim -r man_db.conf"
    16. to recover the changes see ":help recovery").
    17. If you did this already, delete the swap file ".man_db.conf.swp"
    18. to avoid this message.
    19. Swap file ".man_db.conf.swp" already exists! 下面说明你可进行的动作
    20. [O]pen Read-Only, Edit anyway, Recover, Delete it, Quit, Abort:

    如果你之前的 vim 处理动作尚未储存,此时你应该要按下“R”,亦即使用 (R)
    ecover 的项目, 此时 vim 会载入 .man_db.conf.swp 的内容,让你自己来决定要
    不要储存!这样就能够救回来你之前未储存的工作。 不过那个 .man_db.conf.swp
    并不会在你结束 vim 后自动删除,所以你离开 vim 后还得要自行删除
    .man_db.conf.swp 才能避免每次打开这个文件都会出现这样的警告!如果你确定这个暂存盘是没有用的,那么你可以直接按下“D”删除掉这个暂存
    盘,亦即 (D)elete it 这个项目即可。 此时 vim 会载入 man_db.conf ,并且将旧
    的 .man_db.conf.swp 删除后,创建这次会使用的新的 .man_db.conf.swp 喔!
    至于这个发现暂存盘警告讯息的画面中,有出现六个可用按钮,各按钮的说明如
    下:
    [O]pen Read-Only:打开此文件成为只读文件, 可以用在你只是想要查阅该文件内容
    并不想要进行编辑行为时。一般来说,在上课时,如果你是登陆到同学的计算机去看
    他的配置文件, 结果发现其实同学他自己也在编辑时,可以使用这个模式;
    (E)dit anyway:还是用正常的方式打开你要编辑的那个文件, 并不会载入暂存盘
    的内容。不过很容易出现两个使用者互相改变对方的文件等问题!不好不好!
    (R)ecover:就是载入暂存盘的内容,用在你要救回之前未储存的工作。 不过当你
    救回来并且储存离开 vim 后,还是要手动自行删除那个暂存盘喔!
    (D)elete it:你确定那个暂存盘是无用的!那么打开文件前会先将这个暂存盘删
    除! 这个动作其实是比较常做的!因为你可能不确定这个暂存盘是怎么来的,所以
    就删除掉他吧!哈哈!
    (Q)uit:按下 q 就离开 vim ,不会进行任何动作回到命令提示字符。
    (A)bort:忽略这个编辑行为,感觉上与 quit 非常类似! 也会送你回到命令提示字
    符就是啰!
    3.区块选择

    image.jpeg
    4.多文件编辑
    假设一个例子,你想要将刚刚我们的 hosts 内的 IP 复制到你的 /etc/hosts 这个文件
    去, 那么该如何编辑?我们知道在 vi 内可以使用 :r filename 来读入某个文件的内容, 不
    过,这样毕竟是将整个文件读入啊!如果我只是想要部分内容呢?呵呵!这个时候多文件
    同时编辑就很有用了。 我们可以使用 vim 后面同时接好几个文件来同时打开喔!相关的
    按键有:
    image.jpeg
    列出目前这个 vim 的打开的所有文件
    在过去,鸟哥想要将 A 文件内的十条消息“移动”到 B 文件去,通常要开两个 vim
    窗口来复制, 偏偏每个 vim 都是独立的,因此并没有办法在 A 文件下达“ nyy ”再跑到 B
    文件去“ p ”啦! 在这种情况下最常用的方法就是通过鼠标圈选, 复制后贴上。不过这样
    一来还是有问题,因为鸟哥超级喜欢使用 [Tab] 按键进行编排对齐动作, 通过鼠标却会将
    [Tab] 转成空白键,这样内容就不一样了!此时这个多文件编辑就派上用场了!
    现在你可以做一下练习看看说!假设你要将刚刚鸟哥提供的 hosts 内的前四列 IP
    数据复制到你的 /etc/hosts 文件内,那可以怎么进行呢?可以这样啊:
    1. 通过“ vim hosts /etc/hosts ”指令来使用一个 vim 打开两个文件;
    2. 在 vim 中先使用“ :files ”察看一下编辑的文件数据有啥?结果如下所示。 至于下图的
    最后一列显示的是“按下任意键”就会回到 vim 的一般指令模式中!
    图9.3.6、vim 的多文件编辑中,查看同时编辑的文件数据
    3. 在第一列输入“ 4yy ”复制四列;
    4. 在 vim 的环境下输入“ :n ”会来到第二个编辑的文件,亦即 /etc/hosts 内;
    5. 在 /etc/hosts 下按“ G ”到最后一列,再输入“ p ”贴上;
    6. 按下多次的“ u ”来还原原本的文件数据;
    7. 最终按下“ :q ”来离开 vim 的多文件编辑吧!
    5.多窗口编辑
    在一般窗口接口下的编辑软件大多有“分区窗口”或者是“冻结窗口”的功能来将一个
    文件分区成多个窗口的展现, 那么 vim 能不能达到这个功能啊?可以啊!但是如何分区
    窗口并放入文件呢? 很简单啊!在命令行界面输入“:sp {filename}”即可!那个 filename
    可有可无, 如果想要在新窗口启动另一个文件,就加入文件名,否则仅输入 :sp 时, 出
    现的则是同一个文件在两个窗口间!
    让我们来测试一下,你先使用“ vim /etc/man_db.conf ”打开这个文件,然后“ 1G ”去
    到第一列,之后输入“ :sp ” 再次的打开这个文件一次,然后再输入“ G ”,结果会变成下面
    这样喔:
    image.jpeg
    万一你再输入“ :sp /etc/hosts ”时,就会变成下图这样喔:

    image.jpeg
    怎样?帅吧!两个文件同时在一个屏幕上面显示,你还可以利
    用“[ctrl]+w+↑”及“[ctrl]+w+↓” 在两个窗口之间移动呢!这样的话,复制啊、查阅啊等等
    的,就变的很简单啰~ 分区窗口的相关指令功能有很多,不过你只要记得这几个就好
    了:
    image.jpeg
    6.vim环境设置和记录
    有没有发现,如果我们以 vim 软件来搜寻一个文件内部的某个字串时,这个字串
    会被反白, 而下次我们再次以 vim 编辑这个文件时,该搜寻的字串反白情况还是存在
    呢!甚至于在编辑其他文件时, 如果其他文件内也存在这个字串,哇!竟然还是主动反
    白耶!真神奇! 另外,当我们重复编辑同一个文件时,当第二次进入该文件时, 光标竟
    然就在上次离开的那一列上头呢!真是好方便啊~但是,怎么会这样呢?
    这是因为我们的 vim 会主动的将你曾经做过的行为登录下来,好让你下次可以轻
    松的作业啊! 那个记录动作的文件就是: ~/.viminfo !如果你曾经使用过 vim, 那你的
    主文件夹应该会存在这个文件才对。这个文件是自动产生的, 你不必自行创建。而你在
    vim 里头所做过的动作,就可以在这个文件内部查询到啰~ ^_^
    此外,每个 distributions 对 vim 的默认环境都不太相同,举例来说,某些版本在搜
    寻到关键字时并不会高亮度反白, 有些版本则会主动的帮你进行缩排的行为。但这些其
    实都可以自行设置的,那就是 vim 的环境设置啰~ vim 的环境设置参数有很多,如果你
    想要知道目前的设置值,可以在一般指令模式时输入“ :set all ” 来查阅,不过…..设置项目
    实在太多了
    image.jpeg
    总之,这些设置值很有用处的啦!但是……我是否每次使用 vim 都要重新设置一次
    各个参数值? 这不太合理吧?没错啊!所以,我们可以通过配置文件来直接规定我们习
    惯的 vim 操作环境呢! 整体 vim 的设置值一般是放置在 /etc/vimrc 这个文件,不过,不建
    议你修改他! 你可以修改 ~/.vimrc 这个文件 (默认不存在,请你自行手动创建!),将
    你所希望的设置值写入! 举例来说,可以是这样的一个文件:

    [dmtsai@study ~]$ vim ~/.vimrc 
    "这个文件的双引号 (") 是注解 
    set hlsearch "高亮度反白 
    set backspace=2 "可随时用倒退键删除 
    set autoindent "自动缩排 
    set ruler "可显示最后一列的状态 
    set showmode "左下角那一列的状态 
    set nu "可以在每一列的最前面显示行号啦! 
    set bg=dark "显示不同的底色色调 
    syntax on "进行语法检验,颜色显示。
    

    在这个文件中,使用“ set hlsearch ”或“ :set hlsearch ”,亦即最前面有没有冒号“ :
    ”效果都是一样的! 至于双引号则是注解符号!不要用错注解符号,否则每次使用 vim 时
    都会发生警告讯息喔! 创建好这个文件后,当你下次重新以 vim 编辑某个文件时,该文
    件的默认环境设置就是上头写的啰~ 这样,是否很方便你的操作啊!多多利用 vim 的环
    境设置功能呢!^_^