目 录
文件操作
Linux系统VIM编辑
VIM基本介绍
vim概述
vi和vim命令是linux中强大的文本编辑器,由于Linux系统一切皆文件,编辑文件是必不可少的工作,而vim有着强大的文本编辑功能。
vi和vim有什么区别?
1、vi不下时语法高亮
2、vim显示语法颜色高亮
3、其他功能没有什么不同
4、所以在Linux系统中,使用vi还是vim取决于个人习惯
安装vim
这里我已经安装过了 键入命令 yum install -y vim 安装vim
[root@oldboy ~]# yum install -y vim
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
软件包 2:vim-enhanced-7.4.160-4.el7.x86_64 已安装并且是最新版本无须任何处理
VIM模式介绍
vim编辑器中设置了三种模式
- 命令模式
- 编辑模式
- 末行模式
VIM模式之间的切换
- 命令模式———》输入模式
i、I、a、A、o、O
2、输入模式———》命令模式
ESC键就可以切换到命令模式
3、命令模式———》末行模式
:
- 末行模式———》命令模式
ESC键
VIM命令模式
移动
1、kjhl:上下左右
2、G:光标跳转到末端
3、gg:光标跳转到顶端
4、ngg:指定行号跳转;
例如:3gg:表示光标移动到第三行
5、$/end:跳转到当前行末
6、^/home:跳转到当前行首
7、Ctrl+b/pgup:向上翻一页
8、Ctrl+f/pgdo:向下翻一页
输入模式
1、a:在光标的下一个字符插入
2、A:直接将光标移动到行末插入
3、i:再光标处插入字符
4、I:在行首插入字符
5、o:再下一行插入字符
复制
1、yy:复制当前行
2、5yy:复制当前行和一下4行
粘贴
1、p:下一行粘贴
- P:下一行粘贴
删除
1、dd:删除当前光标所在的行
2、4dd:删除往前行和以下3行
3、dG:删除当前行以后的所有行
4、D:删除当前行内光标后的所有内容
5、x:删除光标所在的字符
6、X:删除当前所在行光标前面的一个字符
7、shift+::进入末行模式
撤销
- u:撤销上一步操作
- U:撤销所有操作
替换
- r:替换当前光标所在的单个字符
- R:进入replace模式:连续替换,ESC结束
VIM编辑模式
1、a:在光标的下一个字符插入
2、A:直接将光标移动到行末插入
3、i:再光标处插入字符
4、I:在行首插入字符
5、o:再下一行插入字符
VIM末行模式
查找 /string 需要搜索的内容(查找) ***
1、n 按搜索到的内容依次往下进行查找
2、N 按搜索到的内容依次往上进行查找
替换 ***
1、:s#sbin#test 替换光标所在行的第一个满足条件的内容
2、:s#sbin#test#g 替换光标所在行的所有满足条件的内容
3、 :m,nds#sbin#test#g 替换m-n行中包含sbin的内容为test-5行中包含sbin的内容为test
4、 :%s#sbin#test#g 替换整个文本文件中包含sbin的替换为test
5、 :%s#sbin#test#gc 替换内容时时提示是否需要替换
6、:%s#sbin##ng 查询全文中sbin的数量
另存
1、:w /root/test 将文件所有内容另存为/root/test
读入
1、:r /etc/hosts 读入/etc/hosts文件至当前光标下面
2、:5r /etc/hosts 指定/etc/hosts文件当前文件的哪行下面
打开新文件
1、:e /etc/hosts 新打开一个文件
VIM视图模式
进入视图模式(从命令行模式进入视图模式)
1、ctrl+v 进入VISUAL BLOCK 选中需要注释的行(可视块模式) ***
a.插入:按shift+i进入编辑模式,输入#,结束按ESC键
b.删除:选中内容后,按x或者d键删除
c.替换:选中需要替换的内容, 按下r键,然后输入替换后的内容
2、shift+v 进入VISUAL LINE 选中行内容(可视行模式) ***
a.复制:选中行内容后按y键及可复制。
b.删除:选中行内容后按d键删除。
VIM环境变量
环境变量(临时生效)
1、:set nu 显示行号
2、:set ic 忽略大小写, 在搜索的时候有用
3、:set ai 自动缩进
4、:set list 显示制表符(空行、tab键)
5、:set no[nu|ic|ai…] 取消临时设定的变量
环境变量(永久生效)
1、~/.vimrc 个人环境变量(优先级高)
2、/etc/vimrc 全局环境变量
VIM扩展知识
同时编辑多个文件
Ctrl+ww切换编辑两个文件,需要退出两次
1、vim -o file1 file2 水平分割
[root@oldboy ~]# vim -o 1.txt 2.txt
1111111
2222222
3333333
1.txt 1,1 全部
4444444
5555555
6666666
2、vim -O file1 file2 垂直分割
vimdiff相同文件之间差异对比
vimdiff 文件对比(用的不多)
vimdiff 以vim方式打开两个文件对比,标记不同的内容
如果VIM非正常退出
如果VIM非正常退出挂起或强制退出终端没关闭VIM后
//删除同文件名的.swp文件即可解决
示例:.filename.swp rm -f .filename.swp
VIM练习
请把/etc/passwd 复制到/tmp/目录下,并重命名为test.txt
用vim打开test.txt并设置行号
分别向下、向右、向左、向右移动5个字符
分别向下、向上翻两页
把光标移动到第10行
让光标移动到行末,再移动到行首
移动到test.txt文件的最后一行
移动到文件的首行
搜索文件中出现的 root 并数一下一共出现多少个,不区分大小写搜索
把从第一行到第三行出现的root 替换成student
还原上一步操作
把整个文件中所有的root替换成student
把光标移动到20行,删除本行
还原上一步操作
删除第19行
还原上一步操作
删除从5行到10行的所有内容
还原上一步操作
复制2行并粘贴到11行下面
还原上一步操作(按两次u)
复制从11行到15行的内容并粘贴到8行上面
还原上一步操作(按两次u)
把13行到18行的内容移动文件的尾部
还原上一步操作(按两次u)
光标移动到首行,把/sbin/nologin改成/bin/bash
在第一行下面插入新的一行,并输入"# Hello!"
保存文档并退出