大多数 Linux 发行版不包含真正的 vi;而是自带一款高级替代版本,叫做 vim(它是“vi improved”的简写)由 Bram Moolenaar 开发的,vim 相对于传统的 Unix vi 来说,取得了实质性进步。
启动和退出 vim
使用vim可以启动,如命令行输入 vim,会出现下图:
想要退出,可以输入:q
命令回车即可。
如果由于某种原因,vim 不能退出(通常因为我们对文件做了修改,却没有保存文件)。通过给命令加上叹号,我们可以告诉 vim 我们真要退出 vim(注意感叹号是命令的一部分)。输入:q!
命令回车即可。
如果你在 vim 中“迷失”了,试着按下 Esc 键两次来回到普通模式。
编辑模式
再次启动vim,如 vim foo.txt
每行开头的波浪号(“∼”)表示那一行没有文本。
重要的事是知晓 vim 是一个模式编辑器,vim 启动后 会直接进入命令模式。这种模式下,几乎每个按键都是一个命令,所以如果我们直接输入文本, vim 会发疯,弄得一团糟。
插入模式
为了在文件中添加文本,我们需要先进入插入模式,按下i
键进入插入模式,输入The quick brown fox jumped over the lazy dog.文本信息。
若要退出插入模式返回命令模式,按下 Esc 按键。
保存模式
在命令模式下,输入:w
,底端则会显示已写入提示。
常用的命令有:
:w
:数据写入后,保存模式。:wq
:保存并退出。:wq!
:保存并强制退出。:q
:不保存就退出。:q!
:不保存且强制退出。
基本编辑
在命令模式下,可以按esc退出其它模式进入到命令模式
0
:移动到当前行的行首。G
:移动到文件末尾。o
:当前行的下方打开一行。O
:当前行的下方打开一行。u
:撤销我们的更改。dd
:删除当前行。x
:删除当前字符。d0
:从光标位置开始到当前行的行首。dG
:从当前行到文件的末尾。
连续按下 u 按键三次,来恢复删除部分
查看文件
使用cat
命令,可以查看文件内容。
# 查看全部内容 cat foo.txt # 查看文件内容,并显示行数 cat -n foo.txt
使用head
和tail
命令,也可以查看文件内容。
# 默认查看前10行 head baidu.html # 指定查看前3行数据 head -3 baidu.html # 默认查看后10行 tail baidu.html # 指定查看前3行数据 tail -3 baidu.html
搜索文件
使用find
命令,可以在一个目录层次结构中搜索文件,还可以加上 wc 程序来计算出文件的数量。
# 查看具体文件对应的路径 find /Users/guanfawang/1/python_crawer -type f -name baidu.html # 查看对应目录下文件数量 find /Users/guanfawang/1/python_crawer -type f | wc -l # 查看对应目录下文件对应路径 find /Users/guanfawang/1/python_crawer -type f
使用grep
命令,grep
全称为global regular expression print,可以看出与正则表达式相关联。它的作用就是在文本文件中查找一个指定的正则表达式,并把匹配行输出到标准输出。
# 这个命令会列出,位于目录 /usr/bin 中,文件名中包含子字符串“zip”的所有文件 ls /usr/bin | grep zip
选项列表
-i
:忽略大小写。不会区分大小写字符,也可用–ignore-case 来 指定。-v
:不匹配。也可用–invert-match 来指定。-c
:打印匹配的数量。也可用–count 选项来指定。
-l
:打印包含匹配项的文件名。也可用-- files-with-matches 选项来指定。