vim使用

vi/vim的区别简单点来说,它们都是多模式编辑器,不同的是vim是vi的升级版本,它不仅兼容vi的所有指令,而且还有一些新的特性在里面。例如语法加亮,可视化操作不仅可以在终端运行,也可以运行于x window、 mac os、windows。

一:vim的基本概念

本篇文章主要讲解vim的三种常用模式,分别是命令模式(command mode),插入模式(insert mode)和底行模式(last line mode),各模式的功能区分如下:

正常/普通/命令模式

控制屏幕光标的移动,字符,字或者行的删除,移动复制某区段及进入insert mode 下或者了last line mode

插入模式(insert mode)

只有在insert mode 下,才可以做文字输入,按ESC建可退回命令行模式,该模式是用到最频繁的编辑模式

末行模式(底行模式er)(last line mode)

文件保存或者退出,也可以进行文件替换,找字符串,列出行号等操作,在命令模式下,**shift+;**即可进入该模式。

查看你的所有模式:打开vim,底行模式直接输入:help vim-modes


二:vim的基本操作


三:vim命令模式下的命令集

光标所在的行:1.复制:yy,数字+yy(复制n行)

2.粘贴:p,数字+p(粘贴多行)

3.撤销:u ,CTRL+r:撤销u

4.剪切:dd,数字+dd(剪切多行) 剪切之后不粘贴就相当于删除

光标快速定位:1.shift + g --> G定位到文本结尾

2.gg:定位到文本的最开始

3.数字+shift+g:定位到文本的任意一行

光标局部定位 :**↑,↓,←,→**控制光标左右移动

k,j,h,l也可以控制光标左右移动,与上面一一对应

shift+4 ---> $ :行尾

shift+6---->^:行首

w:以单词为单位,向后跳转

b:以单词为单位,向前跳转

如果w/b识别不出单词,就向后/前移动一个字母

数字+x:光标位置后,按照字符删除n个字符,包含光标所在字符

数字+shift+x--->数字+X:光标位置向前删除n个字符,不包含光标所在字符

shift+~:光标对应字母的大小写转换

数字+r+替换字母(同一个):将光标往后n个字母替换成想要替换的字母

#l:#表示一个数字,光标移动到第#位置

c+数字+w:更改光标所在位置n个字


四:vim底行模式命令集

set nu:出现行号

set nonu:取消行号

!ls-al:退出当前文件,并在命令行页面显示所有文件,按任意建返回文件

!ll:退出当前文件,并显示文件名

vs+文件名:分屏,光标在哪,哪就是可以编辑的文件

shift+zz:退出分屏

CTRL+ww:切换光标到另一个文件

注:Linux下有且只有一个光标

!gcc 文件名 .exe:编译

#:#表示一个数字,在冒号后面输入一个数字再按回车键,就可以跳到改行

/+内容:查找内容,如果内容不是想要的,可以按n往后寻找,直到找到为止

w:保存文件

q:退出文件,不会进行保存

**wq:**保存并退出文件


五:vim插入模式命令集

一行注释:直接插入//

多行注释

1.命令模式下,CTRL+v 进入vistual BLOCK模式,用J/K进行区域选择,在shift+i进入插入模式插入一个//,再按ESC退出

2.命令模式下,CTRL+v 进入vistual BLOCK模式,再shift+g全选,shift+i插入//,ESC退出

3.命令模式下,CTRL+v 进入vistual BLOCK模式,再数字+shift+g区域选择,shift+i插入//。ESC退出

取消注释:命令模式下,CTRL+v 进入vistual BLOCK模式,按 l 把光标选中两个字符,再下选,再按d删除


六:配置sudo文件

将普通用户加进sudo文件中,这样普通用户就可以用sudo进行短暂的提权

命令:

复制代码
vim /etc/sudoers
相关推荐
眼镜哥(with glasses)21 分钟前
蓝桥杯 国赛2024python(b组)题目(1-3)
数据结构·算法·蓝桥杯
apocelipes4 小时前
Linux c 运行时获取动态库所在路径
linux·c语言·linux编程
努力学习的小廉5 小时前
深入了解linux系统—— 进程池
linux·运维·服务器
int型码农5 小时前
数据结构第八章(一) 插入排序
c语言·数据结构·算法·排序算法·希尔排序
秃头菜狗5 小时前
各个主要目录的功能 / Linux 常见指令
linux·运维·服务器
2301_793102495 小时前
Linux——MySql数据库
linux·数据库
UFIT5 小时前
NoSQL之redis哨兵
java·前端·算法
喜欢吃燃面5 小时前
C++刷题:日期模拟(1)
c++·学习·算法
SHERlocked935 小时前
CPP 从 0 到 1 完成一个支持 future/promise 的 Windows 异步串口通信库
c++·算法·promise
怀旧,5 小时前
【数据结构】6. 时间与空间复杂度
java·数据结构·算法