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

相关推荐
真·Wild·攻城狮41 分钟前
【码农日常】Vscode Clangd初始化失败(Win10)
ide·vscode·编辑器
七灵微42 分钟前
【测试】【Debug】vscode中同一个测试用例出现重复
ide·vscode·编辑器
pk_xz1234562 小时前
Shell 脚本中变量和字符串的入门介绍
linux·运维·服务器
小珑也要变强2 小时前
Linux之sed命令详解
linux·运维·服务器
Lary_Rock4 小时前
RK3576 LINUX RKNN SDK 测试
linux·运维·服务器
云飞云共享云桌面6 小时前
8位机械工程师如何共享一台图形工作站算力?
linux·服务器·网络
励志成为嵌入式工程师6 小时前
c语言简单编程练习9
c语言·开发语言·算法·vim
Peter_chq6 小时前
【操作系统】基于环形队列的生产消费模型
linux·c语言·开发语言·c++·后端
一坨阿亮7 小时前
Linux 使用中的问题
linux·运维
dsywws8 小时前
Linux学习笔记之vim入门
linux·笔记·学习