vim编辑模式
编辑模式用来输入或修改文本内容,编辑模式除了Esc外其他键几乎都是输入
如何进入编辑模式
- 一般模式输入以下按键,均可进入编辑模式,左下角提示 insert(中文为插入) 字样
- i (当前光标位置前插入)
- o(换下一行插入)
- O (上一行插入)
- a(当前光标位置后插入)
- I(当前行行首)
- A(当前行行尾插入)
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 |
ps:以上表格中最后两行word词中就包含 "/word" 的话则需要 \ 转义,或者换成 "#" "@" 等特殊字符;
例如 : ":1,$s#/home#testhome#g"
还有一些保存及vim其他常用命令
命令 | 作用 |
---|---|
:w | 保存当前文档 |
:q | 退出vim |
:w! | 强制保存文本,在root用户下,即使文本只读也可以完成保存 |
:q! | 强制退出,所有的改动不会生效 |
:wq | 保存并退出 |
:set nu | 显示行号 |
:set nonu | 不显示行号 |
:nohl | 取消高亮 |
:x | 跟wq的用法一样,只是q会改动mtime,而x不会改动 |
vim实践
为了更高效的记住vim的操作使用,经常使用才会记得牢,我们可以自行模拟以下操作环境,然后开始操作,以下我们可以尝试阿铭老师为我们设计的步骤来实践,首先先将dnsmasq.conf复制到/mnt下,并且重命名为test_study.txt
[root@yolks1 ~]# cp /etc/dnsmasq.conf /mnt/test_study.txt
[root@yolks1 ~]# vim /mnt/test_study.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) |
拓展
vim的特殊用法 http://www.apelearn.com/bbs/thread-9334-1-1.html
vim常用快捷键总结 http://www.apelearn.com/bbs/thread-407-1-1.html
vim快速删除一段字符 http://www.apelearn.com/bbs/thread-842-1-1.html
vim乱码 http://www.apelearn.com/bbs/thread-6753-1-1.html
小键盘问题 http://www.apelearn.com/bbs/thread-7215-1-1.html
vim加密 http://www.apelearn.com/bbs/thread-7750-1-1.html