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

相关推荐
糖豆豆今天也要努力鸭6 分钟前
torch.__version__的torch版本和conda list的torch版本不一致
linux·pytorch·python·深度学习·conda·torch
烦躁的大鼻嘎15 分钟前
【Linux】深入理解GCC/G++编译流程及库文件管理
linux·运维·服务器
ac.char22 分钟前
在 Ubuntu 上安装 Yarn 环境
linux·运维·服务器·ubuntu
敲上瘾22 分钟前
操作系统的理解
linux·运维·服务器·c++·大模型·操作系统·aigc
长弓聊编程40 分钟前
Linux系统使用valgrind分析C++程序内存资源使用情况
linux·c++
nbsaas-boot44 分钟前
如何利用ChatGPT加速开发与学习:以BPMN编辑器为例
学习·chatgpt·编辑器
cherub.1 小时前
深入解析信号量:定义与环形队列生产消费模型剖析
linux·c++
梅见十柒1 小时前
wsl2中kali linux下的docker使用教程(教程总结)
linux·经验分享·docker·云原生
Koi慢热1 小时前
路由基础(全)
linux·网络·网络协议·安全
传而习乎1 小时前
Linux:CentOS 7 解压 7zip 压缩的文件
linux·运维·centos