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

相关推荐
疯狂飙车的蜗牛31 分钟前
从零玩转CanMV-K230(4)-小核Linux驱动开发参考
linux·运维·驱动开发
远游客07133 小时前
centos stream 8下载安装遇到的坑
linux·服务器·centos
马甲是掉不了一点的<.<3 小时前
本地电脑使用命令行上传文件至远程服务器
linux·scp·cmd·远程文件上传
jingyu飞鸟3 小时前
centos-stream9系统安装docker
linux·docker·centos
超爱吃士力架3 小时前
邀请逻辑
java·linux·后端
jinhuazhe20133 小时前
如何解决vscode powershell乱码
ide·vscode·编辑器
cominglately6 小时前
centos单机部署seata
linux·运维·centos
魏 无羡6 小时前
linux CentOS系统上卸载docker
linux·kubernetes·centos
CircleMouse6 小时前
Centos7, 使用yum工具,出现 Could not resolve host: mirrorlist.centos.org
linux·运维·服务器·centos
木子Linux7 小时前
【Linux打怪升级记 | 问题01】安装Linux系统忘记设置时区怎么办?3个方法教你回到东八区
linux·运维·服务器·centos·云计算