Linux系统应用(3)——编辑器vim
个人内容简介:
🍃个人主页:诉清风2023
🎈逆转时间的公式,就是珍惜现在ദ്ദി˶ー̀֊ー́ ) ✧
目录
个人内容简介:
🎈逆转时间的公式,就是珍惜现在ദ്ദി˶ー̀֊ー́ ) ✧
前言
1、vim的概念
2、vim的基本操作
3、vim命令模式命令集
3.1 移动光标类
3.2 删除、复制和粘贴类
3.3 查找和替换类
4、vim底行模式下的功能键
5、vim的其他功能
5.1 文件救援
5.2 多窗口编辑
5.2.1 多个文件分屏编辑
5.2.2 单个文件分屏编辑
6、对普通用户的升权操作
结语
前言
本节目标
学会使用vim的简单操作,自主完成对普通用户的升权操作
注意
本节并没有难点,同命令学习一样,需要实操和经常练习才能熟练
1、vim的概念
vim其实就是一个文本编译器
vim有三种常用模式:命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode)
- 命令模式
控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到 last line mode
- 插入模式
只有在Insert mode下,才可以做文字输入,按「ESC」键可回到命令行模式。该模式是我们后面用的最频繁的编辑模式。
- 底行模式
文件保存或退出,也可以进行文件替换,找字符串,列出行号等操作。 在命令模式下,shift+: 即可进入该模式。
要查看你的所有模式:打开vim,底行模式直接输入 :help vim-modes
2、vim的基本操作
- [命令模式]切换至[插入模式]
- 输入a
- 输入i
- 输入o
- [插入模式]切换至[命令模式]
- 目前处于[插入模式],就只能一直输入文字,如果发现输错了字,想用光标键往回移动,将该字删除,可以 先按一下「ESC」键转到[正常模式]再删除文字。当然,也可以直接删除。
- [命令模式]切换至[底行模式]
- 「shift + ;」, 其实就是输入「:」
- 退出vim及保存文件,在[正常模式]下,按一下「:」冒号键进入「Last line mode」,例如:
- : w (保存当前文件)
- : wq (输入「wq」,存盘并退出vim)
- : q! (输入q!,不存盘强制退出vim)
3、vim命令模式命令集
首先我们要知道一般是在命令模式下进行功能操作,大致可以分为3类:第一类是移动光标类,第二类是删除、复制和粘贴类,第三类是查找和替换类。
3.1 移动光标类
按键名称 | 按键的效果 |
---|---|
h或者←键 | 光标向左移动一个字符 |
j或者↓键 | 光标向下移动一个字符 |
k或者↑键 | 光标向上移动一个字符 |
l或者→键 | 光标向下移动一个字符 |
Ctrl+f键或者PgDn键 | 屏幕向文件尾部移动一页 |
Ctrl+b键或者PgUp键 | 屏幕向文件头部移动一页 |
n空格(n是数字) | 按下数字n然后按空格,则光标向右移动n个字符,如果该行字符数小于n,则光标继续从下一行开始向右移动,一直到n |
0(数字0)或者Home | 移动到本行行首 |
$或者End | 移动到本行行尾 |
H | 光标移动到当前屏幕的最顶行 |
M | 光标移动到当前屏幕的中央那一行 |
L | 光标移动到当前屏幕的最底行 |
G | 光标移动到文件的最后一行 |
nG(n是数字) | 光标移动到文件的第n行 |
gg | 光标移动到文件的第一行 |
n回车(n是数字) | 光标向下移动n行 |
3.2 删除、复制和粘贴类
按键名称 | 按键的效果 |
---|---|
x,X | x表示向后删除一个字符,X表示向前删除一个字符 |
n x(n是数字) | 向后删除n个字符 |
dd | 删除光标所在的那一行 |
n dd | 删除光标所在的向下n行 |
d1G | 删除光标所在行到第1行的所有数据 |
dG | 删除光标所在行到末行的所有数据 |
yy | 复制光标所在的那一行 |
n yy | 复制从光标所在行开始的向下n行 |
p,P | p将复制的数据从光标下一行粘贴,P则从光标上一行粘贴 |
y1G | 复制光标所在行到第1行的所有数据 |
yG | 复制光标所在行到末行的所有数据 |
J | 将光标所在行与下一行的数据结合成一行 |
u | 还原过去的操作 |
Ctrl+r | 重做上一个操作 |
. | 重复前一个操作 |
3.3 查找和替换类
按键名称 | 按键的效果 |
---|---|
/keyword | 向光标之后查找名为keyword的字符串,当找到第一个keyword后,该单词高亮显示,按n键继续查找下一个,按N键,反方向查找下一个 |
?keyword | 向光标之前查找名为keyword的字符串,当找到第一个keyword后,该单词高亮显示,按n键继续查找下一个,按N键,反方向查找下一个 |
:n1,n2s/word1/word2/g | 在n1和n2行之间查找word1字符串并替换为word2 |
:1,$s/word1/word2/g | 从第一行到最末行,查找word1并替换为word2 |
:1,$s/word1/word2/gc | 在第一行到最末行之间查找word1,替换为word2之前需要用户确认 |
r | 替换光标所在处的字符 |
R | 替换光标所到之处的字符,直到按下「ESC」键为止 |
4、vim底行模式下的功能键
按键名称 | 按键的效果 |
---|---|
:w | 保存文件内容 |
:w! | 如果文件属性为只读时,强制保存 |
:q | 退出vim |
:q! | 强制退出vim,不管编辑还是未编辑都不保存内容直接退出 |
:wq | 保存文件内容之后立即退出 |
:e! | 将文档还原成最原始状态 |
ZZ | 等价于:wq |
:w[filename] | 将文档另存为filename |
:r[filename] | 在光标所在行的下面读入filename文档的内容 |
:set nu | 在文件中每行的首行设置行号 |
:set nonu | 取消已经设置的行号 |
:n1,n2 w[filename] | 将n1~n2行的内容另存为filename文件中 |
:!command | 暂时离开vim,执行某个Linux命令,例如::!ls /home暂时列出/home下的文件,然后会提示按Enter键返回vim |
5、vim的其他功能
5.1 文件救援
使用vim的过程中可能会出现文件还没来及保存就关闭了终端的情况,这是要挽救没有保存的文件,就要使用vim的救援功能了
一般情况下,vim在编辑过程会建立一个filename.swp的文件,如果突然退出,这个文件并不会删除。
6个可用选项
- (1)[O]pen Read-Only:以只读方式打开
- (2)(E)dit anyway:直接编辑
- (3)(R)ecover:恢复,即加载暂存盘的内容,用来挽救之前未保存的文件
- (4)(D)elete it:删除文件,如果确定那个暂存文件是无用的,那么可以先将这个暂存文件删除。有时候如果不确定这个暂存文件是怎么来的,也可以删除它
- (5)(Q)uit:退出,按q键就可以离开vim,不会进行任何动作,返回到命令行提示符
- (6)(A)bort:终止,与quit差不多,也会返回到命令行提示符。
- 在这里,先按R键,再按Enter键,该文件就会出现
- 注意:
- 除非选择D键,否则离开vim后,都需要在终端中自行删除该交换文件(rm .filename.swp),不然以后每次使用命令都会出现同样的警告。
5.2 多窗口编辑
5.2.1 多个文件分屏编辑
- 命令格式
vim -On [FILE_1] [FILE_2]... 或者 vim -on [FILE_1] [FILE_2]...
- 参数说明
- -O(大写的O):垂直分割(vertical),不同窗口切换用Ctrl+W+←键或者Ctrl+W+→键
- -o(小写的o):水平分割(horizontal,默认),不同窗口切换用Ctrl+W+↑键或者Ctrl+W+↓键
- n:表示分几个屏,可省略,默认按后面要分割的文件数来决定分几个屏
- [FILE_1] [FILE_2] ...:需要分屏打开的文件。如果只打开了两个文件,重复按两次Ctrl+w键即可切换窗口
5.2.2 单个文件分屏编辑
在使用vim filename.txt文件是,在一般模式下,输入“:sp”,然后按Enter键,会将该文件显示在两个窗口中,实现水平分屏的功能。
可以使用Ctrl+W+↑键或者Ctrl+W+↓键在上下两个窗口中切换
5.2.3 关闭分屏
要取消其他分屏,保留当前分屏,只需要输入“:only”,然后按Enter键即可;或者按Ctrl+W+o键也可以关闭其他分屏
如果要退出当前所在的分屏,输入“:q”,然后按Enter键就可以了
6、对普通用户的升权操作
对普通用户进行升权操作
结语
到此,我们对vim的初步学习就结束啦,说实话vim并不好用,但是呢它是方便的,而且不论再怎么变换都不会被淘汰,所以我们还是需要把它视为重点来学习的,有不足的话,希望大家指正哦!