1、vi共分为3种模式,分别为一般命令模式、编辑模式与命令行模式
2、常用移动光标的方法:
①可以使用hjkl按键。h(←)、j(↓)、k(↑)、l(→),如果想要移动多行,比如30行,可以使用30j或30↓组合按键。
②ctrl+f ——屏幕向下移动一页
③ctrl+b ——屏幕向上移动一页
④0或[Home] ——移动到光标所在行最前面字符
⑤$或[End] ——移动到光标所在行最后面字符
⑥G ——移动到文件最后一行(nG ——移动到这个文件的第n行)
⑦gg ——移动到文件第一行
⑧n ——n为数字,光标向下移动n行(如果按空格,是向右移动n个字符)
3、常用的查找与替换方法:
①/word ——光标之下寻找字符串word
②?word ——光标之上寻找字符串word
③n ——向下查找
④N ——向上查找
⑤:n1,n2s/word1/word2/g ——在n1行到n2行之间寻找word1这个字符串,并将其替换为word2
4、删除、复制与粘贴基本方法:
①d $ ——删除光标所在处到该行最后一个字符的内容
②d 0 ——删除光标所在处到该行最前面一个字符的内容
③p ——为将已复制的数据在光标下一行粘贴
④P ——为将已复制的数据在光标上一行粘贴
⑤u ——恢复前一个操作
⑥ctrl+r 重做上一个操作
⑦ . ——重复上一个工作
5、vim多文件编辑
①:n ——编辑下一个文件
②:N ——编辑上一个文件
③:files ——列出目前这个vim开启的所有文件
6、vim多窗口功能
①:sp [filename] ——打开一个新窗口
②ctrl+w+j 或ctrl+w+↓ ——光标移动到下方窗口
③ctrl+w+k或ctrl+w+↑ ——光标移动到上方窗口
④ctrl+w+q或:q ——关闭当前窗口
7、不建议在windows编辑好的文件直接复制到linux中,因为可能换行出问题
换行字符转换:
dos2unix [-kn] file [newfile]
unix2dos [-kn] file [newfile]
选项与参数:
-k:保留该文件原本的mtime时间格式
-n:保留原本的旧文件,将转换后的内容输出到新文件
#将linux换行符转换为dos换行符
[root@vidar-ali ~]# unix2dos -k t.txt
unix2dos: converting file t.txt to DOS format ...
[root@vidar-ali ~]# ll t.txt
-rw-r--r-- 1 root root 2826 Jul 3 14:04 t.txt
#将dos换行符转换为linux换行符
[root@vidar-ali ~]# dos2unix -k -n t.txt a.txt
dos2unix: converting file t.txt to file a.txt in Unix format ...
#因为换行符少了^M,所以容量减少
[root@vidar-ali ~]# ll t.txt a.txt
-rw-r--r-- 1 root root 2805 Jul 3 14:04 a.txt
-rw-r--r-- 1 root root 2826 Jul 3 14:04 t.txt
#查询文件格式
[root@vidar-ali ~]# file a.txt
a.txt: UTF-8 Unicode text
[root@vidar-ali ~]# file t.txt
t.txt: UTF-8 Unicode text, with CRLF line terminators
8、语系编码转换
iconv -f 原本编码 -t 新编码 filename [-o newfile]
-o file:如果要保留原文件,-o生成新文件
-c 忽视无效字符(慎用)
例如:
[root@vidar-ali ~]# iconv -f utf-8 -t gb2312 a.txt -o b.txt
iconv: illegal input sequence at position 288
//提示需要转换的字符编码没有涵盖文件中的字符,可以用-c 忽略无效字符
[root@vidar-ali ~]# iconv -f utf-8 -t gb2312 -c a.txt -o b.txt
[root@vidar-ali ~]# file a.txt b.txt
a.txt: UTF-8 Unicode text
b.txt: ISO-8859 text, with very long lines