Linux的vim(06)

概述

在Linux中,vim是用来编辑文档的,它比vi更好用。它有两种模式,命令模式和编辑模式,在命令模式中可以做一些检索、筛选等操作。在编辑模式中可以对文档进行修改。

进入&退出

进入

vim 文件名。此时进入的是命令模式,不能对文件内容进行操作。对文档的检索是在这种模式下进行的。

修改

在命名模式中点击i、c、o、s、c、r等中任意一个进入编辑模式,也就是说编辑模式是嵌在命令模式中的。

退出编辑模式

按下ESC键就会退出编辑模式,进入命令模式。

退出命名模式
  • :wq:把编辑缓冲区的内容写到你编辑的文件中,退出编辑器,回到 shell下。(操作过程是,先键入冒号“:”,再键入命令wq。以下命令操作相同);
  • :ZZ or :x:仅当作过修改时才将缓冲区内容写到文件上;
  • :q!:强行退出vi。感叹号(! )告诉vim,无条件退出,丢弃缓冲区内容。

Linux的vim(06)_第1张图片

文本输入命令

指的就是从命令模式切换到编辑模式输入的指令。

插入命令
  • i:从光标当前位置之前开始插入
  • I:在光标所在行的行首插入新增文本
附加命令
  • a:从光标当前位置之后开始插入
  • A:在光标所在行的行尾添加文本
打开命令
  • o:在光标所在行的下面新开辟一行,随后输入的文本就插入在这一行上
  • O:在光标所在行的上面新开辟一行,随后输入的文本就插入在这一行上
替换命令
  • r:替换光标所在的哪一个字符。
  • R:直替换光标所在的文字,直到按下ESC为止

光标移动命令

在命令模式下快速移动光标

基本移动命令

Linux的vim(06)_第2张图片

移至行首(常用)
  • ^:移到当前行非空格列的开头
  • 0:移动到当前行真正的开头
移至行尾

移至指定行

可以使用命令(键)[行号]G将光标移至由行号所指定的行的开头,如::3移动到第三行

移至指定列

可以使用命令(键)[列号]| 将光标移至当前行指定的列上。

文本修改命令

删除字符
  • x:删除光标所在的字符。
  • X:删除光标前面的那个字符。
删除文本对象
  • dd:删除光标所在的整行
  • D:从光标位置开始删除到行尾
复原命令
  • u:取消前面刚执行的插入或删除命令的效果,恢复到此前的情况。
  • U:总是把当前行恢复成它被编辑之前的状态
重复命令

·:在命令方式下,重复执行前一次插入命令或删除命令。

字符串检索
  • 向下检索命令的基本格式是: /模式〈Enter〉,例如: /sTudent
  • 向上检索命令的基本格式是:?模式 〈Enter〉,例如: ?flout
字符串检索与替换
  • :n1,n2s/word1/word2/g:n1和n2为数字,在n1与n2行之间寻找word1这个字符串,并将该字符串替换为word2。例如: 100,200s/cauc/CAUC,在100行到200行之间搜索cauc并替换成CAUC。
  • 1,$s/word1/word2/g:直接替换
  • 1,$s/word1/word2/gc: 交互,待用户确认
  • 选项g(global)表示该行中所有与模式匹配的都用替换文本替换。如果没有只替换各行第一次出现的模式
  • 选项c(config)表示每一次替换都要询问,如果回答Y则替换,否则不替换。

  • 将/etc/man.comfig复制到本目录中:vim man.config
  • 使用vim打开本目录下的man.config文件:vim man.config
  • 在vim中设置行号::set nu
  • 移动到第58行,向右移动40个字符,请问双引号内是什么目录::58G
  • 移动到第一行,并且向下搜索“bzip2”字符串,请问它在第几行:1G /bzip2
  • 接下来要将50~100行的man改为MAN,并且一个一个挑选是否需要修改,如何执行命令?:50,100s/man/MAN/gc
  • 修改完之后 ,突然反悔了,要全部复原 ,有哪些办法:u一直撤销
  • 要复制 51~60的内容,并且贴到最后一行之后:51G 10yy G p
  • 删除11~30行之间的20行:11G,20dd
  • 将这个文件另存为man.test.config文件::w man.test.config
  • 到第29行,并且删除15个字符:29G,15x
  • 储存后离开::wq

多文件编辑

  • vi file1 file2 可同时打开多个文件
  • :n 编辑下一个文件
  • :N 编辑上一个文件
  • :files 列出当前Vim打开的所有文件

多窗口功能

  • :sp {filename} filename:可省略,省略的话就同时打开同一个文件
  • :ctrl + w + j:光标移动到下面的窗口
  • :ctrl + w + k:光标移动到上面的窗口

你可能感兴趣的:(Linux)