Linux 编辑器: vim

学习Linux系统的第四篇博客:学习如何修改文件中的内容。



vim 是UNIX 和 Linux 上标配的编辑器,功能十分强大。
用法 :
vim 文件名

例如:
vim test.txt
在这里插入图片描述
当按下回车后,就会自动进入该文件了,如果是没有该文件的,vim也会自动创建该文件,如下图:
在这里插入图片描述

现在默认进入的是命令模式,可以按 a 或 i 或 o 进入插入模式

他一共有两种模式:插入模式命令模式



一、插入模式

操作:输入字符,并且可以按光标键移动输入字符位置.

命令操作
a在光标后插入
i在光标所在位置插入
o在光标所在位置的下一行插入
Esc进入命令模式
:进入行命令模式

当然你按其他键是没有效果,例如按下b、c、d…等等,需要进入到插入模式才能进行插入操作。

如果需要进入插入模式,按下a键或者i键或者o键时:
在这里插入图片描述
他就自动进入到插入模式了。

进入插入模式后就可以进行编辑文件了。

例如:
在这里插入图片描述



二、命令模式

执行除输入字符之外的所有操作,包括保存、搜索、移动光标等。

vim 启动默认是在命令模式,如果在编辑模式,需要按 Esc 切换回命令模式。

可以使用光标键控制上下左右移动,或者 h、j、k、l移动。

1. 保存和退出

保存文件、退出等需要切换到行命令模式,在插入模式下输入 Esc 再 输入
:w :q 或 :wq 等。

前提:须切换到命令模式。注意组合命令执行的顺序:w ->q ->!

命令操作
:w保存文件
:w 文件名另存为文件名
:q退出Vim
:q!强行退出,放弃保存

1)例如,保存我们刚刚写的文件
命令::w
首先按一下esc键从插入模式切换到命令模式
在这里插入图片描述
按下回车键后
在这里插入图片描述

2)如果需要退出呢?
命令::q
在这里插入图片描述
按下回车键后
在这里插入图片描述

3)如果进行了文件编辑,而没有保存文件进行退出会怎么样?
在这里插入图片描述
如同上面的顺序得出的结果,他是不允许这样操作的,除非你先保存再进行退出,或者使用组合键 :wq 进行保存退出;再或者直接不保存,输入 q! 键进行强制退出。


2. 搜索字符串

前提:须切换到命令模式

/string 用于向下搜索一个字符串
?string 用于向上搜索一个字符串

例如:
我们在刚才的那个文件上加入很多个str用于测试搜索
在这里插入图片描述

  1. /string 用于向下搜索一个字符串
    在这里插入图片描述
    当然,如果需要接着向下搜索第二个str,则需按下键盘的’n’键就可以了,如上图我就是按下了‘n’键光标才跳到第二个str那里的。

  2. ?string 用于向上搜索一个字符串
    在这里插入图片描述
    向上搜索也是一样的,按下‘n’键后,就会往上再搜索一个str出来。

如果需要启动或关闭大小写敏感,执行:
:set ignorecase == > 这个是关闭大小写敏感

:set noignorecase == > 这个是启动大小写敏感

默认他是启动大小写敏感的!


3. 替换字符串

前提:须切换到命令模式。

语法 : :[range]s/pattern/string/[c、e、g、i]

这条命令将 pattern 所代表的字符串替换成 string。开头的range 用于指定替换作用的范围,如“1,10” 表示从第1行到第10行,“1,$”表示从第1行到最后一行,也就是全文。全文也可以用 “%” 表示。

最后的方括号是可选选项,含义如下:

标志含义
c每次替换前询问
e不显示错误信息
g替换一行中的所有匹配项(这个选项通常需要使用)
i不区分大小写

首先还是打开刚才的那个文件,在一行中插入多个str用于测试
在这里插入图片描述

例如:

  1. 将全文的每行第一个str替换为string
    命令::%s/str/string
    在这里插入图片描述

使用命令 :set nu 可以显示行号!

  1. 将15行 - 21行的第一个string修改为str
    命令::15,21s/string/str
    在这里插入图片描述
  2. 将第25行至最后的第一个string替换为str
    命令::25,$s/string/str
    在这里插入图片描述
  3. 将全文的str都替换为string
    命令::%s/str/string/g
    在这里插入图片描述

4. 删除、复制、粘贴

前提:须切换到命令模式。

命令操作
x删除光标所在位置的字符
dd删除光标所在的行, 2 dd 表示删除2行
D删除光标所在位置到行尾之间所有的字符
d普遍意义上的删除命令,和移动命令配合使用。例如dw 表示删除光标所在位置到下一单词词头之间所有的字符
yy复制光标所在的行
y普遍意义上的复制命令,和移动命令配合使用。例如yw表示父子光标所在位置到下一个单词词头之间所有的字符
p在光标所在位置粘贴最近复制/删除的内容

5.撤销和重做

前提:须切换到命令模式。

命令操作
u撤销一次操作
ctrl+r重做被撤销的操作

6.程序员特有配置

:syntax on —> 语法高亮
:set autoindent —> 自动缩进
:set shiftwidth=4 —> 设置Tab 键对应的空格数


7.其他命令

2023年3月25新增

命令功能
Ctrl + b使光标往上移动一页屏幕
Ctrl + f使光标往下移动一页屏幕
0(数字0)使光标移动到所在行的行首
$使光标移动到光标所在行的行尾
w使光标跳到下一个单词的开头
gg使光标移动到文件首(第一行第一个非空字符处)
G使光标移动到文件尾(最后一行的第一个非空白字符处)
Ctrl + g列出光标所在行的行号
db删除光标所在位置的前面一个单词
dw从光标所在位置开始往后删除一个单词
d$删除光标到行尾的内容(含光标所在位置的字符)
dG从光标位置所在行一直删除到文件尾
r替换光标所在位置的一个字符,按[r]键后按下替换的字符
  1. 查找文档中包含#号字符的行,将整行删除;
    :g /#/d
  2. 将文件里的所有str,替换为abc;
    :%s/str/abc/g
  3. 假设光标已经在目标位置,要将/etc/abc.txt文档的内容读入到当前文档光标所在文件中;
    :r /etc/abc.txt

三、总结

vim还是很好用的,他就像windows下的文本文档一样,也可以在上面进行写代码等等,就是什么都得使用命令行去操作,有点麻烦…

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

cpp_learners

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

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

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

打赏作者

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

抵扣说明:

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

余额充值