本博客内容来自《Linux命令行与shell脚本编程大全》第十章
目录
vi编辑器
vi编辑器是Unix最初的编辑器,但是非常复杂,因此将其移植到开源世界时,开发人员对其进行了改进,重命名为vi improved,或vim。
vim基础
vim编辑器在内存缓冲区中处理数据,键入vim命令和要编辑的文件的名字就可以启动vim编辑器。
如果启动vim时未指定文件名,或者文件不存在,vim会开辟一段新的缓冲区来编辑
如果指定了文件,vim会将文件整个内容读取到一块缓冲区域来准备编辑
vim有两种模式:
普通模式:刚打开要编辑的文件或新建文件时,vim会将按键解释为命令
插入模式:按i进入,按esc回到普通模式
在普通模式中,可以用方向键移动光标,或者用以下按键:
h:左移一个字符
j:下移一行
k:上移一行
l:右移一个字符
浏览大的文本文件时:
PageDown:下翻一屏
PageUp:上翻一屏
G:移到缓冲区的最后一行
gg:移到缓冲区第一行
命令行模式
命令行模式:普通模式下按冒号:进入,等待输入命令
保存文件
主要命令有:
q:未修改缓冲区数据,退出
q!:取消对数据修改,退出
w filename:将缓冲区数据保存到名为filename的新文件
wq:将缓冲区数据保存到文件中并退出
vim编辑数据
在普通模式下,vim提供了一些命令来编辑缓冲区的数据:
x:删除当前光标所在位置的字符
2x:删除从光标当前位置开始的两个字符
dd:删除当前光标所在的行
5dd:删除从光标当前行开始的5行
dw:删除当前光标所在位置的单词
d$:删除当前光标所在位置至行尾的内容
J:删除当前光标所在行行尾的换行符
u:撤销前一编辑命令
a:在当前光标后追加数据
A:在当前光标所在行行尾追加数据
r char:用char替换当前光标所在位置的单个字符
R text:用text 覆盖当前光标所在位置的数据,直到按下ESC
在vim编辑器普通模式下使用退格键(backspace)和删除键(delete)时,删除键会被识别为x命令;退格键不识别。
复制和粘贴
剪切粘贴
一句话,在上面提到的删除数据后按p即可粘贴刚刚被删除的数据,从而实现剪切粘贴的效果。
复制粘贴
vim中,复制命令是y(yank),可以在y后面跟d命令相同的第二个字符(yw表示复制一个单词,y$表示复制到行尾),复制完后光标移动到对应位置按p即可。
查找和替换
查找
要查找缓冲区中的数据,很简单:
1.在键盘上按下 / 键,光标会跑到底部并显示出斜线 /
2.输入你要查找的文本按下回车
vim编辑器会采用以下三种回应中的一种:
1.如果目标文本在当前光标后,则光标跳到该文本出现的第一个位置
2.如果目标文本在当前光标后没有,则光标会从头搜索,出现在该文本所在的第一个位置
3.输出错误消息表示没找到
如果要继续查看下一个单词(文本),按下斜线/,然后按回车,或者使用n(next)键,vim就会不断为你找到下一个。如果想查看上一个,则输入N(大写)。
替换
替换命令允许你快速用另一个单词来替换文本中的某个单词,必须进入命令行模式(输入冒号)才能执行替换命令,其格式为:
:s/old/new/
执行以上命令,vim编辑器会跳到光标所在行中old第一次出现的地方并用new替换。如果光标所在行有多个old,只会替换第一个。
当然,这是基础功能,还可以进行修改丰富:
:s/old/new/g
在光标所在行用new替换所有old
:n,ms/old/new/g
替换行号n和m之间所有old
:%s/old/new/g
替换整个文件中的所有old
:%s/old/new/gc
替换整个文件中的所有old,但在每次出现时提示