在Linux江湖,最常用到的编辑器非vim莫属,vim的功能很强大。vim是vi的前身,最显著的区别是vim可以语法高亮
在终端中输入vim 然后敲下回车,你可以看到
可以看到 版本是 8.0 ,然后 :q 回车退出
命令介绍 which 命令用于查找文件
使用 rpm -qf 来查看
命令 :[root@localhost ~]# rpm -qf `which vim`
which vim 的返回值直接赋给 rpm (这种用法在其他命令给也同样适用)
Vi是Unix及Linux系统下标准的编辑器,由美国加州大学伯克利分校的Bill Joy所创立 [1] 。学会它后,您将在Linux的世界里畅行无阻。基本上vi可以分为三种状态,分别是命令模式、插入模式,和底行模式。
——摘自百度百科
vim有6钟基本模式和5种派生模式,这里只介绍4种基本模式
普通模式:该模式中,用的编辑器命令,比如移动光标,删除文本等等。是Vim启动后的默认模式。
命令模式:该模式下可以进行保存,搜索,替换,退出,显示行号等。
插入模式:插入模式里可以进行文字的输入,在该模式下按Esc键切换到普通模式。
视图模式:该模式是选中一块区域进行操作,包括删除,替换,复制,粘贴,改变大小写等
先使用vim打开/etc/passwd,尝试下方向键移动光标
按键 | 作用 |
---|---|
i | 当前字符之前插入(光标之前) |
I(大写i) | 行首插入 |
a | 当前字符之后插入(光标之后) |
A | 行尾插入 |
o | 下一行插入 (在下方插入一行) |
O | 上一行插入 (在上方插入一行) |
x | 向后删除一个字符 (等同于Delete键) |
X | 向前删除一个字符 (等同于Backspace键) |
u | 撤销一步 (就像Windows中的 Ctrl+z 这个快捷键 ) |
r | 替换 |
注意!不要保存 ,键入 :q! 回车(“:”也是命令的一部分)
操作 | 说明 |
---|---|
h | 往左移动,等同于方向键 ← |
j | 往下移动,等同于方向键 ↓ |
k | 往上移动,等同于方向键 ↑ |
l(L的次小写) | 往右移动,等同于方向键 → |
0/home | 切换到行首 |
$/end | 定位到行尾 |
gg | 定位到文档的首行 |
G | 定位到文档末行 |
(int)gg/(int)G | 定位到n行 例如:6gg或6G就是定位到第6行 |
查找内容 /(string) 例如:/ftp (查找 ftp)
查找开头内容 /(string) 例如:/^ftp (查找 以ftp开头的)
查找结尾内容 /(string) 例如:/nologin$ (查找 以nologin结尾的)
找到多个,按下n,查找下一个 ;按下n,查找上一个
复制
y 复制字符 :对单个字符进行复制
yy 复制行 :对当前光标行进行复制
(int)yy 复制多行 :n+yy,复制n行 例如:3yy (复制3行)
粘贴
p 粘贴 : 粘贴剪贴板中的内容 刚才复制了3行,来粘贴下
删除
d 删除字符 :对单个字符进行删除
dd 删除行 :对当前光标行进行删除
(int)dd 删除多行 :n+yy,删除n行 例如:4dd (复制4行)
剪切
其实删除操作,就是剪切,可以直接粘贴
撤销
u 撤销 : 撤销上一步的操作
ctrl+r 还原: 还原撤销过的操作
v 进入可视模式
ctrl + v 进入可使块模式
1.使用 vim 打开 //bin/gettext.sh
2.移动光标到脚本代码位置,按下 Ctrl + v 进入 可视 块 模式
3.向下移动光标,可以看到选中的是块
4.按下 I( i 的大写)进入插入模式,输入一个 “#”
5.按下 Esc 键 看效果,批量注释
6.重复步骤 3 选中要取消的注释
7.按下d 批量删除
按下 “ :”键进入命令模式 (注意“:”是英文的)
命令 | 作用 |
---|---|
:q | 没有进行任何修改,退出 |
:w | 保存 |
:x | 保存退出 |
:q! | 修改过,不保存,强制退出 |
:wq | 保存退出 |
:wq! | 强制保存退出(针对只读文件或者需要权限) |
命令::【范围】 s【分隔符】【旧的内容】【分隔符】【新的内容】【参数】
每次替换后用 u 还原
:1,5 s/bin/NB 替换第1到5行中出现的第一个bin进行替换为NB
:1,5 s/bin/NB/g 替换第1到5行中查找到所有的bin进行替换为NB
:5 s/bin/NB #只把第5行中的bin内容替换成NB
:% s/user/NB/g 将文本中所有的user替换成NB
:% s/user/NB/gi 将文本中所有的user替换成NB, 并且忽略user的大小写
分隔符可以是任何符号,只要你喜欢
影响单个用户
在需要配置的家目录下创建 .vimrc 文件 并写入 set nu
影响全部用户 修改/etc/vimrc文件
上下方式 :[root@localhost ~]# vim -o /bin/gettext.sh /etc/passwd
左右方式 [root@localhost ~]# vim -O /bin/gettext.sh /etc/passwd
退出 : :qa
两个文件切换 :Ctrl + ww
复制一份 /etc/passwd 到/root/test
修改一下 /root/test/passwd
对比: [root@localhost ~]# vimdiff /etc/passwd /root/test/passwd
当你打开一个文件后,又用另外一个终端打开该文件,或者上次非正常关闭vim时就会出现下图。不用担心,因为编辑文件,会产生一个交换文件,就是缓存文件,存储在内存中,保存后替换硬盘中的文件。
出现这种情况可以使用R打开上次编辑的状态,也可以E放弃交换文件重新编辑
在Windows中创建一个txt文件
上传到Linux中 使用rz命令 若没有 dnf 安装 lrzsz
打开后发现是乱码的
使用 iconv 命令 来做编码转换,下面是参数
参数 | 作用 |
---|---|
-l,–list | 查看可用编码列表 |
-f,–from | 转换编码时,后面跟 原始文件的编码 |
-t,–to | 转换编码时,后面跟 原始目标的编码 |
-o,output | 转换编码时,后面跟 输出的文件名 |
例:[root@localhost ~]# iconv -f gb2312 -t utf-8 coder.txt -o coder2.txt