Linux vim使用和iconv乱码解决

阅读更多
目标内容
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

你可能感兴趣的:(vim)