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

相关推荐
春日见10 分钟前
端到端自动驾驶综述
linux·人工智能·算法·机器学习·自动驾驶
Trouvaille ~25 分钟前
【项目篇】从零手写高并发服务器(六):EventLoop事件循环——Reactor的心脏
linux·运维·服务器·c++·高并发·epoll·reactor模式
bai_lan_ya25 分钟前
linux -- 文件IO
linux·服务器
林鸿群34 分钟前
Ubuntu 26.04 本地安装 GitLab CE 完整教程(非 Docker 方式)
linux·ubuntu·gitlab·私有部署·代码托管·ubuntu 26.04·omnibus
勇闯逆流河1 小时前
【Linux】Linux进程概念(进程优先级,进程切换详解)
linux·运维·服务器
老师好,我是刘同学1 小时前
30个核心Linux命令速查手册
linux
夏至xz1 小时前
类似 typora 的新一代 Markdown 编辑器
编辑器·typora·markdown·milkup·milkdown
fsj2009yx1 小时前
如何把无公网的求生之路2服务器借助VPS转发注册到steam master列表中
linux·wireguard·求生之路2
慵懒的猫mi1 小时前
deepin UOS AI 助手接入飞书(Feishu)配置指南
linux·人工智能·ai·gpt-3·飞书·文心一言·deepin
Jiozg1 小时前
ES安装到linux(ubuntu)
linux·ubuntu·elasticsearch