Linux编辑器---vim

目录

1、vim的基本概念

[2正常/普通/命令模式(Normal mode)](#2正常/普通/命令模式(Normal mode))

2、1命令模式下一些命令(不用进入插入模式)

[3插入模式(Insert mode)](#3插入模式(Insert mode))

[4末行/底行模式(last line mode)](#4末行/底行模式(last line mode))

4、1底行模式下的一些命令

5、普通用户无法进行sudo提权的解决方案

6、vim配置问题

6、1配置原理

6、1、1配置文件的位置

6、1、2常用配置选项,用来测试


1、vim的基本概念

vim是一种多模式的编辑器。

这里我们讲解vim的三种模式(其实有很多模式,这里掌握三种即可),分别是命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode)。

2正常/普通/命令模式(Normal mode)

命令模式是vim的核心模式。如果忘了自己在哪个模式,无脑ESC回到命令模式。

命令模式:允许使用者通过命令,来进行文本的编辑控制。

刚开始打开vim的时候,暂时无法正常输入 ,这是进入了命令模式。当我们输入i(insert)就进入到了插入模式。(左下角出现insert)。就可以正常编写程序。

2、1命令模式下一些命令(不用进入插入模式)

yy:复制当前行。(支持在yy前带数字: n + yy,表示从当前光标开始,连续复制n行)

p:粘贴到我们当前光标的下一行。(支持在p前面带数字:n + p,表示把指定内容复制粘贴n次。)

u:撤销

dd:将光标指定行剪切/删除。,后面带上p就是剪切。(支持前面带数组:n + dd,表示把指定连续n行剪切/删除。)

x:在光标位置向后 删除一个字符(在一行内)。(也支持带n,n+x,向后删除n个字符)

shift + x = X :在光标位置向前 删除一个字符(在一行内)。(也支持带n,n+x,向前删除n个字符)

r + 字符:对光标指定的位置进行一个字符的替换。(也支持n,**n + r + 字符,**向后替换n个字符)

shift + r = R:进入替换模式,直接进行文本替换。

i:按「i」切换进入插入模式「insert mode」,按"i"进入插入模式后是从光标当前位置开始输入文件;

a:按「a」进入插入模式后,是从目前光标所在位置的下一个位置开始输入文字;

o:按「o」进入插入模式后,是插入新的一行,从行首开始输入文字

shift + ;,即**:**:进入底行模式。

移动光标:可通过上下左右移动,也可以用 h j k l分别对应左 下 上 右移动:h(左),j(下),k(上),l(右)。也可以带n。

G:移动到文章的最后

nG:移动到文章的第n行

gg:进入到文本开始

$ :移动到光标所在行的"行尾"

^:移动到光标所在行的"行首"

w:光标跳到下个字的开头,(以单词为单位,往后移)

b:光标回到上个字的开头,(以单词为单位,往前移)

e:光标跳到下个字的字尾

nl:光标移到该行的第n个位置,如:5l,56l

ctrl + r:取消撤销动作。(对撤销进行撤销)

shift + ` = ~:大小写转换。

shift + zz= ZZ:保存并退出。(不建议)(如果ctrl + z会中断vim,并形成临时文件。如果断网了,也会形成临时文件。临时文件是个隐藏文件。有了临时文件:进入vim时,R可恢复文件,D可删除临时文件。)临时文件其实是vim在保护文件。

批量化注释:先ctrl+v进入visual block模式,然后hjkl上下选择想要注释的行,再shift + i = I,再**//,再ESC**按一次或两次。

消除注释:先ctrl+v进入visual block模式,然后hjkl上下选择想要删除注释的行,一定要仅包含//,再d。

ctrl+b:屏幕往"后"移动一页

ctrl+f:屏幕往"前"移动一页

ctrl+u:屏幕往"后"移动半页

ctrl+d:屏幕往"前"移动半页

3插入模式(Insert mode)

插入模式 :其实就是我们的编辑模式。

只有在Insert mode下,才可以做文字输入,按「ESC」键可回到命令行模式。该模式是我们后面用的最频繁的编辑模式。

4末行/底行模式(last line mode)

底行模式:用来进行让vim进行包括但不限于shell进行交互的。什么保存,退出,什么的。

在命令模式下 ,shift+:(输入冒号) 即可进入底行模式模式。输入wq就可以退出了。

如果刚进入vim的时候后面没有接文件,想要退出,就在命令模式下**:+ q!**即可。

4、1底行模式下的一些命令

w:表示保存当前文件

wq:表示存盘并退出vim

q:退出

!:强制

wq!:保存并强制退出

q!:表示不存盘强制退出

set nu:标出行数

set nonu:不标出行数

/关键字:做搜索

!command:不退出vim,可以进行shell命令的执行。最常用的就是查看常用函数使用方式,即man手册。

vs filename:分屏,多文件操作。(ctrl ww,切屏)(多屏之间支持跳转:即在这屏里面复制的东西,可以粘贴到另一屏)(其实也是vim了一个文件,vim创建的文件如果不保存,退出之后不会创建。只有保存后才会创建出来)

5、普通用户无法进行sudo提权的解决方案

不能进行sudo提权的原因是:普通用户并没有在sudoers白名单中。

1、首先转换为root用户

2、vim /etc/sudoers

3、在100行左右,和root的格式类似的添加一行,将新的一行的root位置处改为普通用户名

4、wq!强制保存退出。

5、提权成功。

6、vim配置问题

6、1配置原理

vim不是简单直接执行可执行程序就行,也会读取若干配置文件,其中最典型的配置文件叫 .vimrc。

6、1、1配置文件的位置

在目录 /etc/ 下面,有个名为vimrc的文件,这是系统中公共的vim配置文件,对所有用户都有效。

而在每个用户的主目录下,都可以自己建立私有的配置文件,命名为:".vimrc"。例如,/root目录下,通常已经存在一个.vimrc文件,如果不存在,则创建之。

切换用户成为自己执行 su ,进入自己的主工作目录,执行 cd ~

打开自己目录下的.vimrc文件,执行 vim .vimrc

6、1、2常用配置选项,用来测试

设置语法高亮: syntax on

显示行号: set nu

设置缩进的空格数为4: set shiftwidth=4

相关推荐
墨家句子25 分钟前
4G 显存老显卡怎么跑模型:llama.cpp 加 GGUF 配置
linux·后端
2601_962885722 小时前
如何用 Python 统计 A 股连续涨停(几连板)?
java·linux·python
H.莓飛2 小时前
【数据结构】二叉树
linux·数据结构·算法
荣合技术服务2 小时前
VMware ESXi 虚拟化平台服务器虚拟机数据恢复服务
linux·运维·服务器
杭州领祺科技2 小时前
保信子站深度解析:继电保护信息采集与故障诊断的关键枢纽
linux·服务器·网络·新能源·储能·虚拟电厂
xh didida2 小时前
Linux -- 进程概念
linux·服务器·开发语言·c++
爱吃香菜的初学者2 小时前
十三.Linux——信号量
linux·运维·服务器·开发语言
小小龙学IT2 小时前
ROS2 安装完全指南(Ubuntu 版):从零开始到跑通第一个节点本文
linux·运维·ubuntu
Ruiery2 小时前
Linux 6.6内核 CPU 深度解析(十二):SMT 进阶 — core scheduling 与共享算力的负载平衡
linux·运维·服务器
影视飓风TIM3 小时前
Linux 进程虚拟地址空间详解
linux·算法