vim编辑模式
在vim /xxxx.txt文件后,按a,i,o进入编辑模式
i 在当前光标字符前插入
I 大写的i在行的行首插入
a 在当前光标字符后插入
A 在光标所在行的行尾插入
o 在当前行的下一行插入新的一行
O 在当前行的上一行插入新的一行
在vim里面删除光标后的所有字符 shift+d
vim命令模式
1、查找
/XXX 在编辑的文件向下查找XXX,按n查找下一个XXX
?XXX 在编辑的文件向上查找XXX,按n查找上一个XXX
(忽略大小写的时候,在所要查找的字符串后面加\c,例如/XXX\c)
2、替换
冒号1,2s/word1/word2/g或者冒号1,2s#word1#word2/g
(表示从第1行到第二行,s表示开始替换,#号的方式可用于替换含有反斜杠的字符串。)
全文本替换字符串 冒号1,$s/word1/word2/g
不加小g为替换每一行最前面的字符串,全部适用不管一行替换还是全文替换。
忽略大小写替换。
3、其他命令
:w 回车保存文本
:q 推出vim
:w! 强制推出,所有改动不生效
:wq 保存并退出,如果内容没改动,退出时还是会修改mtime的时间,用:x退出就不会。
:set nu 显示行号
:set nonu 不显示行号
:10,15d 删除/剪贴10到15行的内容, :10,15y 复制10到15行的内容
查找字符串的时候,命中的字符串会有高亮的颜色,如果不想显示可以用:nohl 去掉高亮颜色。
扩展
1、把正在编辑的文件另存为新的文件
例:把正在编辑的文件另存为到“/root/”下面并保存为1.txt
在一般模式下输入“:w /root/1.txt”
例:把正在编辑的文件的第10行到第15行另存为1.txt并保存到root目录下 在一般模式下输入“:10,15 w /root/1.txt”
2、把其它文件的内容导入到正在编辑的文件的光标所在处
例:把“/root/1.txt” 文件的内容,导入到下在编辑的文件的第10行下面
首先在一般模式下按“10G”把光标定位到第10行
然后按“o”小写,当前行的下面另起一行,并进入插入模式
最后按键盘上的返回到一般模式,再输入“:r /root/1.txt”回车
3、正在编辑文件时,不退出文件仍可以运行linux命令
例:我下在编辑一个文件,但这时候我想查看“/root/1.txt” 文件的内容,但是我不想退出我正在编辑的文件,那么我们可以这样
在编辑模式下输入“:! cat /root/1.txt”
4、同时编辑多个文件 例:我现正在编辑1.txt文件,然后我想再打开root目录下的2.txt同时编辑,并把窗口左右垂直分隔,一起显示在一般模式下输入“:vsplit /root/2.txt”
注意:在一般模式下按“ctrl+w”组合键,可以在不同窗口之间切换如果在一般模式下输入“:only”那么只保留当前正在编辑的窗口,其它全关闭(关闭的窗口不能有改动,改动的话用wq)
5、把文件恢复到打开时的状态
在一般模式下输入“:e!”
vim实践操作
1、分别向下、向右、向左、向上移动6个字符
6j、6l、6h、6k
2、分别向下、向上翻2页
PgDown
ctrl+f
PgUp
ctrl+b
3、把光标移动到第49行
49G
4、把光标移动到行尾,在移动到行首
shift+4或者end
shift+6或者home
5、移动到1.txt文件的最后一行
G
6、移动到文件的行首
gg
7、搜索文件中出现的"dnsmasq",并统计该字符串出现的次数
/dnsmasq 按n查找下一个,总共50次
8、把从第一行到第10行出现的dnsmasq替换成dns
:1,10s/dnsmasq/dns/g
9、还原上一步操作
按u键
10、把整个文件中所有的etc替换成cte
:1,$s/etc/cte/g
11、把光标移动到25行,删除字符串"ly"
25G
12、还原上一步操作,按u 13、删除第50行
50G,dd
14、还原上一步操作 15、删除第37-42行的所有内容
37G,5dd (数错了,删了5行)或者在命令模式:37,42d 回车进行删除/剪贴
16、还原上一步操作 17、复制第48行的内容并粘贴到第52行下面
48G,yy,52G,p
18、还原上一步操作 19、复制第37-42行的内容并粘贴到第44行上面
37G,5yy,44G,P(复制少了1行)
20、还原上一步操作 21、把第37-42行的内容移动到第19行下面
37G,6dd,19G,p
22、还原上一步操作 23、把光标移动到首行,把第一行内容改为"#!/bin/bash"
gg,按i键进行编辑,按esc退出编辑模式。
24、在第1行下面插入新的1行,并输入"#Hello!"
按o键,进行编辑。
25、保存文档并退出
按esc键,按shift+分号,输入wq,回车。