一、vim的基本概念
- 正常/普通/命令模式(Normal mode)
控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到 last line mode
- 插入模式(Insert mode)
只有在Insert mode下,才可以做文字输入,按「ESC」键可回到命令行模式。该模式是我们后面用的最频繁的编辑模式。
- 末行模式(last line mode)
文件保存或退出,也可以进行文件替换,找字符串,列出行号等操作。 在命令模式下, shift+; 即可进入该模式。要查看你的所有模式:打开vim,底行模式直接输入 : help vim-modes
二、vim的基本操作
1.模式的切换
进入vim,在系统提示符号输入vim及文件名称后,就进入vim全屏幕编辑画面
例如: vim test.c
我们正常打开vim就是进入命令模式。
[正常模式]切换至[插入模式]
- 输入 a
- 输入 i
- 输入 o
[正常模式]切换至[末行模式]
按下 shift + ;
[插入模式]和[末行模式]切换至[正常模式]
按下 Esc 即可回到正常模式。
退出vim及保存文件
在[末行模式]下在命令行中输入wq,即可保存文件退出。当然也可以 !q 强制退出,但是不会保存文件。
转化操作图:
2.命令模式操作集
-
光标操作
shift + 4 = $ | 跳转到行最右边 |
shift + 6 = ^ | 跳转到行的最左边 |
shift + g = G | 跳转到最底部 |
gg | 跳转到顶部 |
n + shift + g = nG | 跳转到指定行,n代表的是行号 |
w | 向后按照单词移动 |
b | 向前按照单词移动 |
-
光标移动
h | 向左移动 |
j | 向上移动 |
k | 向下移动 |
l | 向右移动 |
-
撤销操作和取消撤销
u | 撤销操作 |
ctrl + r | 取消u操作 |
-
文本复制相关
yy | 复制光标所在行内容(nyy :对光标所在行进行多行复制) |
p | 粘贴(np:对复制的内容进行多行粘贴) |
dd | 删除光标所在行(支持ndd) |
ndd + p | 剪切操作 |
-
文本编辑
shift + ` = ~ | 大小写转换 |
r | 替换光标所在的一个字符,支持nr |
shift + r = R | 批量化替换 |
x 和 X | 行内删除,x是向后删除,X是向前删除 |
cw 和 cnw | cw:删除光标所在的字到字尾,并进入插入模式 cnw:删除n段字,并进入插入模式 |
3.末行模式操作
set nu/nonu | set nu 是设置每一行之前显示行号 set nonu是取消设置行号 |
vs + 文件名 | 分屏 |
ctrl + ww | 光标切屏 |
!+ 命令 | 执行Linux命令 |
:%s/printf/cout/g | 将全文的printf换成cout (printf 和 cout 可以换成别的内容) |
三、vim的基本配置
1.vim的配置原理
vim的配置是一人一份的,每个用户配置的是自己的,不会影响别人。
每一个人虽然用的是同一个vim程序,但是,大家用的是不同的vim配置。每一个用户在自己的家目录下都有一个配置文件 .vimrc (第一进家目录是没有的,需要自己创建。)
2.vim的配置
我们vim打开 .vimrc 文件,加入配置的命令就好了。例如:
设置语法高亮: syntax on显示行号: set nu设置缩进的空格数为4: set shiftwidth=4
3.一键配置
有已经配置的好的,我们点开链接:VimForCpp: 快速将vim打造成c++ IDE (gitee.com)
下翻找到这个命令:curl -sLf https://gitee.com/HGtz2222/VimForCpp/raw/master/install.sh -o ./install.sh && bash ./install.sh
直接复制粘贴到Linux的命令行中,确认就行了,然后输入一次root密码后就一键配置成功了。
可以看到全部都配置好了。唯一不足之处在于配一行的自动缩进是2格(我这里已经改成了4格)。
我们进入 .vimrc 文件之后,进入末行模式输入 /2 就可以找到这里。我们将2改成4即可完成配置。
四、配置 sudo 权限
前文我们提到过想要使用 sudo 权限,需要一定的操作。
学完了vim 的使用,我们就可以学习怎么来配置用户的 sudo 权限了。
我们切换到root用户,输入 ls /etc/sudoers,一定要有这个文件才能配置。
vim打开 /etc/sudoers,我们翻到100行左右的时候会有这个内容 ,yy复制一下100行内容,p粘贴一下,把root改成需要提权的用户就好了。
因为文件是只读的,这时候有些人可能末行模式输入 wq 退出不了,这时候输入 w!后再输入 q!强制保存退出。
这就完成了配置。