一、总结vim编辑器的使用方法
vim文本编辑器
全屏编辑器,模式化编辑器
vim的教程文件命令:vimtutor
vim /path/to/somefile
vim模式:
编辑模式(命令模式),默认模式
输入模式
末行模式
模式转换:
编辑模式—>输入模式:
输入模式—>编辑模式
编辑模式—>末行模式
末行模式—>编辑模式
vim编辑的打开和关闭操作
打开文件
vim+/pattern:打开文件,定位至第一次被pattern匹配到的行的行首
关闭文件
使用vim编辑多个文件
分窗口显示多个文件
vim -o file…:水平分隔显示,vim -o file1 file2
窗口拆分显示同一个文件
vim编辑模式操作
移动光标(编辑模式下)
翻屏操作:
删除单个字符
删除命令:d
交换光标所在处的字符与其后面的字符的位置
替换字符
复制命令y
粘贴命令p
p:小写p表示如果删除或复制的为整行内容,则粘贴至光标所在行的下方,如果复制或删除的内容非整行,则粘贴至光标所在字符的后面
P:大写p表示,如果删除或复制为整行内容,则粘贴至光标所在行的上方,如果复制或删除的内容为非整行,则粘贴至光标所在字符的前面
修改c:先删除内容,再转换为输入模式
撤销命令,u
重复前一次编辑操作
可视化模式:实现自由选取的操作
v:按字符选取
V:按行选取
vim末行模式操作
1.快速框选内容段
#,+#:指定行范围,左侧为超始行绝对编号,右侧为相对左侧行号的偏移量;
/pattern/:从光标所在处起始向文件尾部第一次被模式所匹配到的行;
示例:/first/,$ #第一匹配frist的内容直到最后一行
/pat1/,/pat2/:从光标所在处起始,第一次由pat1匹配到的行开始,至第一次由pat2匹配到的行结束之间的所有行;
2.可同编辑命令一同使用,实现编辑操作:
w /PATH/TO/SOMEFILE:将范围内的文本保存至指定的文件中;
r /PATH/FROM/SOMEFILE:将指定的文件中的文本读取并插入至指定位置;
示例:/if/,/fi/d #用来删除匹配出的if到fi的框定的内容删除
3.查找
/PATTERN:从当前光标所在处向文件尾部查找能够被当前模式匹配到的所有字符串;
?PATTERN:从当前光标所在处向文件首部查找能够被当前模式匹配到的所有字符串;
4.查找并替换
替换为的内容:不能使用正则表达式,但可以引用匹配结果;\1,\2…(可以查看正则表达式)
如果“要查找的内容”部分在模式中使用分组符号:在“替换为的内容”中使用后向引用;
%s@\<t\([[:alpha:]]\+\)\>@T\1@g
解释:%表示快速框选的全文,s表示末行模式下的替换功能,@为内容段的分隔符
\<t\([[:alpha:]]\+\)\> :正则表达式,匹配锚定以t为词首的单词
示例:%s@\<t[[:alpha:]]\+\>@&er@g
示例:%s@\<t[[:alpha:]]\+\>@&er@g
讲当前文件中部分内容另存为另外一个文件
末行模式下使用w命令
adder,adder /patch/to/somefile
将另外一个文件的内容填充在当前文件中
r /patch/to/somefile
跟shell交互,不用退出执行命令
:!command
高级进阶设定(末行模式,当前有效)
1.显示或取消显示行号
2、显示忽略或区分字符大小写
3、设定自动缩进
4、查找到的文件高亮显示或取消
5、语法高亮
6、获取帮助
vim配置文件,实现高价进阶配置永久有效
/etc/vimrc,全局配置
~/.vimrc,家目录下个人配置文件
vim tutor教程命令
- 习题:
1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#;
cp /etc/rc.d/rc.sysinit /tmp
vim 末行模式下
:%s@^[[:space:]]\+@#@g
2、复制/boot/grub/grub.conf至/tmp目录中,删除/tmp/grub.conf文件中的行首的空白字符;
cp /boot/grub/grub.conf /tmp
vim 末行模式下
:%s@^[[:space:]]\+@@g
3、删除/tmp/rc.sysinit文件中的以#开头,且后面跟了至少一个空白字符的行行的#和空白字符;
vim 末行模式下
:%s@^[#][[:space:]]\+@@g
4、为/tmp/grub.conf文件中前三行的行首加#号;
:1,3s@^@#@g
5、将/etc/yum.repos.d/CentOS-Media.repo文件中所有的enabled=0或gpgcheck=0的最后的0修改为1;
:%s@\(enabled\|gpgcheck\)=0@\1=1@g
6、每4小时执行一次对/etc目录的备份,备份至/backup目录中,保存的目录名为形如etc-201504020202
crontab -e
0 */4 * * * filepath=/backups/etc-$(date +\%Y\%m\%d\%H\%M);mkdir -p ${filepath};cp -rf /etc ${filepath};
7、每周2,4,6备份/var/log/messages文件至/backup/messages_logs/目录中,保存的文件名形如messages-20150402
crontab -e
* * * * 2,4,6 filepath=/backups/messages_logs/messages-$(date +\%Y\%m\%d);mkdir -p ${filepath};cp -rf /var/log/messages ${filepath};
8、每天每两小时取当前系统/proc/meminfo文件中的所有以S开头的信息至/stats/memory.txt文件中
crontab -e
* */2 * * * grep "^S" /proc/meminfo >>/stats/memory.txt
9、工作日的工作时间内,每两小时执行一次echo ""howdy""
crontab -e
0 9-18/2 * * * echo ""howdy""
脚本编程练习
10、创建目录/tmp/testdir-当前日期时间;
#!/bin/bashmkdir /tmp/testdir-$(date +\%Y\%m\%d)
11、在此目录创建100个空文件:file1-file100
#!/bin/bashmkdir /tmp/testdir-$(date +\%Y\%m\%d)for i in {1..100};do touch file${i}done
12、显示/etc/passwd文件中位于第偶数行的用户的用户名;
方法一:sed -n '2~2p' /etc/passwd
方法二:sed -n 'n,p' /etc/passwd
13、创建10用户user10-user19;密码同用户名;
#!/bin/bashfor i in {10..19};do useradd user${i} echo user${i} | passwd --stdin user${i}done
14、在/tmp/创建10个空文件file10-file19;
#!/bin/bashfor i in `seq 10 1 19`;do touch file${i}done
15、把file10的属主和属组改为user10,依次类推。
#!/bin/bashfor i in `seq 10 1 19`;do touch file${i} chown user${i}:user${i} /tmp/file${i}done
原创文章,作者:N22-武汉-enfp,如若转载,请注明出处:http://www.178linux.com/50005
评论列表(1条)
vim总结的非常不错,另外在vim中批量修改指定的字符串很熟练,赞