【Linux】编辑器的天花板vim

简介: 【Linux】编辑器的天花板vim

👉前言👈


在 Window 环境下,我们可以在 Visual Studio 软件上编写、编译、运行和调试我们的代码,也上面可以写 C语言代码,也可以写 C++代码等等。那么这种跨语言、跨功能的软件,就叫做集成开发环境。而在 Linux 系统下,我们的开发工具是一个一个分开的,我们编写、编译和调试代码都是使用不同的工具的。那么,本篇博客就带着大家学习编写代码的工具:vim。


👉vim的基本概念👈


vim 是什么呢?vim 其实是一款功能强大,具有多种模式的编辑器。


知道了 vim 是一款编辑器,那么我们就来简单地看看如如何使用 vim 来编写 C语言代码。


vim 文件名 #创建或打开文件


fa3095f8527b4506ac31eee6d36dc699.png

a00d1f4a5bf84677a984d29c71e55d6a.png


以上的操作,大家都不需要做先。上图的操作,在下文我们将会学到。


在上面,我们说到 vim 是一种多模式的编辑器。那 vim 有多少中模式呢?vim 总共有 13 中模式,但是最常用的模式就只有 3 中,分别是命令模式、插入模式和底行模式。


命令模式:打开 vim 之后的默认模式,在该模式下输入的所有东西都会被看做命令。退出 vim 需要输入 : wq(保存并退出)。

插入模式:在该模式下才可以进行代码的编写。进入插入模式需要在命令模式下输入 i、a 或 o等等。回到命令模式,摁下 Esc 键。

底行模式:在该模式下,可以进行文件保存或退出,也可以进行文件替换,找字符串,列出行号等操作。进入底行模式需要在命令模式下,摁下 :键。在底行模式下,输入:help vim-modes可以查看 vim 的所有模式。


e062a4e871944eaeac7939eb62f0e982.png

命令模式是 vim 编辑器的初始模式,从该模式可以实现到任何模式的切换;而插入模式和底行模式之间不能相互切换。因为在插入模式下,任何输入的字符都被认为是编辑到某一个文件的内容,而不是命令;在底行模式下,任何输入的字符都被看做是底行命令(尽管是不合法的),两者都必修通过命令行模式才能进入对方,即需要先摁下 “Esc” 模式回到命令模式。


👉命令模式👈


命令模式的意义:使用各种命名来提高编辑效率


进入插入模式


命令 功能说明
i 从光标所在的位置开始插入新的字符
I 从光标所在行的行首开始插入新的字符
a 从光标所在位置的下一个字符开始插入新的字符
A 从光标所在行的行尾开始插入新的字符
o 增加一行,并将光标移动到下一行的开头开始插入新的字符
O 在当前行的上面增加一行,并将光标移动到上一行的开头开始插入新的字符



进入底行模式


在命令模式下输入 “:”、“/” 或者 “?”,即可进入底行模式。在该模式下,用户输入的任何字符串都会被当成命令,会在 vim 的最下面一行显示,摁下回车键后会执行该命令。如果该字符串不是一个有效的命令,则会出现错误提示。


底行模式下的常用命令


命令 功能说明
w 保存文件,但不退出 vim(w:write)
w! 对于只读文件,强制保存修改的内容,但不退出 vim
q 退出 vim,如果文件有过修改,则必须先保存文件
q! 强制退出 vim 而不保存文件
wq 保存文件并退出 vim
x 保存文件并退出 vim
x! 强制保存文件并退出 vim
E 在 vim 中创建新的文件,并为文件命名
N 在本 vim 窗口中打开新的文件
w 文件名 拷贝当前文件内容生成指定的文件名的文件,不退出vim
wq 文件名 拷贝当前文件内容生成指定文件名的文件并退出 vim
wq! 文件名 强制拷贝当前文件内容生成指定文件名的文件并退出 vim
r 文件名 读入指定文件的内容插入到光标所在的位置
set nu 在 vim 的每行开头处显示行号
set nonu 取消行号
s/pattern1/pattern2/g 将光标所在行的字符串pattern1替换为pattern2
%s/pattern1/pattern2/g 将所有行的字符串pattern1替换为pattern2
g/pattern1/s/pattern2 将所有行的字符串pattern1替换为pattern2
/ 查找匹配字符串功能,输入 “/字符串”,系统便会自动查找并突出显示所有找到的字符串,然后转到找到的第一个字符串。如果想继续向下查找,可以摁 “n” 键;向上查找则摁 “N” 键
? 也可以使用 “?字符串” 来查找指定的字符串,它的使用与 “/字符串” 相似,但它是向前查找字符串
vs 文件名 创建或打开文件并分屏(只有一个光标)
Ctrl + ww 将光标切换到下一个文件
!Linux指令 不退出 vim 执行Linux指令,再摁一下 “q” 键退出


光标的意义:选中行或者屏幕进行操作。


移动光标


命令 功能说明
$ 将光标移动到该行的行尾
^ 将光标移动到该行的第一个非空字符处
0 将光标移动到该行的行首
G 将光标移动到文件最后一行的第一个非空字符处
nG 将光标移动到文件第n行的第一个非空字符处
gg 将光标移动到文件第一行的第一个非空字符处
w 将光标向后移动一个字
nw 将光标向后移动n个字
b 将光标向前移动一个字
nb 将光标向前移动n个字
h 向左移动光标
j 向下移动光标
k 向上移动光标
l 向右移动光标
上下左右键 向上下左右移动光标
Ctrl +b 向上翻一页
Ctrl +f 向下翻一页
Ctrl +u 向上移动半页
Ctrl +d 向下移动半页
Ctrl +y 向上翻一行
Ctrl +e 向下翻一行


老式键盘


3634ac7f840345919c6f522ad4bb8fc1.png


dfaa2d3206e4416b9685c92ed9bb847c.png


复制粘贴


命令 功能说明
yy 复制光标所在行的整行内容
nyy 复制从光标所在行开始向下的n行内容,n为正整数,表示复制的行数
p 粘贴,将复制的内容粘贴在光标所在行的下一行
np 将复制的内容粘贴n次
yw 复制光标所在单词的内容
nyw 复制从光标所在字开始向后的n个字


删除(剪切)


命令 功能说明
dd 删除光标所在行
ndd 删除光标所在行及其向下n-1行
x 删除光标所在位置的字符
X 删除光标所在位置的前一个字符
nx 删除光标所在位置及其向后的n-1个字符(不超过当前行)
nX 删除光标所在位置及其向前的n-1个字符(不超过当前行)
dw 删除光标所在位置的字
ndw 删除光标所在位置及其向后的n-1个字
d0 删除当前行光标之前的所有字符
d$ 删除当前行光标之后的所有字符
ndk 删除光标所在行及其向上n行
ndj 删除光标所在行及其向下n行


注:删除内容后,再输入粘贴命令进行粘贴。


其他命令


命令 功能说明
~ 字符大小写切换
r 替换光标所在位置的字符,如:rx是指将光标所在位置的字符替换为x
nr 将光标所在位置的字符及其向后n-1个字符替换为指定字符
R 替换光标所到之处的字符,直至摁下 “Esc” 键为止
u 表示恢复功能,即撤销上一次的操作
Ctrl + r 撤销上一次的u操作
U 取消对当前行所做的所有修改
ZZ 保存文档后退出 vim 编辑器
cw 删除光标所在位置的字并进入插入模式
cnw 删除光标所在位置的字及其向后n-1个字并进入插入模式


👉vim的配置原理👈


vim 的配置是一人一份的,一个用户配置的 vim 是自己的,不影响别的用户。

每个人虽然用的是同一个 vim 程序,但是大家用的是不同的 vim 配置。每个用户在自己的家目录都有一个属于自己的配置文件.vimrc

通过用户的家目录是没有.vimrc的,需要自己创建。

所谓的 vim 基本配置,就是修改自己的.vimrc文件,不要动任何不属于自己的配置文件。


常见配置选项


我们在自己的家目录输入vim .vimrc创建 vim 的配置文件,然后再文件内输入一下配置选项。


设置语法高亮: syntax on

显示行号: set nu

设置缩进的空格数为4: set shiftwidth=4

以上是一些常用的配置选项,如果想要知道更加全面的 vim 配置选项,可以自行搜索 vim 配置大全。


source .vimrc #使.vimrc配置文件生效


关于 vim 也有很多好玩的插件,如果大家想要配置的话,也可以自行搜索如何配置 vim 插件。


👉vim的一键配置👈


  1. 打开 gitee,搜索 vimforcpp并点击进去
  2. 4f1a603075fa43e5afaf186f42c37ad1.png
  3. 2. 点击进去后,向下滑动至下图位置

eb04797cb9b14a4896829bb86d32b2ca.png

3. 复制上图链接粘贴至 Linux 系统上,按下回车键并输入 root 密码,进行安装

82492ac14c6046b3a4e439e27dbe1f3e.png

4. 安装完成后,复制下图红色框框框住的字符串并粘贴,再按下回车键。

d40027c90f364a099813a850d77f90cc.png

5. 以上步骤完成后,vim 的一键配置就完成了。你可以尝试用 vim 来编写 C/C++ 代码了。

207bd5cbc54f49d29a9725a8cfd0b3f5.png

6. 将缩进修改为 4 个空格:在家目录下输入vim .vimrc打开.vimrc配置文件。在底行模式搜索 2,并将 2 全部改成 4。

88d3e5220d2e4a80899b0d3a142d7d13.png


解决无法使用 sudo 命令的问题


输入 su 指令切换成 root 用户,切换成功后,输入指令vim /etc/sudoers打开该文件。


b6989fa0306f4342914d90d2f3795312.png


注:可能不允许写入,那么我们可以输入 w! 和 q! 指令强制写入并退出。完成以上步骤,我们就能够执行 sudo 命令了。


👉总结👈


本篇博客主要讲解了 vim 编辑器,vim 编辑器三种最常用的模式,命令模式的各种命令、底行模式的一些命令以及 vim 的配置原理和一键配置等等。那么以上就是本篇博客的全部内容了,如果大家觉得有收获的话,可以点个三连支持一下!谢谢大家!💖💝❣️

相关文章
|
4天前
|
人工智能 Linux 开发工具
linux 对文件内容的查看、归档 及 vim基本操作
linux 对文件内容的查看、归档 及 vim基本操作
|
12天前
|
小程序 Linux 开发工具
【Linux】Linux 开发工具(vim、gcc/g++、make/Makefile)+【小程序:进度条】-- 详解
【Linux】Linux 开发工具(vim、gcc/g++、make/Makefile)+【小程序:进度条】-- 详解
|
10天前
|
Linux Shell 开发工具
Linux-- vi / vim 编辑器
Linux-- vi / vim 编辑器
7 0
|
13天前
|
人工智能 数据可视化 Linux
linux环境开发工具---yum与vim
linux环境开发工具---yum与vim
|
19天前
|
弹性计算 Unix Linux
Linux:文本编辑器 - vim
Linux:文本编辑器 - vim
21 1
|
19天前
|
数据可视化 Linux Shell
【Linux】开始使用 vim 吧!!!
vim 的操作我只介绍了一部分,还有许多等待大家探索!!!
30 6
|
19天前
|
Linux Shell 开发工具
【linux】Linux编辑器-vim
【linux】Linux编辑器-vim
71 0
|
8月前
|
Linux 开发工具 数据安全/隐私保护
【Linux】软件包管理器yum和编辑器vim的使用(下)
【Linux】软件包管理器yum和编辑器vim的使用(下)
|
19天前
|
IDE Linux 开发工具
【Linux】| Linux编辑器-vim的使用
【Linux】| Linux编辑器-vim的使用
|
19天前
|
数据可视化 Linux Shell
【Linux工具篇】编辑器vim
【Linux工具篇】编辑器vim
47 1