vim的相关命令 + 三种模式(10)
文章目录
- vim 的介绍(6-0.27.50)
- 见一见 vim
- 基本的认识
- 命令模式下的命令(非常重要)
- 底行模式的命令
- 补充更加实用的命令操作
- 给vim添加皮肤
vim 的介绍(6-0.27.50)
- 在Linux中各工具是独立的,写代码有写代码的工具(
vim
),调代码有调代码的工具(gdb
),编译则是gcc/g++
,所谓的工具就是命令 - 不像
Windows
上安装的软件VS2022
,它是一个集成开发环境(IDE
),集开发,编译,调试,开发,多语言等功能于一体 vim
是一个专注的编辑器,是Linux
自带的最为经典的编辑器vim
它是一个多模式的编辑器,只要你需要在Linux
下编辑文件就需要借助vim
或vim
的相关用法(如何运用vim
的相关指令,其它的编辑软件相关用法也是八九不离十)
见一见 vim
1. 如何在Linux上打印出hello world
,先创建一个后缀为.c
的普通文件,使用vim
打开该文件会发现按什么都没有用,是因为目前处于命令模式
,可以按键盘上的a,i,o
进入插入模式
[xiao@hcss-ecs-28ce ~]$ ll code.c
-rw-rw-r-- 1 xiao xiao 0 Jun 11 16:12 code.c
[xiao@hcss-ecs-28ce ~]$ vim code.c
2. 写完代码后目前仍处于插入模式,需按ESc
键退回到命令模式,再按shift + ;
进入底层模式输入:wq
,将该文件保存并退出
3. 现在通过gcc
软件将code.c
文件编译成可执行程序。之前咱提到过,对Linux系统来说,一切皆为文件(不区分后缀),但是软件是区分后缀的
[xiao@hcss-ecs-28ce ~]$ ll code.c
-rw-rw-r-- 1 xiao xiao 74 Jun 11 16:25 code.c
[xiao@hcss-ecs-28ce ~]$ cat code.c
#include<stdio.h>
int main()
{printf("hello world");return 0;
}[xiao@hcss-ecs-28ce ~]$ gcc code.c
[xiao@hcss-ecs-28ce ~]$ ll
total 28
-rwxrwxr-x 1 xiao xiao 8360 Jun 11 16:27 a.out(这就是编译的可执行程序)
drwxrwxr-x 2 xiao xiao 4096 Apr 12 15:56 BSTree
-rw-rw-r-- 1 xiao xiao 74 Jun 11 16:25 code.c
d--------- 2 xiao xiao 4096 Jun 10 00:41 dir
-rw-rw-r-- 1 xiao xiao 827 Apr 9 01:30 install.sh[xiao@hcss-ecs-28ce ~]$ ./a.out
hello world
基本的认识
-
一些简单的认知
- 其实咱们在正常编写代码的时候,有时是进行输入操作(比如往文档你输入一些写的代码),这就是正常的编辑行为
- 但平时在
Windows
上作键盘输入的时候,还有一些操作并没有体现在文档内部(比如ctrl + c,ctrl + v,ctrl + x
等快捷方式),其实这些行为也算做编辑行为,但这些行为并不是向文件内部插入内容为目的(比如输入a,输入b),就只是为了复制,粘贴(输入命令)。所以在Windows
咱们的操作已经被分成了两类,要么是在做正常的输入,要么是在输入命令控制 - 只不过
Linux
中的vim
正式将这两类模式区分开来,一个是插入模式
,一个是命令模式
(当然vim
不只这两种模式) - 当你处于命令模式下,键盘中输入的所有内容全部当成命令,命令模式支持的命令也就几百个,而可能你在键盘中按的方式有无数多种,这也是为啥你在命令模式按啥几乎没反应的原因,因为没输入命令模式支持的命令
-
vim
应该有八种模式,但我们真正要在意的其实只有三种模式:命令模式,插入模式,底行模式
,而插入模式就是输入正常输入文本,所以真正需要掌握的只有另外两个模式(熟练运用这两种模式的命令对于写代码就绰绰有余了)
命令模式下的命令(非常重要)
-
在
vim
中进行正常编辑输入,一般是用不到鼠标的,所以就面临着一个很重要的问题:光标定位(输入内容得靠光标,才能指哪打哪,所以光标放在合适的位置很重要的)- 先声明一点,
n + ...
意思是先按键盘上的数字键,再按其它键(共同配合) gg
:光标定位到文本内容的最开始处(第一行的第一个字符)。n + gg
:将光标定位到第n行的第一个字符G
:其实就是按键盘上的shift + g
,将光标定位到文本内容的最末尾处(最后一行的最后一个字符)。n + G
:这里光标也是定位到第n行的第一个字符$
:将光标定位到行尾,^
:将光标定位到行首。这两个都是shift + 数字键
进行输入,把这两个命令称作锚点- 如何通过光标进行左,右,下,上的移动:
h
→左,l
→右,j
→下,k
→上 w/b
:让光标以单词为单位进行前(w
)后(b
)移动。n + w/b
:向前或向后跳过n个单词- 其实键盘上的方向键也是可以进行光标上的左右上下移动的,那为啥还支持
h,j,k,l
移动呢?这里不推荐用上下左右键,首先它比较远,用起来很不方便 - 其次后面做批量化操作,有些批量化组合键不支持上下左右键。而且早期的键盘是没有上下左右键,只支持
h,j,k,l
进行光标的移动,这也是为了向前兼容
- 先声明一点,
-
命令模式的其他命令
yy
:复制当前行。n + yy
:从该行开始,向下复制n行(注意这里仅仅只是复制了内容,还没有进行粘贴,粘贴又是另外一个命令)p
:粘贴到当前行的下一行。n + p
:将复制的内容从光标所在行开始,向下粘贴n次dd
:剪切或删除该行,如果剪切之后不粘贴那不就是删除了吗。n + dd
:从该行开始,向下剪切或删除n行x
:删除光标所在的字符,X
:删除光标前面的那个字符。n + x/X
:向后或向前删除n个字符(包括光标所在的字符,X
删除不包括光标所在的字符)~
:将光标所在的字符进行大小写转换,转换完成后自动移动到下一个字符r
:将该光标所在的字符进行替换(输入你想替换的内容)。n + r
:从光标处开始,将后n个字符替换成n个你输入的相同字符R
:就是键盘上的shift + r
,进入替换模式,只要在该模式下就能随便替换光标所在行的内容(只能往前,往前就是光标往右移动,不能往后),按Esc
键回到命令模式u
:撤销操作。ctrl + r
:对u
进行撤销,只要不退vim
都可以进行撤销shift + z
:保存并退出vim
命令模式进入插入模式
:可以按a
(光标位于当前光标的下一个),i
(当前光标所在处),o
(从当前光标的这行,往下新启一行)
底行模式的命令
- 只能从命令模式进入到底行模式,这是唯一途径。按
:
也就是键盘上的shift + ;
,从命令模式进入到底行模式 - 进入底行模式后,输入
wq
:退出并保存,其中w是保存,q是退出(两个都可以单独使用)。wq!
:强制保存并退出(别!wq
这种写法) - 退出并保存为啥会存在强制呢?可能以后需要配置文件,该配置文件是root的,而且有些配置文件十分的重要,那系统可能不会让你改,这时候就需要用到该命令,后面改
sudo
的配置文件就会用到 set nu
:设置行号。set nonu
:取消行号输入 / 要查找的信息
:能在文档中定位到该信息的开始处。按下n,可以找到下一处相同的信息处!命令(!gcc code.c 或者 !ls)
:可以在不退出vim
的条件下,执行行命令,这样可以加快对代码的编辑,调试等操作
vs 其它文件(比如 code.h)
:可以实现分屏操作。永远记住,在你整个终端当中,只显示一个光标,光标在哪个界面当中,就代表你正在编辑哪个文件ctrl + ww
:在分屏情况下进行界面光标的移动。可以分屏多个文件,如果vs
不存在的文件,保存并退出后这个文件就会自动生成(在命令模式下
)
补充更加实用的命令操作
-
第一个实用的操作
:如何批量化的注释,如何批量化的去注释(视图模式下的批量化操作)- 首先按
ctrl + v
从命令模式进入视图模式,界面底下会出现VISUAL BLOCK
,从视图模式退出到命令模式也是按Esc
键 - 其次按
h,j,k,l
进行选择,此时光标是块状的。然后按键盘上的I
(shift + i
),再输入//
,按键盘上的Esc
即可 - 批量化去注释:先
ctrl + v
,再h,j,k,l
进行选择,直接d
- 视图模式下的块状选择不仅仅用在批量化注释和批量化去注释,只是以这两个操作为载体,拓展运用到批量化编辑
- 首先按
-
第二个实用的操作
:在底行模式下进行批量化的替换,将文本中所有的同一种信息替换成你输入的内容。举个例子:%s/printf/print/g
,用后者print
去替换前者printf
,g:global
(全部的意思) -
第三个实用的操作
:vim code.c + 15
,用vim
打开code.c
文件并让光标定位到第15行的第一个字符处(也可能是第15行附件) -
第四个实用的操作
:! 历史命令的第一个字符
,快速执行历史命令
给vim添加皮肤
-
上面所打开的
vim
界面是配置了后的结果,最开始的vim
啥也没有,没有语法高亮,缩进,报错,代码补全等相关便捷操作。注意:不要用
root超级用户配置,要切换到普通用户下配置
-
其次当你这个普通用户配置完成后,张三这个普通用户和
root
用户都用不了,其它普通用户想要用,就得自己去配置,你配置你的,不要影响别人 -
配置具体步骤
- 在这个
.vimrc
文件中写需要的配置项
- 在这个
.vim
目录下去下载对应的插件
- 当然你也可以去系统级别的配置,建议不要去配置,自己配置自己的即可
- OK,现在知道在哪里配置了,那该如何配置呢?要配置什么东西呢?直接问AI:帮我形成一个
vim
的配置清单,并说明
- 在这个
-
我没有自己去搞这个配置了,我是去下载了我老师配置的,直接输入命令,一键到位。文件链接:https://gitee.com/HGtz2222/VimForCpp,目前只支持
Centos7 x86_64
-
安装方法:在 shell 中执行指令(想在哪个用户下让vim配置生效,就在哪个用户下执行这个指令,强烈
不推荐
直接在 root 下执行),需要按照提示输入 root 密码,您的 root 密码不会被上传, 请放心输入.
curl -sLf https://gitee.com/HGtz2222/VimForCpp/raw/master/install.sh -o ./install.sh && bash ./install.sh
- 可能需要去换缩进,上面配置文件的缩进是2,在普通用户的加目录下:
/home/xiao
,输入命令:vim .vimrc
,进入底行模式,开始搜索:/2
,回车将2改成4,wq!
强制保存并退出