小言_互联网的博客

Linux入门之Vim编辑器及vim命令的应用(Ubuntu)

363人阅读  评论(0)

概述

vi与vim

vi编辑器是Unix及Linux系统下标准的编辑器,相当于Windows系统中的记事本。是我们使用Linux系统不可缺少的工具。
vim 具有程序编辑的能力,可以以字体颜色辨别语法的正确性,方便程序设计;相比vi编辑器,vim编辑器拥有更强大的功能,如果将vi编辑器比作是Windows系统里的记事本,那么vim编辑器就是Windows里的Word。因为程序简单,编辑速度相当快速。
vim会依据文件扩展名或者是文件内的开头信息, 判断该文件的内容而自动的执行该程序的语法判断式,再以颜色来显示程序代码与一般信息。
vim里面加入了很多额外的功能,例如支持正则表达式的搜索、多文件编辑、块复制等等。

Vim编辑器

Vim编辑器可按照功能将其分为三种模式形态,即插入模式,命令模式,拓展命令模式。

模式 功能
插入模式 可以输入文本,在正常模式下,按i、a、o等都可以进入插入模式,在此模式下可进行文本的插入删除修改等;按ESC键即可返回命令模式
命令模式 命令模式是Vim编辑器的初始模式,在此模式下可进行Linux命令操作
拓展命令模式 按”Shift+:“即可进入扩展命令模式,在此模式下可进行命令行操作,如保存,退出等

Vim命令及其应用

Vim命令(启动Vim编辑器)

格式:vim + 选择项 + 文件名(中间以空格隔开)

格式 功能
-c cmd 在打开文件前,先执行指定的命令
-r 恢复上次异常退出的文件
-R 以只读的方式打开文件,但可以强制保存
-M 以只读的方式打开文件,不可以强制保存
-y num 将编辑窗口的大小设为num行
+ 从文件的末尾开始
+num 从第num行开始
+/string 打开file,并将光标停留在第一个找到的string上

Vim编辑器模式切换

命令模式——> 插入模式

按键 功能
i insert, 在光标所在处输入
I 在当前光标所在行的行首输入
a append, 在光标所在处后面输入
A 在当前光标所在行的行尾输入
o 在当前光标所在行的下方打开一个新行
O 在当前光标所在行的上方打开一个新行

插入模式——> 命令模式

按键 功能
ESC 切换到命令模式

命令模式——> 扩展命令模式

按键 功能
Shift+: 切换到扩展命令模式

扩展命令模式——> 命令模式

按键 功能
先按ESC再按Enter 切换到命令模式

Vim命令模式

常见命令

操作 功能
ZZ 保存退出
ZQ 不保存退出
h 光标向左移动
l 光标向右移动
j 光标向下移动
k 光标向上移动
#COMMAND 光标跳转由#指定的个数的字符
w 光标跳转到下一个单词的词首
e 光标跳转到当前或下一单词的词尾
b 光标跳转到当前或前一个单词的词首
H 光标跳转到页首
M 光标跳转到页中间行
L 光标跳转到页底

删除命令

操作 功能
d 删除命令,可结合光标跳转字符,实现范围删除
d$ 删除到行尾
d^ 删除到非空行首
d0 删除到行首
dd 删除光标所在的行
#dd 多行删除
D 从当前光标位置一直删除到行尾,留空行,等同于d$

复制命令

操作 功能
y 复制,行为相似于d命令
y$ 复制到行尾
y0 复制到行首
y^ 复制非空行首
ye 复制到当前或者下个单词词尾
yw 复制到下个单词词首
yy 复制行
#yy 复制多行
Y 复制整行

其他命令

操作 功能
p 缓冲区存的如果为整行,则粘贴当前光标所在行的下方;否则,则粘贴至当前光标所在处的后面
u 撤销最近的更改
#u 撤销之前多次更改

Vim扩展命令模式

常见操作

操作 功能
:q 退出
:q! 强制退出,丢弃做出的修改
:wq 保存退出
:x 保存退出
:r filename 读文件内容到当前文件中
:w filename 将当前文件内容写入另一个文件
:!command 执行命令
:r!command 读入命令的输出

地址界定

界定符 功能
# 具体第#行,例如2表示第2行
#,# 从左侧#表示起始行,到右侧#表示结尾行
#,+# 从左侧#表示的起始行,加上右侧#表示的行数
:2,+3 表示2到5行
. 当前行
$ 最后一行
.,$-1 当前行到倒数第二行
% 全文, 相当于1,$

查找替换
查找

操作 功能
/PATTERN 从当前光标所在处向文件尾部查找
?PATTERN 从当前光标所在处向文件首部查找
n 与命令同方向
N 与命令反方向

替换

操作 功能
i: 忽略大小写
g 全局替换;默认情况下,每一行只替换第一次出现
gc 全局替换,每次替换前询问
示例1 %s@目标内容@替换内容@g
示例2 %s#目标内容#替换内容#i

设置文件格式

操作 功能
启用windows格式 set fileformat=dos
启用unix格式 set fileformat=unix

设置文本宽度
:set textwidth=65
:set wrapmargin=15

案例

案例一:在vim中设置tab缩进为4个字符

1.通过cd命令到达home目录下,利用vim命令打开.vimrc文件

liuyan@liuyan-virtual-machine:~$ vim .vimrc
  1. 在.vimrc文件里输入set tabstop=4 保存退出后运行.vimrc文件即可

案例二:删除文件中所有以#开头,且#后面至少有一个空白字符的行的行首的#号

  1. 利用vim命令打开目标文件,目标文件如下:
  1 #!/bin/bash
  2 #+--+--+--+--+--+--+--+--+--+
  3 #author:liuyan
  4 #date:2020-03-07
  5 #tel:188332489740
  6 #Email:2742604627@qq.com
  7 #+--+--+--+--+--+--+--+--+--+
  8 # hsdgjdfhglkjs
  9 # hgfjkhdsksd
 10 # aaaaaaaaaaaaaaaaaaaaaaaas
 11 # aaaaaaaaaaaaad
 12 #   aaaaaaaaac
 13 #     aaaaaaaaaaaaacc                                                       
 14 adsssssssssssfdgsf
 15 adgshjkfd

  1. 转到扩展命令模式,输入修改命令:%s@# +@@g修改后如下:
  1 #!/bin/bash
  2 #+--+--+--+--+--+--+--+--+--+
  3 #author:liuyan
  4 #date:2020-03-07
  5 #tel:188332489740
  6 #Email:2742604627@qq.com
  7 #+--+--+--+--+--+--+--+--+--+
  8 hsdgjdfhglkjs
  9 hgfjkhdsksd
 10 aaaaaaaaaaaaaaaaaaaaaaaas
 11 aaaaaaaaaaaaad
 12 aaaaaaaaac
 13 aaaaaaaaaaaaacc                                                             
 14 adsssssssssssfdgsf
 15 adgshjkfd
 16 
~                                                                               
~                

转载:https://blog.csdn.net/qq_42452450/article/details/104719646
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场