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
相关推荐
算AI4 小时前
人工智能+牙科:临床应用中的几个问题
人工智能·算法
莲动渔舟5 小时前
国产编辑器EverEdit - 扩展脚本:让EverEdit支持“批量查找”功能
编辑器·emeditor·notepad·everedit
cg50175 小时前
Spring Boot 的配置文件
java·linux·spring boot
暮云星影6 小时前
三、FFmpeg学习笔记
linux·ffmpeg
rainFFrain6 小时前
单例模式与线程安全
linux·运维·服务器·vscode·单例模式
GalaxyPokemon6 小时前
Muduo网络库实现 [九] - EventLoopThread模块
linux·服务器·c++
hyshhhh6 小时前
【算法岗面试题】深度学习中如何防止过拟合?
网络·人工智能·深度学习·神经网络·算法·计算机视觉
mingqian_chu7 小时前
ubuntu中使用安卓模拟器
android·linux·ubuntu
Liudef067 小时前
deepseek v3-0324实现SVG 编辑器
开发语言·javascript·编辑器·deepseek
杉之7 小时前
选择排序笔记
java·算法·排序算法