linux第三章-进入VIM

linux的入门篇

一,VIM文本编辑器

1,VI/VIM介绍

  • 1,一个文本编辑工具。而在linux中最经典最流行的文本编辑工具就是vi/vim,当然也有一些其他的文本编辑工具,

例如
emacs
pico
nano
joe
jed
诸如此类,但我们只需要掌握vi/vim即可

  • 2,1,Vi编辑器是linux和unix上最基本的文本编辑器,工作在字符模式下。由于不需要图形界面,vi是效率很高的文本编辑器。尽管在linux上也有很多图形界面的编辑器可用,但vi在系统和服务器管理中的功能是那些图形编辑器所无法比拟的。

  • 2.2,vi编辑器可以执行输出、删除、查找、替换、块操作等众多文本操作,而且用户可以根据自己的需要对其进行定制,这是其他编辑程序所没有的。

  • 2.3,vim是vi的增强版,比vi更容易使用。vi的命令几乎都可以在vim上使用。


二,VI/VIM的使用方法

1,VI/VIM特性及特点

  • VI/VIM是一种纯文本编辑器,它不像word可以排版,可以调整字体大小,可以改变字体等等,vi/vim只是一个文本编辑工具,它只能对文本的内容进行操作,比如新增内容、修改内容、删除内容等等
  • vi是一个全屏幕的文本编辑器,在编辑文本时它将占据整个屏幕

2,VI/VIM的三种模式

  • 2.1,vim编辑器有三种编辑模式,分别是命令模式(编辑模式);输入模式(插入模式);末行模式\

三种模式

编辑模式 作用
命令模式 用户执行命令,比如复制行,粘贴行等待
输入模式 用于输入文本,修改文本等等
末行模式 用于查找文本,保存修改等等

vi/vim三种编辑模式之间转换的方式
命令模式–>输入模式
i:insert,在当前光标所在字符的前面,转为输入模式
I:大写的i,在当前光标所在行的行首转换为输入模式
a:append,在当前光标所在字符的后面转换为输入模式
A:在当前光标所在行的行尾转换为输入模式
o:open,在当前光标所在行的下方新建一行并转为输入模式
O:大写的o,不是数字0,在当前光标所在行的上方新建一行并转换为输入模式
输入模式–>命令模式
ESC
命令模式–>末行模式
末行模式–>命令模式
ESC ESC


3,VI/VIM文本文件的编辑方式

  • 打开文本方式:文件打开后默认处于命令模式下

vim filename //打开文件
vim +n filename //打开文件并定位到第N行
vim +/pattern filename //打开文件并定位到第一次被/pattern匹配到的内容行首;

  • 关闭文本的方式:进入末行模式: 输入q!不保存退出,wq写入退出,x强行保存退出。
  • 命令模式关闭文件:ZZ退出
  • 移动光标

在这里插入图片描述

  • 字符编辑:
    在这里插入图片描述
  • 删除命令:d

命令模式下d命令常与跳转命令组合使用,如
d$:表示删除当前光标所在位置到行尾的内容
d^:表示删除当前光标所在位置到第一个行首非空白字符位置的内容
d0:表示删除当前光标所在位置到绝对行首的内容
#d跳转符:删除跳转符指定范围内的#个,例如
-----------------------#dw
-----------------------#de
-----------------------#db
dd:删除当前光标所在行整行
#dd:删除包括当前光标所在行在内的#行
D:删除当前光标所在行的内容,保留空行
末行模式下d命令的使用
语法::StartADD,EndADDd
这里的StartADD与EndADD是指一个范围,例如

1,5d:表示删除第1到第5行
*

  • 范围的表示方法
表示方法 意义
光标所在当前未知
$ 最后一行
+# 光标所在行的第#行
$-# 倒数第#行
% 全文
  • 复制命令:YY
  • 粘贴命令:p

p:小写p;
–若删除或复制的为整行内容,则粘贴至光标所在行的下方
–若删除或复制的为非整行,则粘贴至光标所在字符的后面
P:大写P
若删除或复制的为整行内容,则粘贴至光标所在行的上方
若删除或复制的为非整行,则粘贴至光标所在字符的前面

  • 替换:r

R:替换模式,替换多个字符
r#:将当前光标的字符替换为#,这里的#可以是任何字符

  • 撤销编辑:u

u:撤销前一次的编辑操作,连接u命令可以撤销此前的n次编辑操作
#u:直接撤销此前的#次编辑操作
ctrl+r:还原最近一次的撤销操作

  • 重复前一次编辑操作:.
  • 可视化模式:

可视化模式下可以对选取的内容进行前面讲的所有编辑操作
v:按字符选取内容
V:按矩形块(行)选取内容

  • 文本查找:

/pattern:从上往下查找匹配的内容
?pattern:从下往上查找匹配的内容
n:从上往下查找匹配到的内容的下一条
N:从下往上查找匹配到的内容的下一条

  • 查找并替换:s

s命令只能在末行模式下使用
语法:ADDR1,ADDR2 s/pattern/string/gi
1,5 s/abc/def/g:表示把第一行到第五行的所有abc替换为def

  • 末行模式下显示或取消显示行号:

set nu:显示行号
set nonu:取消显示行号


4,vim的一个小练习

建目录/tmp/test,将/etc/man_db.conf复制到该目录下
用vim编辑man_db.conf文件
在这里插入图片描述
设置显示行号; 移动到第43行,向右移动57个字符,查看括号内的是什么内容;
在这里插入图片描述

移动到第一行,并向下查找“gzip”这个字符串,它在第几行;在这里插入图片描述

将50行到100行之间的man更改为MAN;
在这里插入图片描述

修改完后,突然反悔了,要全部复原,有哪些方法?
通过u撤销之前的操作。

复制65到73这9行的内容(含有MANDB_MAP),并且粘贴到最后一行之后;
进入V可视化视图,选中9行的内容然后大写的Y复制,然后跳转到最后一行似乎用p粘贴

21行到42行之间的内容取消注释;
在末行模式下使用命令:21,42s/#/ /g
在这里插入图片描述

将这个文件另存为man.test.config的文件
末行模式下::w man.test.config
到第27行,并且删除15个字符,结果出现的第一个字符是什么?
在这里插入图片描述

在第一行新增一行,在该行内输入“I am a student ”

保存并退出
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/LBJ19224/article/details/109143927
今日推荐