欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-06-01 22:42:23
...

概述

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 %[email protected]目标内容@替换内容@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文件

[email protected]:~$ 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:[email protected]
  7 #+--+--+--+--+--+--+--+--+--+
  8 # hsdgjdfhglkjs
  9 # hgfjkhdsksd
 10 # aaaaaaaaaaaaaaaaaaaaaaaas
 11 # aaaaaaaaaaaaad
 12 #   aaaaaaaaac
 13 #     aaaaaaaaaaaaacc                                                       
 14 adsssssssssssfdgsf
 15 adgshjkfd

  1. 转到扩展命令模式,输入修改命令:%[email protected]# [email protected]@g修改后如下:
  1 #!/bin/bash
  2 #+--+--+--+--+--+--+--+--+--+
  3 #author:liuyan
  4 #date:2020-03-07
  5 #tel:188332489740
  6 #Email:[email protected]
  7 #+--+--+--+--+--+--+--+--+--+
  8 hsdgjdfhglkjs
  9 hgfjkhdsksd
 10 aaaaaaaaaaaaaaaaaaaaaaaas
 11 aaaaaaaaaaaaad
 12 aaaaaaaaac
 13 aaaaaaaaaaaaacc                                                             
 14 adsssssssssssfdgsf
 15 adgshjkfd
 16 
~                                                                               
~                
相关标签: 大学课程知识