提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
- vim的安装
- 创建新用户 adduser + 用户名
- Linus是个多用户的操作系统
- 是否有创建用户的权限
- 查看当前用户身份:whoami**
- 怎么创建
- 设置密码passwd
- sudo提权(sudo输入的是用户的密码)
- 普通用户切换成root:su
- 修改sudoers
- 易犯错误
- vim三种常见模式
- 命令模式
- 复制粘贴:yy+p
- 撤销u与撤销复原ctrl+r
- 剪切dd
- 在文本中进行快速移动
- 大小写切换和删除字符
- 替换模式shift+r**
- 保存退出:shift+zz
- 批量化注释(比较复杂)
- 批量化去注释
- 插入模式
- 底行模式
- vim的配置
- vim的原理
- 手动配置
- 一键配置
vim的安装
因为vim的配置在每个用户上面是不一样的.跟我们的windows一样,可以进行个性化设置.下面我给大家从创建一个新用户开始,一步步教学.
root用户安装vim
指令:yum -y install vim
yum install vim 表示安装vim,-y(yes)表示确定安装.
因为我提前安装好了,所以它显示nothing to do.
创建新用户 adduser + 用户名
Linus是个多用户的操作系统
首先,Linus和windows一样,是个多用户的操作系统.也就是你可以同时拥有多个用户.
[root@iZ2vc7kou0oyop7xcabvtoZ ~]# ll /home
total 8
drwx------ 3 admin admin 4096 Jul 22 18:00 admin
drwx------ 7 king king 4096 Jul 23 18:01 king
我们可以用ll /home
查看我们当前系统有几个一般用户.我当前系统有两个一般用户:admin和king.
是否有创建用户的权限
查看当前用户身份:whoami**
[root@iZ2vc7kou0oyop7xcabvtoZ ~]# whoami
root
root是超级管理员,基本啥事都能干.
[king@iZ2vc7kou0oyop7xcabvtoZ root]$ whoami
king
一般用户也可以进行创建.但是一般用户要先对sudo进行提权
sudo提权相当于给这个用户加进白名单,代表这个用户值得信任,让这个用户有root的权力.
怎么创建
在root用户下:adduser + 用户名
在家目录就可以看到新用户了
设置密码passwd
passwd:设置密码
sudo提权(sudo输入的是用户的密码)
没提权前:
[king@iZ2vc7kou0oyop7xcabvtoZ root]$ sudo adduser shh
[sudo] password for king:
king is not in the sudoers file. This incident will be reported.
在linus系统中有一个文件sudoers,里面就记载着这个"白名单".要修改这个文件得把用户切换成root
普通用户切换成root:su
su输入的密码是root的密码
[king@iZ2vc7kou0oyop7xcabvtoZ root]$ whoami
king
[king@iZ2vc7kou0oyop7xcabvtoZ root]$ su
Password:
[root@iZ2vc7kou0oyop7xcabvtoZ ~]# whoami
root
修改sudoers
[root@iZ2vc7kou0oyop7xcabvtoZ ~]# ll /etc/sudoers
-r--r-----. 1 root root 4358 Dec 17 2023 /etc/sudoers
要修改sudoers,需要我们提前安装好vim.所以我们先用root用户安装vim,
在root用户下:vim /etc/sudoers
[root@iZ2vc7kou0oyop7xcabvtoZ king]# vim /etc/sudoers
我们首先会看到这样的一堆代码,记住:先别慌.
我们先按下shift键+分号键; ->其实相当于输入冒号
左下角会出现一个冒号的标志,代表vim进入底行模式(先别管是什么,我下面会讲).
输入命令:set nu,然后回车
鼠标下拉(或者一直按住j键),滑到100行.
输入yy(复制) + p(拷贝) .会拷贝出新的一行.
这些指令下面都会一一提及.
先按esc键,从底行模式切换到命令模式.
再按i键 从命令模式切换到插入模式.
插入模式就跟我们平常写代码一样可以正常输入.
最后再把root改成我们新建的用户名.
上面的做完,就可以退出了.esc+(shift+;)->回到底行模式.输入:wq!
w->写入,q->退出.!->强制
易犯错误
用一般用户访问sudoers
左下角会出现Permission Denied->拒绝访问.因为你是一般用户,看不了sudoers.
那怎么除去呢?
shift+; 进入底行模式
q! 因为一般用户对sudoers没有读写权限,没有w.直接q!->强制退出,
vim三种常见模式
这是vim三种模式的关系图,下面我会一一讲解.
命令模式:通过命令来控制文本的逻辑(例如拷贝,粘贴)
插入模式:进行编辑
底行模式:包括但不限于让vim和shell进行交互.(wq->写入并关闭)
指令:touch test.c 新建一个test.c的普通文件
[root@iZ2vc7kou0oyop7xcabvtoZ king]# vim test.c
按下i ,进入编辑模式.左下角有INSERT的标记代表进入成功.
然后按下esc+(shift+;)进入底行模式.
输入set nu设置行号
命令模式
复制粘贴:yy+p
在命令模式:光标在第四行,按下yy(复制)+p(拷贝),在下一行拷贝出与上一行一样的内容.
LInus支持一次拷贝多行和一次复制多次
n+yy:一次拷贝多行
演示:我在第四行按下3yy+p
n+p:一次复制出多份
演示:yy+99p 一次打印出99份printf(“hello vim\n”);
撤销u与撤销复原ctrl+r
相当于windows的ctrl+z撤销 ctrl+r复原
按下u
ctrl+r
注意,左下角一直有提示
剪切dd
相当于windows的ctrl+x.剪切的功能不只有删除
n+dd:一次剪切n行
按下5dd
按下p,粘贴你所剪切的内容.
在文本中进行快速移动
定位到行的开始:^
定位到行的结束:$
定位到文本的最开始:gg
定位到文本的最后一行:shift+g
定位到文本的第n行:n+shift+g
这里我敲的是5+shift+g
上下左右的移动
老版的电脑没有现在的上下左右
所以用hjkl来表示左下上右.
速记:h和l在四个数字的最左边和最右边,分别表示左和右.
j可以想成jump,向下;k想成king,国王一般坐在上面.
n+hjkl 一次跳转n行
一次跳转一个单词w,b
前进一个单词:w
后退一个单词:b
大小写切换和删除字符
大小写切换:~
一行内删除字符
删除光标后面的:n+x
演示:5+x
删除光标前面的:n+shift+x
演示:5+shift+x
替换模式shift+r**
左下角的REPLACE代表进入替换模式.
保存退出:shift+zz
跟进入底行模式再wq功能一样.
批量化注释(比较复杂)
ctrl+v,hjkl区域选择,j,shift+i,//,esc*2.
演示:
ctrl+v,10j
shift+i,//
esc*2
批量化去注释
ctrl+v,hjkl区域选择,dd
ctrl+v,5j,l 相当于选中五行的//
dd
插入模式
命令模式->插入模式
a:在下一个字符进入插入模式
i:在当前字符进入插入模式
o:新建一行并在该行进入插入模式
底行模式
命令模式->底行模式:shift+;
w->保存,q->退出,!->强制
vs+文件名:进行分屏操作. 例:vs test7-24.c
在不同文件进行切换:ctrl+ww
光标在哪一个文件,代表正在操作哪一个文件.
设置行号:set nu 取消:nonu
不退出vim,执行xshell的命令:!commond
例如:用man手册来查看fgets这个函数的使用.不用退出到shell里进行操作.
直接:!man fgets,然后回车
看完直接按q,然后回车.
搜索关键字./关键字
演示:/main
两个文件的main函数的光标都会高亮
vim的配置
vim的原理
vim不是简单的去执行可执行程序.它会读取若干文件,例如…vimrc文件
手动配置
先创建.vimrc的文件
[shh@iZ2vc7kou0oyop7xcabvtoZ ~]$ touch .vimrc
然后进入.vimrc的文件
[shh@iZ2vc7kou0oyop7xcabvtoZ ~]$ vim .vimrc
set nu " 设置显示行号set showmode " 设置在命令行界面最下面显示当前模式等set ruler " 在右下角显示光标所在的行数等信息set autoindent " 设置每次单击Enter键后,光标移动到下一行时与上一行的起始字符对齐syntax on " 即设置语法检测,当编辑C或者Shell脚本时,关键字会用特殊颜色显示
然后退出再进入test.c文件就会发现vim已经"悄悄进化"了.
一键配置
在gitee上面早就有大佬帮我们搞好了.
我们在Linus上面直接输入.不推荐在root下执行,建议在一般用户执行
curl -sLf https://gitee.com/HGtz2222/VimForCpp/raw/master/install.sh -o ./install.sh && bash ./install.sh
这个是网站:VimForCpp,里面可以看到这个配置文件的功能.