Linux 文本编辑器 vim

2023年 9月 26日 83.7k 0

一. 初探 vim

vim 的发展史

vim 是从 vi 发展出来的一款多模式文本编辑器. 具有代码补全, 编译及错误跳转等方便编程的功能, 被程序员所广泛使用, 和 Emacs 并列成为类 Unix 系统用户最喜欢的文本编辑器.

对于 vim 这款编辑器来说, 它不同于其他编辑器的地方在于, 你可以仅使用键盘中的主键盘区, 就可以完成绝大多数的操作. 当你进入 vim 后, 默认为命令模式, 主键盘上的所有按键就被赋予了各种功能, 本文也会介绍绝大多数的功能按键.

image.png

IDE 和编辑器

VS2022 叫做 IDE [Integrated Development Environment], 是一个集成开发环境, 用这一个软件可以完成在开发过程中 编辑代码-->调试代码-->编译, 链接, 运行代码 这些功能.

而 vim 只是一个文本编辑器, 只有编辑代码的功能.

在 Linux 下, 三个工具完成三个不同的功能.

· vim 负责代码的编辑和维护

· gdb 负责代码的调试

· gcc/g++ 负责代码的编译

vim 中的五种常见模式

1. 正常/普通/命令模式 (Normal mode)

控制屏幕光标的移动, 字符, 单词或行的删除, 移动复制某区段及进入 插入模式 下,或者进入 末行模式 下.

2. 插入模式 (Insert mode)

在 正常模式 下, 按 i 即可进入该模式. 只有在 插入模式 下,才可以做文本输入, 按 ESC 键可回到 正常模式 . 该模式是我们后面使用最频繁的编辑模式.

3. 末行模式 (Last line mode)

可以完成文件保存或退出, 文件替换, 查找字符串, 列出行号等操作. 在 正常模式 下, shift + ; (:) 即可进入该模式. 要查看你的所有模式:打开vim,底行模式直接输入 help vim-modes.

4. 可视模式 (Visual mode)

在 正常模式 按下 v, V, Ctrl + v, 都可以进入可视模式. 可视模式中的操作有点像拿鼠标进行操作, 选择文本的时候有一种鼠标选择的即视感, 有时候会很方便.

5. 替换模式(Replace mode)

在正常模式按下 R, 即可进入替换模式. 替换模式并没有那么常用,因为在命令模式中就可以直接进行替换,也就是按下 r 键, 然后直接对当前光标所在字符进行替换即可. 但是每次只可替换一次或者批量替换, 在 替换模式 中可连续替换, 更加方便.

二. vim 基本操作

安装 vim

普通用户: sudo yum install -y vim

root: yum -y install vim

进入 vim

直接输入 vim, 即可进入 vim 的初始界面.

image.png

这只是 vim 的编辑界面, 可以看到左上角的 [No Name], 并没有对任何一个文件操作.

vim + 文件名, 创建文件并用 vim 打开该文件.

image.png

现在就可以在 code.c 文件中编辑代码了.

vim 中的模式切换

当用 vim 打开文件时, 默认为 命令模式.

image.png

要想从命令模式切换为其他模式, 就要按下对应的功能键, 以下是 vim中常见的5种模式相互切换的示意图.

image.png

插入模式.

image.png

末行模式.

image.png

可视模式.

image.png

替换模式.

image.png

三. vim 指令集

1. 命令模式指令集

移动光标

vim 可以直接用键盘上 ↑ ↓ ← → 来进行移动, 但更正规的做法是用小写英文字母 h, j, k, l, 分别控制光标左, 下, 上, 右移动一格.

  • $ : 移动到光标所在行的 "行尾" (Shift + 4) .

  • ^ : 移动到光标所在行的 "行首" (Shift + 6) .

  • w : 光标跳到 下个单词的开头 .

  • b : 光标回到 上个单词的开头 .

  • gg : 使光标移动到 文本的开头 .

  • G : 使光标移动到 文本的末端 (Shift + g).

  • n + G : 定位光标到 第 n 行行首 (n + Shift + g).

  • Ctrl + b : 屏幕往前 (上) 移动一页.

  • Ctrl + f : 屏幕往后 (下) 移动一页.

  • Ctrl + u : 屏幕往前 (上) 移动半页.

  • Ctrl + d : 屏幕往后 (下) 移动半页.

复制粘贴

  • yw : 将光标所在之处到 当前单词末端 的字符复制到缓冲区中.

  • n + yw: 复制 n 个 单词 到缓冲区.

  • yy: 复制光标 所在行 到缓冲区.

  • n + yy: 复制 n 行 (包括光标所在行) 到缓冲区.

  • p: 将缓冲区内的字符粘贴到 光标所在行的下一行.

  • n + p: 将缓冲区内的字符粘贴到 光标所在行的下一行 这一行为重复 n 次.

删除

  • x: 每按一次 x , 删除光标所在位置的一个字符.

  • n + x: 删除从光标所在字符开始的 n 个字符 (包括光标所在字符本身).

  • dd: 删除光标所在行.

  • n + dd : 删除光标所在行开始向下 n 行 (包括光标所在行).

撤销

  • u: 如果误执行一个命令, 可以马上按下 u, 撤销上一个操作. 按多次 u 可以执行多次复原.

  • Ctrl + r : 撤销的恢复.

替换

  • r: 替换光标所在处的字符.

  • n + r: 对光标字符加之后的共 n 个字符进行批量化替换 (都替换为同一字符).

  • R :替换光标所到之处的字符, 直到按下 Esc 键为止 (也就是替换模式) ( Shift + r ).

大小写切换

  • ~ ( Shift + ~左边的那个字符 )

2. 插入模式指令集

在插入模式下, 可以对代码做增, 删, 修改的操作, 因此不存在指令集. 但是插入模式也被分为好几种, 换言之就是从命令模式按下 [特定键] 即可进入不同插入模式.

  • i: 从光标所在位置开始输入字符.

  • Shift + i: 进入插入模式后使光标快速切换到当前行行首.

  • a: 从光标所在位置的下一个位置开始输入字符.

  • Shift + a: 进入插入模式后使光标快速切换到当前行行尾.

  • o: 新起一行 (光标当前所在行的下一行), 从行首开始输入字符.

  • Shift + o: 新起一行 (光标当前所在行的上一行), 从行首开始输入字符.

3. 末行模式指令集

列出和去除行号

  • :set nonu 去除行号.

image.png

  • :set nu 列出行号.

image.png

跳到某一行

  • :行号 跳到行号所指定的行.

image.png

查找字符

  • /关键字 : 先按 / 键, 再输入想查找的字符, 如果第一次找的字符不是想要的, 可以一直按 n 键会 往后寻找 到最后一个要查找的字符为止.

  • ?关键字 : 先按 ? 键, 再输入想查找的字符, 如果第一次找的字符不是想要的, 可以一直按 n 键会 往前寻找 到最后一个要查找的字符为止.

替换字符

  • %s/替换前的字符串/替换后的字符串/g, 批量替换相同的字符串.

%s 可以看成是 C 语言中字符串的格式声明, g 代表 global 整体的.

保存及退出vim

  • q: 直接退出.

  • q!: 强制退出.

  • w: 保存.

  • wq: 保存并退出.

  • wq!: 保存并强制退出.

不退出 vim 进行相关指令操作

  • ! + 指令 相当于在外部执行指令.

Press ENTER or type command to continue [按下任意键继续]

多文件分屏编辑文本

  • vs [文件名] 打开多个文件编辑窗口.

  • Ctrl + ww: 切换光标到不同的窗口.

4. 可视模式指令集

在可视模式下,比较常用的功能是多行注释. 需要配合 [命令模式] 和 [底行模式] 一起使用.

多行注释

Ctrl + v 进入可视模式.

image.png

进入可视模式后, 选择要注释的行, 按 j 往下选择多行.

image.png

然后按下 Shift + i 进入插入模式, 并在光标所在处输入 // .

image.png

然后按下 Esc 键, 完成多行注释, 并回到命令模式.

image.png

取消多行注释

Ctrl + v 进入可视模式.

image.png

按两次 l, 使光标向右移动两次, 将两个 / 都选中.

image.png

j 键使光标向下移动, 直到选中所有的注释.

image.png

d 键即可将所有注释删除, 并自动回到命令模式.

image.png

5. 替换模式指令集

R 指令( Shift + r ) 让你一步到位进入替换模式: 对于需要替换多个字符, 更好的方案是直接进入替换模式. 按下大写的 R 键, 屏幕左下角出现 REPLACE 字样, 说明你已经处于替换模式. 此时输入字符可以连续替换光标及其后边的内容.

Tip: 退格键 (Backspace) 的作用

  • 若光标所在字符的左侧字符被替换过, 则使得左侧被替换的字符恢复到原来的字符.
  • 若光标所在字符的左侧字符没有被替换过, 则只是使光标简单的向左移动.

四. vim 配置

自定义配置

各用户有关 vim 的配置是相互独立的, 因为这取决于每个用户家目录下的配置文件.vimrc. 所以在配置某普通用户的 vim 时, 是不会影响其他用户的 vim 的.

由于 .vimrc 是配置文件, 需要 ll -a 才可以查看其属性.

image.png

vim .vimrc 查看配置文件 (如下为配置好的 .vimrc, 第一次打开 .vimrc 为空白).

image.png

有关 vim 配置的操作可以参考以下两篇文章.

.vimrc文件配置

手把手教你把Vim改装成一个IDE编程环境

自动化配置

某大神的自动化配置.

VimForCpp: 快速将vim打造成c++ IDE

将该链接复制并粘贴到命令行下.

image.png

输入 root 密码即可安装.

image.png

配置完后产生如下提醒, 输入 source ~/.bashrc 让配置文件生效.

image.png

配置完成.

相关文章

服务器端口转发,带你了解服务器端口转发
服务器开放端口,服务器开放端口的步骤
产品推荐:7月受欢迎AI容器镜像来了,有Qwen系列大模型镜像
如何使用 WinGet 下载 Microsoft Store 应用
百度搜索:蓝易云 – 熟悉ubuntu apt-get命令详解
百度搜索:蓝易云 – 域名解析成功但ping不通解决方案

发布评论