本周我们重点学习了vim文本编辑器
vim有三种模式:命令行模式、插入模式、底行模式
命令行模式:任何时候,不管用户处于何种模式,只要按一下“ESC”键,即可使Vi进入命令行模式;我们在shell环境(提示符为$)下输入启动Vi命令,进入编辑器时,也是处于该模式下。 在该模式下,用户可以输入各种合法的Vi命令,用于管理自己的文档。此时从键盘上输入的任何字符都被当做编辑命令来解释,若输入的字符是合法的Vi命令,则Vi在接受用户命令之后完成相应的动作。
插入模式:在命令模式下输入插入命令i(insert)、附加命令a (append)、打开命令o(open)、修改命令c(change)、取代命令r或替换命令s都可以进入文本输入模式。在该模式下,用户输入的任何字符都被Vi当做文件内容保存起来,并将其显示在屏幕上。在文本输入过程中,若想回到命令模式下,按"ESC"键即可。
底行模式:保存文件或退出Vim,同时也可以设置编辑环境和一些编译工作,如列出行号、寻找字符串等。
有的书中把Vim编辑器简化成两个模式,将底行模式也算作命令行模式。
其中vim有一些基本操作
yy:复制
u:如果你误执行一个命令,可以马上按下u,回到上一个操作
wq:存盘并退出vim
q!:不存盘强制退出vim
dd:删除光标所在行
x:每按一次,删除光标所在位置的后面的一个字符
底行模式下的命令,在使用底行模式之前,先按ESC确定处于命令行模式下后,再按冒号即可进入底行模式
set nu:在文件中的每一行前面列出行号
/(关键字)或者?(关键字),可以查找字符,如果第一次找的关键字不是你想要的,可以一直按n会往后一直寻找到你想要的字符为止
接下来我们进入实际的一些操作
:s/old/new 替换该行第一个old为new
:s/old/new/g可以替换全行中所有的old为new
:#,#s/old/new/g替换两行之间出现的old为new,#,#为两行的行号
:%s/old/new/g替换全文old为new
:%s/old/new/gc全文替换前需确认
:w 保存文件
:!rm 删除文件
:r anotherfile 将anotherfile文件中的内容提取到当前vim中
:n filename 编辑另一个文件
:N filename 编辑上一个文件
:sp filename 多窗口操作