vim编辑的使用和 乱码解决
1.vim编辑的使用和
查看系统是否已经安装了VIM工具
[root@xuegod72 ~]# rpm -qf `which vim`
[root@xuegod72 ~]# rpm -qf `which vi`
[root@xuegod72 ~]# cd /media/Packages/
[root@xuegod72 Packages]# rpm -ivh vim-
vim-common-7.4.160-1.el7.x86_64.rpm
vim-enhanced-7.4.160-1.el7.x86_64.rpm
vim-filesystem-7.4.160-1.el7.x86_64.rpm
vim-minimal-7.4.160-1.el7.x86_64.rpm
vim-X11-7.4.160-1.el7.x86_64.rpm
进行安装
[root@xuegod72 Packages]# rpm -ivh vim-enhanced-7.4.160-1.el7.x86_64.rpm
问:vi和vim是同一个软件包安装的吗?
答:NO,vim是vi的增加版,最明显的区别就是vim可以语法加亮,它完全兼容vi
vim模式切换
首次进入文件 ---- 命令模式
出现 Insert ---- 编辑模式
输入" : " ---- 命令行模式
A:从编辑模式到命令行模式怎样切换?
编辑模式->esc->命令模式->: ->命令行模式
B:字符操作(怎样进入编辑模式?)
进入编辑模式 a i o A I O
说明:
i 当前字符之前插入 (光标前)
I 行首插入 (行首)
a 当前字符之后插入 (光标后)
A 行尾插入(行尾)
o下一行插入 (另起一行)
O上一行插入(上一行插入)
x 向后删除一个字符 等同于delete
X 向前删除一个字符
u 撤销一步 每按一次就撤销一次
r 替换
行操作
输入home键 或 ^ (shift +6) 将光标移动到当前的行首
输入end键 或 $ (shift +4) 将光标移动到当前的行尾
删除行
dd 删除一行 数字+dd 删除多行
删除光标后全部内容 d+G
显示行号:set nu
复制粘贴
yy 复制一行 数字+yy 复制N行
p 将复制行粘贴
复制 38-42行 到 44行
: 38,42 co 44
扩展:剪切
先删除,再粘贴
删除到行首 d + HOME 或 ^ (shift+6)
删除到行尾 d + END 或 $ (shift+4)
V模式
进入v模式 移动光标选择区域、
编程的时候需要进行多行注释:
1)、ctrl+v 进入列编辑模式
2)、向下或向上移动光标
3)、把需要注释的行的开头标记起来
4)、然后按大写的I
5)、再插入注释符,比如"#"
6)、再按Esc,就会全部注释了
删除:再按ctrl+v 进入列编辑模式;向下或向上移动光标 ;选中注释部分,然后按d, 就会删除注释符号。
命令行模式操作
:w 保存 save
:q 没有进行任何修改,退出 quit
:q! 修改了,不保存,强制退出
:wq 保存并退出
:wq! 强制保存并退出
:x 保存退出
调用外部文件或命令
假设:我想要编辑写入我的网卡地址,但是我忘记了,我要查看一下,当前在vim编辑文档
怎么办呢? 要退出文档吗? 这样好麻烦.
在命令行模式下操作:
:!ifconfig 调用系统命令
!+命令
替换(命令行模式)
格式 : %所有内容 s替换 旧的内容 新的内容
默认是每一行的第一个符合要求的词 (/g全部)
:% s/a/b 每一行的第一个a被替换成b
:% s/a/b/g 将文本中所有的a替换成b
只替换某几行内容
:2,3 s/a/b
/g 全部
#替换2到3行 的a
我们怎么知道是第二行还是第三行呢?
:set nu #显示行号
:set nonu #不显示行号
查找
/ 正向查找 :/san n 往下查找,N 往上查找
定位
vim中定位到某行:
到命令模式下操作 gg 定位到文件首行
到命令模式下操作 G 定位到文件尾行
在命令行模式下操作 :# 定位到某一行 (#表示行号)
到命令模式下操作 10gg
读取其他文件
在命令行模式下
:r /etc/passwd
保存退出 :wq
输出文件内容时显示行号:
[root@xuegod72 ~]# nl b.txt
[root@xuegod72 ~]# cat -n b.txt
vim打开多个文件:
[root@xuegod72 ~]# vim -o /etc/passwd /etc/hosts
[root@xuegod72 ~]# vim -O /etc/passwd /etc/hosts
ctrl+ww 在文件之间进行切换
大写O左右分屏,小写的o上下分屏
比较文件内容
vimdiff 文件A 文件B
乱码解决
使用乱码解决工具 iconv
[root@xuegod60 ~]# rpm -qf `which iconv`
glibc-common-2.17-105.el7.x86_64
如果没有安装,用下面的命令安装
[root@xuegod60 ~]# rpm -ihv /mnt/Packages/glibc-common-2.17-105.el7.x86_64.rpm
通过iconv命令转码
输入/输出格式规范:
-f, --from-code=名称 原始文本编码
-o, --output=FILE 输出文件
-l, --list 列举所有已知的字符集
注意:GB2312编码适用于汉字处理
[root@xuegod60 ~]# iconv -f gb2312 test.txt -o new.txt
[root@xuegod60 ~]#echo $LANG
[root@xuegod60 ~]#LANG=zh_CN.UTF-8