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
相关推荐
落魄君子1 小时前
SVM分类-支持向量机(Support Vector Machine)
神经网络·算法·支持向量机·分类
CSND7401 小时前
Ubuntu vi(vim)编辑器配置一键补全main函数
linux·c语言·ubuntu·编辑器·vim
上理考研周导师2 小时前
【单片机原理】第1章 微机基础知识,运算器,控制器,寄存器,微机工作过程,数制转换
算法
IT猿手3 小时前
基于PWLCM混沌映射的麋鹿群优化算法(Elk herd optimizer,EHO)的多无人机协同路径规划,MATLAB代码
算法·elk·机器学习·matlab·无人机·聚类·强化学习
シ風箏4 小时前
Neo4j【环境部署 02】图形数据库Neo4j在Linux系统ARM架构下的安装使用
linux·数据库·arm·neo4j
C.L.L5 小时前
vscode中同时运行两个python文件(不用安装插件)
ide·vscode·编辑器
Cachel wood6 小时前
Vue.js前端框架教程8:Vue消息提示ElMessage和ElMessageBox
linux·前端·javascript·vue.js·前端框架·ecmascript
m0_675988238 小时前
Leetcode2545:根据第 K 场考试的分数排序
python·算法·leetcode
破-风8 小时前
leetcode---mysql
算法·leetcode·职场和发展
Wils0nEdwards8 小时前
Leetcode 合并两个有序链表
算法·leetcode·链表