【Linux】Vim


🎉博主首页: 有趣的中国人

🎉专栏首页: Linux

🎉其它专栏: C++初阶 | C++进阶 | 初阶数据结构

小伙伴们大家好,本片文章将会讲解Linux编辑器------Vim使用的相关内容。

如果看到最后您觉得这篇文章写得不错,有所收获,麻烦点赞👍、收藏🌟、留下评论📝,并关注💖作者。您的支持是我最大的动力,让我们一起努力,共同成长!

文章目录

Vim的基本概念和相关操作

Vim的设计目标是提供强大的编辑功能,同时保持简洁和高效。它有着丰富的功能,包括语法高亮、自动补全、宏录制、分屏编辑等等Vim有一个强大的插件系统,可以通过插件扩展其功能,使其适应各种开发环境和编程语言

👨‍💻Vim的模式

Vim有好多种模式,但是我将主要讲解三种模式,这三种模式最基础,也最重要,分别是:

  1. 命令模式(command mode)
  2. 插入模式(insert mode)
  3. 底行模式(last line mode)

💻命令模式

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

命令模式下相关操作:

用命令vim [文件名称]即可进入到vim编辑器,进入Vim时默认处于的模式就是命令模式
有关复制粘贴的行相关操作
「(n) + yy」复制当前行 (n:连续复制n行,可省略,默认一行)

「(n) + p」粘贴当前光标的下一行 (n:表示粘贴n次,可省略,默认一行)

「u」撤销

「ctrl + r」反撤销 (对你的撤销进行撤销)

「(n) + dd」剪切/删除 指定行,(n:表示剪切/删除n行,可省略,默认一行)
有关光标移动的相关操作
「shift + 4 = $」将光标移动至此行末尾

「shift + 6 = ^」将光标移动至此行开头

「gg」将光标移动至整个文本的最开头

「shift + g = G」将光标移动至整个文本的最后一行

「n + shift + g = nG」将光标移动至文本的指定行

「(n) + h」将光标向左移动 (n可以指定移动步数,下面类似)

「(n) + j」将光标向下移动 (可以类比记忆:jump向下跳)

「(n) + k」将光标向上移动 (可以类比记忆:king国王)

「(n) + l」将光标向右移动

「w」按单词为单位将光标后移

「b」按单词为单位将光标前移
其他相关操作
「~」:大小写的切换

「(n) + x」对光标位置后的元素进行删除 (n表示可以连续删除多个,行内)

「(n) + shift + x = nX」对光标位置前的元素进行删除 (n表示可以连续删除多个,行内)

「shift + r = R」:进入替换模式 ,可以对光标当前位置的字符进行替换

「shift + zz = ZZ」:保存并退出 (一般不这么用)
进入到其他模式下的相关操作

进入插入模式

「i」切换进入插入模式「insert mode」 ,按"i"进入插入模式后是从光标当前位置 开始输入文件;

「a」进入插入模式后,是从目前光标所在位置的下一个位置 开始输入文字;
「o」进入插入模式后,是插入新的一行从行首开始输入文字

进入底行模式

「shift + ; = :」进入底行模式

💻底行模式

文件保存或退出,也可以进行文件替换,找字符串,列出行号等操作 。 在命令模式下,shift+; = : 即可进入该模式。

底行模式下相关操作:

离开vim的相关操作

「w」:在冒号输入字母「w」就可以将文件保存起来

「q」:按「q」就是退出 ,如果无法离开vim,可以在**「q」后跟一个「!」强制离开vim**

「wq」:一般建议离开时,搭配「w」一起使用,这样在退出的时候还可以保存文件
查找字符

「/关键字」: 先按「/」键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的 ,可以一直按「n」往后寻找 到您要的关键字为止
行号
「set nu」: 输入「set nu」后,会在文件中的每一行前面列出行号

「nonu」: 输入「nonu」后,会去掉行号
Shell命令执行

「!command」:可以不退出vim,进行Shell命令的执行 ,例如用man来查看函数的用法,例如查看qsort的相关用法:


分屏操作
我们正常写一个项目时要进行声明和定义的分离 ,即可能存在头文件,我们用命令「vs filename」即可实现分屏,可以使用以下命令在分屏模式下进行切换

  • 切换到下一个窗口Ctrl + w,然后按下 w

  • 切换到上一个窗口Ctrl + w,然后按下 W

    例如:

    底行模式进入命令模式
    从底行模式进入命令模式就按下Esc即可。

插入模式进入命令模式也是按下Esc即可。

底行模式不能直接进入插入模式,插入模式也不能直接进入底行模式 ,只能通过命令模式这个中转站 然后再进行模式的相互切换。

💻总结

批量化注释和去注释

👨‍💻批量化注释操作

  1. 「ctrl + v」进入视图模式;
  2. 「h j k l」进行区域的选择;
  3. 「shift + i」
  4. 在输入//
  5. 最后按两次Esc即可完成批量化注释。

👨‍💻批量化去注释操作

  1. 「ctrl + v」进入视图模式;
  2. 「h j k l」进行区域的选择(仅包含//);
  3. 按住d即可完成去注释的操作。

普通用户的sudo提权

对于普通用户,没有权利进行sudo的提权,因为对于一个用户能否进入sudo提权,他是否有这个权限,是存在拥有者是root的一个文件中的,这个文件时 /etc/sudoers,如果想给普通用户有sudo的提权权力,要在这个文件中添加普通用户,因此也是需要root来进行操作的,所以这就是为什么sudo提权的时候只需要输入普通用户的密码即可。

💻输入命令 vim /etc/sudoers 进入 sudoers 文件

在100行附近的如图位置,添加普通用户的权限即可。

注意这里修改后要强制退出wq!


就完成了

vim的配置问题

💻vim配置原理

在每次启动vim之前,vim都会读取若干的配置文件 ,例如.vmrc

我们可以在这个配置文件中添加相关的配置,例如 自动缩进,显示行号,那么在每次启动vim的时候都会读取此配置文件,就在你的vim中显示出来了。

💻查看.vmrc文件

因为此文件是 隐藏文件 ,所以用命令ls -al 查看:

因为我这里已经配置好了,就不进行配置了。

也可以用比特的开源项目进行一键配置,这是链接: 比特VimForCpp配置Vim

注意一定要在普通用户下进行配置,并且一定要是centos7.X的系统。

输入命令,即可一键配置(可以先看文档):

go 复制代码
curl -sLf https://gitee.com/HGtz2222/VimForCpp/raw/master/install.sh -o ./install.sh && bash ./install.sh

有关vim的异常退出

当Vim异常退出时,通常会生成一个称为".swp"文件的隐藏文件。这个文件是Vim的会话恢复文件,用于存储你正在编辑的文件的临时状态。它包含了你最后一次编辑的内容,以便在下次启动Vim时恢复编辑会话。

这个".swp"文件通常以以下格式命名:".filename.swp",其中"filename"是你正在编辑的文件的名称。

如果Vim异常退出,你可以尝试重新启动Vim,并在同一目录下查找以".swp"结尾的文件,然后使用Vim的恢复功能来恢复丢失的编辑内容。

你可以删除这个文件(.swp结尾),他就不会提示了,也可以E继续编辑,R恢复,Q退出。
但是删除之后你没保存的内容就会消失,也就是说.swp这个文件相当于是系统给你临时备份的一份,如果你想恢复文件,按照以下操作即可:

  1. vim filename.c
  2. 按R或者E恢复或者继续编辑
  3. :wq保存并退出;
  4. 删除.swp结尾的临时文件
相关推荐
我言秋日胜春朝★13 分钟前
【Linux】进程地址空间
linux·运维·服务器
C-cat.34 分钟前
Linux|环境变量
linux·运维·服务器
yunfanleo1 小时前
docker run m3e 配置网络,自动重启,GPU等 配置渠道要点
linux·运维·docker
糖豆豆今天也要努力鸭1 小时前
torch.__version__的torch版本和conda list的torch版本不一致
linux·pytorch·python·深度学习·conda·torch
烦躁的大鼻嘎1 小时前
【Linux】深入理解GCC/G++编译流程及库文件管理
linux·运维·服务器
ac.char2 小时前
在 Ubuntu 上安装 Yarn 环境
linux·运维·服务器·ubuntu
敲上瘾2 小时前
操作系统的理解
linux·运维·服务器·c++·大模型·操作系统·aigc
长弓聊编程2 小时前
Linux系统使用valgrind分析C++程序内存资源使用情况
linux·c++
cherub.2 小时前
深入解析信号量:定义与环形队列生产消费模型剖析
linux·c++
梅见十柒2 小时前
wsl2中kali linux下的docker使用教程(教程总结)
linux·经验分享·docker·云原生