vim进入编辑模式
按键 |
作用 |
i |
在当前(光标所在位置)字符前插入 |
I(大写i) |
在光标所在的行首插入 |
a |
在当前字符后插入 |
A |
在光标所在的行尾插入 |
o |
在当前行的下一行插入新的一行 |
O |
在当前行的上一行插入新的一行 |
vim命令模式
按键 |
作用 |
/word |
在光标之后查找一个字符串word,按n向后搜索下一个 |
?word |
在光标之前查找一个字符串word,按n向前搜索下一个 |
:n1,n2s/word1/word2/g(n=任意数字) |
在n1和n2行质检查找word1并替换为word2,不加g责只替换每行的第一个word1 |
:1,$s/word1/word2/g |
将文档中所有的word1替换为word2,不加g责只替换每行的第一个word1 |
按键 |
作用 |
:w |
保存文本 |
:q |
退出vim |
:w! |
强制保存文本,在root用户下,即使文本只读也可以完成保存 |
:q! |
强制退出,所有的改动不会生效 |
:wq |
保存并退出 |
:set nu |
显示行号 |
:set nonu |
不显示行号 |
:nohl |
取消高亮 |
:x |
跟wq的用法一样,只是q会改动mtime,而x不会改动 |
vim实践
为了更高效的记住vim的操作使用,经常使用才会记得牢,我们可以自行模拟以下操作环境,然后开始操作,以下我们可以尝试阿铭老师为我们设计的步骤来实践,首先先将dnsmasq.conf复制到**/mnt下,并且重命名为shijian.txt**
[root@Ask-02 ~]# cp /etc/dnsmasq.conf /mnt/shijian.txt
[root@Ask-02 ~]# vim /mnt/shijian.txt
vim实践操作 |
分别向下、向右、向左、向上移动6个字符(6j;6l;6h;6k) |
分别向下、向上翻两页(分别按两次Ctrl+F和Ctrl+B) |
把光标移动到第49行(49G) |
把光标移动到行尾,再移动到行首(Shift+4;Shift+6) |
移动到本文件的最后一行(G) |
移动到本文件的首行(gg) |
搜索文件中出现的dnsmasq字符串,并数一下该字符串出现的次数(输入/dnsmasq,然后按n继续下一个) |
把从第1行到第10行出现的dnsmasq替换成dns(:1,10s/dnsmasq/dns/g) |
还原上一步操作(u) |
把整个文件中所有的etc替换成cte(:1,$s/etc/cte/g) |
把光标移动到第25行,删除字符串ly(输入25G后回车,然后按l(小写L)向右移动光标到ly位置然后按v再按l选中ly两个字符,最后按x) |
还原上一步操作(u) |
删除第50行(50G;dd) |
还原上一步操作(u) |
删除第37行至第42行的所有内容(37G;6dd) |
还原上一步操作(u) |
复制第48行的所有内容将其粘贴到第52行下面(48G;yy;52G;p(小写)) |
还原上一步操作(按两下u) |
复制第37行至第42行的内容并将其粘贴到44行上面(37G;6yy;44G P(大写)) |
还原上一步操作(按两下u) |
把第37行至第42行的内容并将其移动到19行下面(37G;6dd;19G p(小写)) |
还原上一步操作(按两下u) |
把光标移动到首行,把第1行内容改为#!/bin/bash(先按gg把光标定位到第1行,然后按字母A,进入编辑模式,同时将光标移动到行末尾进行修改,完成操作后按Esc键) |
在第1行下面插入新的一行,并输入#hello!(按o进入编辑模式,同时将光标下移另起一行,输入#hello!) |
保存并退出(按Esc键,输入:wq或者是:x) |