bash shell命令学习之Vim编辑器篇

本博客内容来自《Linux命令行与shell脚本编程大全》第十章

目录

vi编辑器

vim基础

命令行模式

保存文件

vim编辑数据

复制和粘贴

剪切粘贴

复制粘贴

查找和替换

查找

替换


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,但在每次出现时提示

你可能感兴趣的:(Linux之路)