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
相关推荐
望获linux16 分钟前
实时操作系统在服务型机器人中的关键作用
linux·机器人·操作系统·开源软件·rtos·具身智能
哈哈幸运36 分钟前
Linux Sed 深度解析:从日志清洗到 K8s 等12个高频场景
linux·运维·编辑器·sed
心随_风动38 分钟前
主流操作系统对比分析(macOS、Linux、Windows、Unix)
linux·windows·macos
姜太小白1 小时前
【VSCode】VS Code自动换行设置方法
ide·vscode·编辑器
山北雨夜漫步1 小时前
机器学习 Day14 XGboost(极端梯度提升树)算法
人工智能·算法·机器学习
到底怎么取名字不会重复1 小时前
Day10——LeetCode15&560
c++·算法·leetcode·哈希算法·散列表
啊吧怪不啊吧1 小时前
Linux常见指令介绍下(入门级)
linux·开发语言·centos
chuxinweihui2 小时前
数据结构——二叉树,堆
c语言·开发语言·数据结构·学习·算法·链表
freexyn2 小时前
Matlab自学笔记五十一:(推荐)输入参数的数量和可变数量的输入
笔记·算法·matlab
陈大大陈2 小时前
基于 C++ 的用户认证系统开发:从注册登录到Redis 缓存优化
java·linux·开发语言·数据结构·c++·算法·缓存