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
相关推荐
二进制person2 小时前
Java SE--方法的使用
java·开发语言·算法
物联网老王2 小时前
Ubuntu Linux Cursor 安装与使用一
linux·运维·ubuntu
OneQ6662 小时前
C++讲解---创建日期类
开发语言·c++·算法
JoJo_Way2 小时前
LeetCode三数之和-js题解
javascript·算法·leetcode
.30-06Springfield3 小时前
人工智能概念之七:集成学习思想(Bagging、Boosting、Stacking)
人工智能·算法·机器学习·集成学习
死也不注释3 小时前
【Unity 编辑器工具开发:GUILayout 与 EditorGUILayout 对比分析】
unity·编辑器·游戏引擎
一位摩羯座DBA4 小时前
Redhat&Centos挂载镜像
linux·运维·centos
学习3人组4 小时前
CentOS配置网络
linux·网络·centos
weixin_307779134 小时前
Hive集群之间迁移的Linux Shell脚本
大数据·linux·hive·bash·迁移学习
凌肖战5 小时前
力扣网C语言编程题:在数组中查找目标值位置之二分查找法
c语言·算法·leetcode