vim:模式化的编辑器
全局环境变量:/etc/vimrc
用户个人:~/.vimrc
基本模式:
编辑模式:默认处在编辑模式
输入模式:I/i; O/o; A/a
末行模式: " :"
光标跳转
h:左 j:下 k:上 l:右 #COMMAND:跳转由#指定的个数的字符
单词间跳转
w:下一个单词的词首
e:当前或后一个单词的词尾
b:当前或前一个单词的词首
#COMMAND:跳转至由#指定的个数的单词;
行首行尾跳转
^: 跳转至行首的第一个空白字符
$: 跳转至行尾
行间跳转
#G:跳转至由#指定的行
1G/gg :跳转至第一行; G:跳转至最后一行
翻屏
Ctrl+f:向文件尾部翻一屏
Ctrl+b:向文件首部翻一屏
Ctrl+d:向文件尾部翻半屏
Ctrl+u:向文件首部翻半屏
字符编辑
x:删除光标所在处的字符;
#x:删除光标所在处起始的#个字符
xp:交换光标所在处的字符
删除命令
dd:删除光标所在的行
#dd:删除光标所在处共#行
粘贴命令
大P:缓冲区中的内容如果为一行,则粘贴到光标所在行下方;否则粘贴在光标后方
小p:缓冲区的内容如果为一行,则粘贴到光标所在行上方;否则粘贴在光标前方
复制命令
yy:复制一整行
#yy:复制#行
撤销操作
u:撤销此前操作
#u:撤销此前#个操作
撤销此前的撤销
Ctrl + r
末行模式地址界定:
#: 特定的第#行
$: 最后一行
#,#:指定范围
#,+#:指定从哪里开始,和偏移量
% :全文
/Pattern/:从光标所在处起始,向文件尾部第一次被模式所匹配到的行; /first/,$
/pat1/,/pat2/:从光标所在处起始,第一次由pat1匹配到的行开始,至第一次由pat2匹配到的行结束之间的所有行
例: 10,$-1 十行到倒数第二行 .+5 当前行加5
查找替换
s:查找
g:全局替换
i:忽略大小写
.,$-1 s@mysql@MYSQL@gi ---->从当前行到倒数第二行,查找所有的mysql替换为MYSQL
实战练习:
复制/etc/grub2.cfg文件至/tmp目录中,用查找替换命令删除/tmp/grub2.cfg文件中以空白字符开头的行的行首的空白字符;
:%s@^[[:space:]]\{1,\}@@g
复制/etc/rc.d/init.d/functions文件至/tmp目录中,用查找替换命令/tmp/functions文件的每个以空白字符开头的行的行首加上#
:%s@^[[:space:]]\{1,\}[^[:space:]]@#&@g 注:加&不改变原有排版
为/tmp/grub2.cfg文件的前三行的行首加上#号
:1,3s@^@#@
将/etc/yum.repos.d/CentOS-Base.repo文件中所有的enabled=0 替换为enabled=1,所有gpgcheck=0替换为gpgcheck=1;
:%s@\(enabled\|gpgcheck\)=1@\1=1@g
遍历/tmp/grub2.cfg文件中所有的123为#
:%s@[1-3]@#@g
全局替换:是一行中有多少替换多少,遍历完整篇文章。
全文替换:是一行中只替换一个,遍历完整篇文章
转载于:https://blog.51cto.com/wscto/1749691