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