Linux编辑器-vim使用


.
个人主页: 晓风飞
专栏: 数据结构|Linux|C语言
路漫漫其修远兮,吾将上下而求索


文章目录


vim的基本概念

正常/普通/命令模式(Normal mode)

控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到 last line mode

插入模式(Insert mode)

只有在Insert mode下,才可以做文字输入,按「ESC」键可回到命令行模式。该模式是我们后面用的最频繁的编辑模式。

末行模式(last line mode)

文件保存或退出,也可以进行文件替换,找字符串,列出行号等操作。 在命令模式下,shift+: 即可进入该模式。要查看你的所有模式:打开vim,底行模式直接输入

vim是一个编辑器,定位上和记事本没有本质区别主要用来写c,c++;vim是一款文本编辑器,多模式


vim操作

我们可以通过 vim + 文件名 进入vim,在系统提示符号输入vim及文件名称后,就进入vim全屏幕编辑画面:

默认命令模式无法输入,当我们输入字符i进入插入模式,就可以继续输入了

esc从插入模式进入命令模式,shift+:命令模式进入底行模式

底行模式

w表示写入,q表示退出,输入wq后就退出了vim

示例

用vim写一个hello word程序

1.输入vim Test.c

2.进入后按i,进入插入模式

3.输入语言

4.按ESC进入命令模式-->按shift+;进入底行模式-->输入qm退出

5.这时候cat下可以发现我们已经写入了内容

6.这时候我们gcc并且运行下,可以发现运行成功了

插入模式:编辑模式。

命令模式:运行使用者,通过命令继续文本编辑的控制

底行模式:用来让vim继续包括但是不限于shell继续交互的。

命令模式下输入set nu,添加行号

把光标放在第5行

按两次y,然后按p可以复制整行

以下是命令模式的基本操作

shift + zz变成并退出

vs code.h实现分屏

ctrl + ww


程序暂停

输入kill -9 (对应数字)

这里我们可以看到被暂停的文件

那么这些文件是怎么来的呢,在Linux中 ,ctrl + z`使程序暂停,而我们熟悉了Windows的撤销操作后,就特别容易误操作。

误输入ctrl + z 导致程序暂停

fg + 数字编号

重新进入暂停中的程序,然后退出

刚刚ctrl+z,二次打开会告诉你有临时文件

解决方式

输入ps ajx | grep vim

vim为了防止用户误删除,vim在异常崩溃的时候或者被删除的时候,会默认在当前目录下创建一个临时文件,这个临时文件是可以被恢复的

输入ls -al可以看到一个.Test.c.swp的临时文件

把它删除后,我们在vim Test.c的时候就不会有之前的询问了


挑战问题

批量化注释和批量化去注释

在命令模式下先ctrl+v,然后hjkl继续区域化选择,选择要注释的行后数入大写i(shift+i),进行//注释,然后按esc,就可以发现选中的段落注释好了

在命令模式下先ctrl+v,然后hjkl继续区域化选择//,选择好后按d,进行删除

退出时没有保存vim 会形成临时文件,保证数据安全,未来再次打开时,大D删除

提权问题

解决普通用户无法提权限问题

只有被信任的用户才可以进行提权

root 下用vim 进入etc/sudoers,大约100行处添加

把用户的基本信息添加到这个文件里,才可以被信任。


6. 简单vim配置

配置文件的位置

在目录 /etc/ 下面,有个名为vimrc的文件,这是系统中公共的vim配置文件,对所有用户都有效。

而在每个用户的主目录下,都可以自己建立私有的配置文件,命名为:".vimrc"。例如,/root目录下,通常已经存在一个.vimrc文件,如果不存在,则创建之。切换用户成为自己执行 su ,进入自己的主工作目录,执行 cd ~打开自己目录下的.vimrc文件,执行 vim .vimrc常用配置选项,用来测试

设置语法高亮: syntax on
显示行号: set nu
设置缩进的空格数为4: set shiftwidth=4

相关推荐
藥瓿锻30 分钟前
2024 CKA题库+详尽解析| 15、备份还原Etcd
linux·运维·数据库·docker·容器·kubernetes·cka
bbsh209939 分钟前
WebFuture:Ubuntu 系统上在线安装.NET Core 8 的步骤
linux·ubuntu·.netcore·webfuture
ZZZKKKRTSAE1 小时前
快速上手Linux全局搜索正则表达式(grep)
linux·服务器·正则表达式
waving-black2 小时前
利用frp和腾讯云服务器将内网暴露至外网(内网穿透)
linux·服务器·腾讯云·frp·内网穿透
stormsha2 小时前
Linux中su与sudo命令的区别:权限管理的关键差异解析
linux·运维·服务器·鸿蒙系统·ux·batch命令
筏.k3 小时前
grep、wc 与管道符快速上手指南
linux
Johny_Zhao3 小时前
华为MAAS、阿里云PAI、亚马逊AWS SageMaker、微软Azure ML各大模型深度分析对比
linux·人工智能·ai·信息安全·云计算·系统运维
CodeOfCC3 小时前
c语言 封装跨平台线程头文件
linux·c语言·windows
科文小白狼3 小时前
Linux下VSCode开发环境配置(LSP)
linux·vscode·里氏替换原则·lsp
jugt5 小时前
CentOS 7.9安装Nginx1.24.0时报 checking for LuaJIT 2.x ... not found
linux·运维·centos