Linux基础-vim命令详解(理论+实战)

目录

一、vim命令介绍

二、vim命令模式

2.1 命令模式

2.2 输入模式 

 三、vim操作

3.1 打开文本

3.2 打开文件

3.3 查找文本 

​编辑 3.4 设置行号

​编辑 3.5 替换文本

 3.6 删除文本

3.7 复制和粘贴文本 

 3.8 保存和退出文本

四、vim命令可视化模式及用法 

 4.1 vim可视化模式

4.2 vim 可视化用法 


一、vim命令介绍

linux 系统中“一切皆文件”,因此当我们在命令行下更改文件内容时,不可避免地要用到文本编辑器

可供选择的编辑器不止一种,例如 vim、emacs、pico、nano 等,很多人都找到了自己所喜爱的编辑器

vim文本编辑器,是由 vi 发展演变过来的文本编辑器,因其具有使用简单、功能强大、是 linux 众多发行版的默认文本编辑器

二、vim命令模式


vim 编辑文件时,存在 3 种工作模式,分别是命令模式、输入模式和编辑模式,这 3 种工作模式可随意切换 

 

2.1 命令模式

使用 vim 编辑文件时,默认处于命令模式。此模式下,可使用方向键(上、下、左、右键)或 k、j、h、i 移动光标的位置,还可以对文件内容进行复制、粘贴、替换、删除等操作
 

2.2 输入模式 

在输入模式下,vim 可以对文件执行写操作,类似于在 Windows 系统的文档中输入内容
使 vim 进行输入模式的方式是在下输入 i、I、a、A、o、O 等插入命令,当编辑文件完成后按 Esc 键即可返回命命令模式状态令模式
 

快捷键

功能描述

i

在当前光标所在位置插入随后输入的文本,光标后的文本相应向右移动

I

在光标所在行的行首插入随后输入的文本,行首是该行的第一个非空白字符,

相当于光标移动到行首执行 i 命令

o

在光标所在行的下面插入新的一行。光标停在空行首,等待输入文本

O

在光标所在行的上面插入新的一行。光标停在空行的行首,等待输入文本

a

在当前光标所在位置之后插入随后输入的文本

A

在光标所在行的行尾插入随后输入的文本

 键盘输入字母i

  • 编辑模式用于对文件中的指定内容执行保存、查找或替换等操作
  • 使 vim 切换到编辑模式的方法是在命令模式状态下按“:”键,此时 vim 窗口的左下方出现一个“:”符号,这是就可以输入相关指令进行操作了
  • 指令执行后 vim 会自动返回命令模式。如想直接返回命令模式,按 Esc 即可

 三、vim操作

3.1 打开文本

vim <路径+filename>

例如:打开vim.test文件 

若出现下图的情况,可能是由于以下两种原因导致
其他程序同时打开同一个文件
正在编辑文件的异常退出

处理后需要删除 .filename.swp 文件才会消除这个提示 

3.2 打开文件

除此之外,我们还可以利用下表中打开文件的命令格式,针对特定情形使用适当的打开方式,可以大大提高我们的效率 

vim 使用的选项

说 明

vim filename

打开或新建一个文件,并将光标置于第一行的首部

vim -r filename

恢复上次 vim 打开时崩溃的文件

vim -R filename

把指定的文件以只读方式放入 vim 编辑器中

vim + filename

打开文件,并将光标置于最后一行的首部

vim +n filename

打开文件,并将光标置于第 n 行的首部

vim +/pattern filename

打幵文件,并将光标置于第一个与 pattern 匹配的位置

vim -c command filename

在对文件进行编辑前,先执行指定的命令

3.3 查找文本 

快捷键

功能描述

/abc

从光标所在位置向前查找字符串 abc

/^abc

查找以 abc 为行首的行

/abc$

查找以 abc 为行尾的行

?abc

从光标所在为主向后查找字符串 abc

n

向同一方向重复上次的查找指令

N

向相反方向重复上次的查找指定

从行开头查询字符串 

/^abc

 从行开头查询字符串

/abc$

查找的字符串是严格区分大小写的
如果想忽略大小写,则输入命令 ":set ic";调整回来输入":set noic"

忽略大小写

:set ic         

大小写区分

:set noic 

特殊字符,则需要加上转义字符 “\”。常见的特殊字符有 \、*、?、$ 等
比如查找字符 "$"
/\$ 

 3.4 设置行号


临时显示行号

退出vim后再次打开vim就不显示行号了

:set nu 

永久显示行号
修改vim配置文件vimrc,如果没有此文件可以创建一个
vim ~/.vimrc

 3.5 替换文本

快捷键

功能描述

r

替换光标所在位置的字符

R

从光标所在位置开始替换字符,其输入内容会覆盖掉后面等长的文本内容,

按“Esc”可以结束

:s/a1/a2/g

将当前光标所在行中的所有 a1 a2 替换

:n1,n2s/a1/a2/g

将文件中 n1 n2 行中所有 a1 都用 a2 替换

:g/a1/a2/g

将文件中所有的 a1 都用 a2 替换

要将某文件中所有的 admin" 替换为 root",则有两种输入命令 

:1,$s/admin/root/g 

:%s/admin/root/g 

 3.6 删除文本

被删除的内容并没有真正删除,都放在了剪贴板中。
将光标移动到指定位置处,按下 "p" 键,就可以将刚才删除的内容又粘贴到此处

快捷键

功能描述

x

删除光标所在位置的字符

dd

删除光标所在行

ndd

删除当前行(包括此行)后 n 行文本

dG

删除光标所在行一直到文件末尾的所有内容

D

删除光标位置到行尾的内容

:a1,a2d

函数从 a1 行到 a2 行的文本内容

 删除光标所在的字符

按键x

 

3.7 复制和粘贴文本 

快捷键

功能描述

p

将剪贴板中的内容粘贴到光标后

P(大写)

将剪贴板中的内容粘贴到光标前

y

复制已选中的文本到剪贴板

yy

将光标所在行复制到剪贴板,此命令前可以加数字 n,可复制多行

yw

将光标位置的单词复制到剪贴板

 3.8 保存和退出文本

w!” 和 “wq!” 等类似的指令,通常用于对文件没有写权限的时候(显示 readonly,    修改失败),但如果你是文件的所有者或者 root 用户,就可以强制执行 
 

命令

功能描述

:wq

保存并退出 vim 编辑器

:wq!

保存并强制退出 vim 编辑器

:q

不保存就退出 vim 编辑器

:q!

不保存,且强制退出 vim 编辑器

:w

保存但是不退出 vim 编辑器

:w!

强制保存文本

:w filename

另存到 filename 文件

x!

保存文本,并退出 vim 编辑器,更通用的一个 vim 命令

ZZ

直接退出 vim 编辑器

四、vim命令可视化模式及用法 

在 vim 中,如果想选中目标文本,就需要调整 vim 进入可视化模式,通过在 vim 命令模式下键入不同的键,可以进入不同的可视化模式
 

命令

功能

v(小写)

又称字符可视化模式,此模式下目标文本的选择是以字符为单位的,也就是说,

该模式下要一个字符一个字符的选中要操作的文本。

V(大写)

又称行可视化模式,此模式化目标文本的选择是以行为单位的,也就是说,

该模式化可以一行一行的选中要操作的文本。

Ctrl+v组合键)

又称块可视化模式,该模式下可以选中文本中的一个矩形区域作为目标文本,

以按下 Ctrl+v 位置作为矩形的一角,光标移动的终点位置作为它的对角。

 4.1 vim可视化模式

以字符可视化模式为例,vim 成功进入该模式的标志是窗口底部出现 --VISUAL--
进入行可视化模式的标志是图 2 标记处显示 --VISUAL LINE--
进入块可视化模式的标志是图 2 标记处显示 --VISUAL BLOCK--

 

4.2 vim 可视化用法 

  • 当选中文本并做完相应操作(例如选中文件并按 p 键将其复制到剪贴板中)后,vim 会自动从可视化模式转换为命令模式。当然,也可以再次按 v(或者 V、Ctrl+v)手动退出可视化模式。
  • 之前所学的在 vim 命令模式下编辑文本的很多命令,在可视化模式下仍然可以使用。
  • 下图列出了常用的几个可以在可视化模式下使用的命令。

命令

功能

d

删除选中的部分文本。

D

删除选中部分所在的行,和 d 不同之处在于,即使选中文本中有些字符所在的行没有都选中,

删除时也会一并删除。

y

将选中部分复制到剪贴板中。

p(小写)

将剪贴板中的内容粘贴到光标之后。

P(大写)

将剪贴板中的内容粘贴到光标之前。

u(小写)

将选中部分中的大写字符全部改为小写字符。

U(大写)

将选中部分中的小写字符全部改为大写字符。

>

将选中部分右移(缩进)一个 tab 键规定的长度(CentOS 6.x 中,

一个tab键默认相当于 8 个空白字符的长度)。

<

将选中部分左移一个 tab 键规定的长度

  • 15
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

技术瘾君子1573

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值