很高兴和大家见面,给生活加点impetus!!开启今天的编程之路
今天我们来学习Linux的基础指令,以及细化每一条指令,我们会从基本用法和理论的角度出发认识这些指令
作者:٩( ‘ω’ )و260
我的专栏:Linux,C++进阶,C++初阶,数据结构初阶,题海探骊,c语言
欢迎点赞,关注!!
vim编辑器
首先,vim是什么,vim是一个编辑器,学习c/c++的的时候我们经常会使用到vs2022,或其他版本,vs2022是一个集成开发环境,写,编译,调试,运行代码都是有vs2022完成,但是linux不同:
写代码常见工具为vim,vi,
编译由gcc,g++,
调试由gdb,cgdb,
构建工具:makefile,make,cmake
今天我们来学习vim编辑器
快速写一个hello world
我们先来写一个hello world代码。
先来看结果,操作以及指令我们后面会谈到:
这里我们成功运行了这个可执行程序~
五种模式及关系
在linux中,我们主要学习vim三种模式就已经足够了,学习五种其实就有盈余了。
主要分为命令模式,底行模式,插入模式,我们先来给出这三者的关系:
vim直接进入的就是命令模式
1:任何模式切换到命令模式都是Esc
2:命令模式->插入模式输入i
3:命令模式->底行模式输入shift + ;(:),即冒号
从简单的图可以看出,命令模式作为一种枢纽,可以切换到任何模式,所以,在vim中,命令模式是一种最重要的模式。
命令模式
什么是命令模式?举个例子,我们在编写word文档的时候肯定会使用到快捷键ctrl + c,ctrl + v,那么,我们发现,ctrl + c会别识别成一个命令,而不会被识别成一个字符。所以,vim中命令也是如此~
为什么要学习命令?
命令能够提高编写代码的效率
接下来我们来系统讲解vim命令模式:
进入vim界面:vim 文件名,前面hello world也已经使用到了。
以下指令涉及n的都不是同时按下,而是先按n,再按对应的指令~
首先我们vim编辑某个文件,我们需要在插入模式下写代码,在命令模式下输入指令,即我们进入编辑文档界面先点击i,代码编辑完成之后使用Esc退出到命令模式~
进入文本末端:shift + g(G)
进入文本第n行:n + shift + g(G)
进入文本首端:gg
进入当前行结尾:shift + 4($)
进入当前行开头:shift + 6(^)
w:以"单词"为单位,向右移
b:以"单词"为单位,向左移动
我们先来看代码示例:
再来看剩下的示例:
如果不是整个单词,如特殊符号""()等,会被识别为一个单独的字符串。
h(向左)j(向下)k(向上)l(向右)
yy:复制光标当前行 ;n + yy:复制光标以下(包含光标行)的n行
p:粘贴到光标行的下一行 ; n + p:粘贴n行到光标行的下一行
dd:删除当前行 ; n + dd:删除包含光标行的下面的n行
我们可以使用hjkl来替代键盘上的上下左右方向键,主要是因为这个就在我们的手下,按起来比较方便,这个我们就不再做示例了~
来看代码示例:
这里我们要求复制10000行,最后并删除10000行:
我们按下shift + g(G)进入文本最后一行
删除:10000 + dd
这里需要注意是删除下方的10000行,所以需要提前把光标放在第一行的printf
shift + ·(~):进行大小写转换
r:替换光标位置所在的一个字符 ; n + r:替换光标位置所在的右方的n个字符
shift + r(R):进入替换模式,进行批量化替换
x:删除光标所在位置,向右删 ; n + x:删除光标所在位置n个字符,向右删
shift + x(X):删除光标所在位置,向左删 ; n + shift + x(X):删除光标所在位置n个位置,向左删
我们来看代码示例:
u:撤销操作
ctrl + r:对u的撤销进行撤销
这个操作十分简单,其实就等价于我们日常操作中的ctrl + z
批量化注释
1:ctrl + v进入可视化模式
2:hjkl选择区域
3:shift + i(I):目的是切到插入模式
4://
5:Esc
直接来看示例代码:
批量化去注释
1:ctrl + v进入可视化模式
2:hjkl选择区域
3:d删除
来看示例代码:
命令模式大致代码就介绍完了,接下来我们介绍底行模式
底行模式
首先命令模式下需要点击shift + ;(:)即冒号进入底行模式
w:保存
q:退出
wq:保存并退出
这个比较好理解,使用vim编辑代码之后需要退出,退出的话代码就要进行保存:
在左下角能够看见我们输入的命令
/key + n:进行关键字搜索,按n跳转到下一个关键字位置
!cmd(代表命令):不退出执行命令
来看示例代码:
!cmd方法可以使我们不用退出vim界面,就能够对代码进行编译,运行,有错误的话直接调试就好了
%s/dest/src/g:批量化替换
shift + zz:保存并退出,等价于wq
vim + 文件名 + 数字:跳到指定数字的一行
我们直接来看代码:
保存并退出以及光标跳动这里我们就不在演示了,比较简单。
这里我们需要提到两个细节:
细节1:如果角色没有权限,我还能够对其进行编辑操作吗?
没有r权限:
没有w权限:
我们发现写不进去内容,但是如果我就是要写进去,该怎么办呢?
进行强制操作
wq!:强制保存并退出
q!:强制退出
w!:强制保存
我么发现成功写进去了!!
细节2:如果在vim的过程中,我们直接将xshell关掉,或者网络掉线,vim编辑的代码会不会保存呢?
我们正在vim的过程中直接将xshell,再次登录,vim同一个文件,来看结果:
弹出该提示,我们点击R,发现我们即使没有保存文件,但是之前编辑的数据没有丢失:
vim编辑的过程中,会生成临时文件,该临时文件是影藏文件,使用ls -al能够看到,恢复之后将这个临时文件删除即可~
插入模式
插入模式其实没有什么好讲的,其实就是跟我们日常使用操作,快捷键类似,这里我不在讲解~~
结语
感谢大家阅读我的博客,不足之处欢迎大家留言指出,感谢大家支持!!
心若浮萍,随波逐流;志如磐石,稳立潮头!!