文章目录
1. vim的基本概念
vim是一款多模式编辑器
直接vim xxx后保存退出是可以直接生成文件的,但还是建议先创建文件,再编辑文件内容,如果不保存是不会生成文件的
常见模式(3种):命令模式、底行模式、插入模式
插入模式:编辑模式
命令模式:允许使用者通过命令来进行文本的编辑控制,比如:控制屏幕光标的移动等
底行模式:用来进行让vim进行包括但不限于shell进行交互,比如:文件保存或退出,也可以进行文件替换,找字符串,列出行号等操作
2. vim的基本操作(模式的转换)
1)在shell中输入vim [文件名]就可以进入xim全屏编辑画面,即命令模式
2)命令模式进入插入模式:
i:进入插入模式,光标位置不变
a:进入插入模式,光标向后移动一个字符
o:进入插入模式,光标向下新起一行
3)命令模式进入底行模式:
按Shift+:=:进入底行模式,此时再输入wq回车就可以退出vim
4)底行模式和插入模式都是按Esc返回命令模式,同时,底行模式与插入模式不能直接相互转换
3. vim命令模式集
下述的n为数字,即光标以指令要求的单词往后n为一个整体
移动光标:
键盘上下左右键:h,j,k,l -> 左下上右(早期键盘快捷键,至今兼容),也可以带n
w:光标后移到下一个字开头
b:光标前移到上一个字开头
Shift+g=G/n+Shift+g=nG:将光标定位到整个文本的结尾 / 将光标定位到整个文本的第n行
gg:将光标定位到整个文本的开头
Shift+4=$:将光标定位到当前行的结尾
Shift+6=^:将光标定位到当前行的开头
复制粘贴:
yy/nyy:复制当前行 / 连续复制n行
p/np:粘贴到光标下一行 / 复制的内容粘贴到光标下一行n次
替换:
r/nr:对光标指定的位置进行一个字符的替换 / 一次性替换后续n个字符
Shift+r=R:进入替换模式,直接进行文本替换
删除:
dd/ndd:剪切或删除某行(若剪切后不粘贴) / 剪切或删除连续n行
x/nx:删除光标后续的一个字符 / 一次性删除n个后续字符
Shift+x=X/n+Shift+x=nX:删除光标之前的一个字符 / 一次性删除n个之前字符
撤销上一次操作:
u:撤销
ctrl+r:取消撤销操作
大小写切换:
Shift+
=~/n+Shift+
=n~:大小写切换 / 一次性将后面n个单词进行大小写切换
退出编译器:
Shift+zz=ZZ:快速退出vim编辑器,但不推荐使用
Ctrl+z:暂停vim编辑器,后台还有活动
补充知识1:vim [filename]会出现提示
1.什么情况下会出现提示?
1)当使用Ctrl+z退出vim后再次进入时会弹出提示,因为此时是暂停vim,后台还有活动,会生成一个临时文件
2)编写文件后因为各种事件没有保存退出的,再次进入也会弹提示,因为此时也生成了一个临时文件,便于恢复等操作
2.解决方法
可以在提示中进行各类操作,比如:保存、删除等操作,若选择删除则后续不会弹出提示,或者在当前目录下找到临时文件并删除也会消除提示
4. vim底行命令集
行号:
set nu:显示行数
set nonu:去掉行数
保存及离开vim:
w:保存
q:退出
!:强制
可以搭配使用,如wq,即保存退出
查找:
/[关键字]:搜索关键字位置,按n可以往后查找
![command]:不退出vim,可以进行shell命令的执行。最常用就是进行常用函数查看,比如输入!gcc test.c|./a.out,可以查看输出结果后直接回车就能回到vim页面
分屏切屏:
vs [filename]:分屏,多文件操作,光标在哪就是编辑哪个文件
Ctrl+w:切换屏幕
补充知识2:vim编辑代码注释、批量注释及删除注释
1)注释:在插入模式下直接在代码前输入//
2)批量注释:Ctrl+v进入视图模式,用 hjkl [一般是 hl 上下选择] 或者n+Shift+g进行区域选择,然后Shift+i=I进入插入模式,输入//完成注释,再按Esc*2退出(要两次退出后才能看到全部注释)。也可以用/**/
3)删除注释:Ctrl+v进入视图模式,用hjkl进行区域选择,要包含且仅包含//,然后输入d即可删除
5.新建普通用户并sudo提权及删除普通用户
1)新建普通用户:创建新用户adduser [新用户名],设置新用户密码passwd [新用户名]
2)设置sudo提权:新建普通用户时不能直接进行sudo,因为没有在sudoers文件中配置,所以要用root用户打开/etc/sudoers,在大概100行处添加xxx[新建的用户名] ALL=(ALL) ALL,这样该用户就可以使用sudo了(注意:要先设置文件为可w权限才能进行修改)
3)删除普通用户:只删除用户但保留文件userdel [被删除用户名],删除用户与用户文件userdel -r [被删除用户名]
如果提示userdel: user zs is currently used by process 1697是因为进程被占用了,最简单的办法是用ctrl+d一直退出(远程连接可以直接关闭重新连接),确保当前普通用户已经完全退出后就可以正常删除了
6.vim的配置问题
原理: vim不是简单直接可执行程序就行,也会读取若干配置文件,比如.vimrc,直接在目录下新建该文件,打开写入set nu并保存退出,再次打开文件就可以生效了
一键配置:(仅支持 Centos7 x86_64,且要在普通用户下进行执行)在shell中执行指令并输入root密码(在哪个用户下执行哪个用户的vim配置就会生效)curl -sLf https://gitee.com/HGtz2222/VimForCpp/raw/master/install.sh -o ./install.sh && bash ./install.sh
卸载: 在VimForCpp下执行:bash ~/.VimForCpp/uninstall.sh