【Vim Masterclass 笔记27】(完结篇)第 12 章(S12L47):Vim 图形化用户界面 Gvim 的用法 + 第 13 章:两次在线问答互动摘要 + 第 14 章:其它课程推荐

写在前面
本篇 Udemy - Vim Masterclass 系列课程的最后一篇正式课自学笔记,后面剩下的三节课是讲师 Jason 的两次线上问答互动和他的其他课程优惠促销活动,我将一并附在本篇末尾。这节课主要介绍了 Vim 的图形化操作界面 gvim 的相关用法。之所以放到最后,是因为 GUI 版 Vim 在操作效率上确实远远不如 Vim 命令行。但 gvim 也有它的用武之地,比如与系统剪贴板的交互。gvim 的很多操作不必死记硬背,针对具体场景各取所需就好。


Section 12:Vim Graphical User Interfaces: Gvim and MacVim


S12L47 Vim Graphical User Interfaces: Gvim and MacVim


本节演示文件:vimclass/gvim.txt

1 图形界面 Vim 的应用场景

绝大部分 Vim 命令行操作在其图形界面(GUI)环境下仍然有效,GUI 版的典型的场景包括:

  • 同步操作习惯的需要:希望将远程服务器中 Vim 的操作习惯同步迁移到其他桌面环境中(如桌面版 LinuxMacWindows 等系统);
  • 保持一致的图形化工作流:如果工作流主要集中在图形环境而非命令行环境,使用 GUI 版 Vim 会更加高效;
  • 需要 GUI 特定的功能:如系统剪贴板、文件资源管理器、鼠标滚轮操作等。

2 GUI 版 Vim 的启动

  • Windows:开始菜单搜 gVim、桌面快捷方式、运行窗口输入 gvim + Enter
  • Mac:搜 MacVim
  • Unix / Linux:菜单栏启动、命令行输入 gvim + Enter

安装好命令行版 Vim 后通常也会安装 GUI 版 Vim,但也有例外。如果 gVim / MacVim 启动失败,则需要手动安装:

  • Vim 官网安装:https://www.vim.org/
  • Linux 用户:也可以通过包管理工具安装,例如 vim-X11vim-gnome 等。

3 gVim 与 Vim 的主要区别

  • gVim 有图形化的菜单、工具栏,而 Vim 没有;
  • 各菜单项的底层也是执行对应的 Vim 命令

图:47-1:gVim 最大的不同在于拥有菜单和工具栏,但底层也是执行对应的 Vim 命令

【图:47-1:gVim 最大的不同在于拥有菜单和工具栏,但底层也是执行对应的 Vim 命令】

平心而论,纯菜单的操作效率并不高,尤其是知晓 Vim 等效命令的前提下(对比:重复执行 100 次的菜单操作和命令行操作,高下立判)。这也是为何将 gVim 放到最后介绍的原因。

:set hls! 对应的菜单位置:

图 47-2:切换高亮搜索 hls 的菜单位置(Windows 版 gVim)

【图 47-2:切换高亮搜索 hls 的菜单位置(Windows 版 gVim)】

再如,:set scrolloff=5 对应的菜单位置:

图 47-3:设置 scrolloff 行数的菜单位置(极其繁琐)

【图 47-3:设置 scrolloff 行数的菜单位置(极其繁琐)】

此外,gVim 还支持鼠标滚轮操作,也可以拖动右侧滚动条。

4 gVim 中的特殊寄存器

4.1. 加号寄存器

"+:剪贴板寄存器,负责存放从图形操作系统拷贝来的内容(即选中文字后按 Ctrl + C

要将该内容粘贴到 gVim 中,需执行命令 "+P"+p。这与菜单栏中的命令有所不同:

图 47-4:将图形界面复制的文本粘贴到 gVim,菜单栏提供的命令与手动执行的命令有所不同

【图 47-4:将图形界面复制的文本粘贴到 gVim,菜单栏提供的命令与手动执行的命令有所不同】

可以看到,"+gP 相较于 "+P 多了一个 g 命令,它可以让光标自动定位到粘贴内容末尾的下一个字符(如果有余裕的话);而 "+P 只会让光标定位到粘贴内容的最后一个字符:

图 47-5:对比命令 "+gP 和 "+P 的区别:前者不会定位到目标内容的最后一个字符

【图 47-5:对比命令 "+gP 和 "+P 的区别:前者不会定位到目标内容的最后一个字符】

4.2. 星号寄存器

"* 在不同的操作系统有不同的行为特征:

  • Mac / Windows:星号寄存器 "* 与加号寄存器 "+ 相同,二者可互换;
  • Linux"* 可以存放 鼠标选中的文字内容

另外,不仅其他 GUI 应用可以复制内容到 gVim,反向操作也同样支持(对于 Windows 系统,使用星号和加号寄存器都是等效的)。

5 Vim 剪贴板的相关设置

Vim 中,设置 :set clipboard=unnamed 后,Vim 会使用系统的剪贴板来处理所有的剪切(delete)、复制(yank)、更改(change)和粘贴(put)操作。这意味着从其他应用程序中复制的文本内容可以直接在 Vim 中粘贴,反之亦然。

clipboard 选项设置 unnamed 后,每次复制粘贴都无需再指定特殊寄存器("+"*),只需直接使用常规的复制(y)和粘贴(p)命令即可。

而对于 Linux 系统,则需要运行 :set clipboard=unnamedplus + Enter 来实现同样的效果。

补充说明

:set clipboard=unnamed 对于 gVim 始终有效,但对于 Vim 是否生效,取决于当前 Vim 的编译版本是否支持剪贴板,只有支持剪贴板的 Vim 才会生效。

这可以通过命令 :echo has('clipboard') + Enter 进行检测:

  • 返回结果为 1,则表示该版本支持剪贴板;
  • 若返回 0,则表示不支持。

此外也可以通过查看 :version 版本中是否包含 +clipboard 字样进行判定,有则表示支持。

6 gVim 的配置文件

配置文件的文件名:

  • Windows_gvimrc
  • Linux / Mac.gvimrc

具体路径可在 gVim 版本信息中查看:

图 47-6:在 gVim 的版本信息中查看 gvimrc 文件的具体存放路径

【图 47-6:在 gVim 的版本信息中查看 gvimrc 文件的具体存放路径】

注意

gvimrc 文件的加载顺序位于 Vim 配置文件 之后,这样可以设置特定于 GUI 图形界面的配置项。

7 gVim 显示字体的设置

使用命令 :set guifont=* + Enter:set gfn=* + Enter

此时会弹出字体窗口:

图 47-7:用 gfn 选项设置 gVim 的显示字体样式

【图 47-7:用 gfn 选项设置 gVim 的显示字体样式】

该命令对应的菜单位置如下:

图 47-8:gVim 设置显示字体样式对应的菜单项位置

【图 47-8:gVim 设置显示字体样式对应的菜单项位置】

此外,也可以直接手动设置字体及字号,例如::set gfn=Courier\ New:h14 + Enter

注意:上述写法中字体名称不能使用引号,因此中间的空格字符必须 用反斜杠转义

更多 gVim 字体设置方法,可以参考 Vim 的帮助文档::set gui + Enter

DIY 拓展:设置为 Cascadia Mono PL 字体

实测时发现,除了用 hXX 设置字号外,指定字体 Cascadia Mono PL、字号为 13 后,输入命令 :set gfn? + Enter 查看 gfn 最终取值为 guifont=Cascadia_Mono_PL:h13:cANSI:qDRAFT

图 47-9:实测 gVim 字体设置看到的其他配置项

【图 47-9:实测 gVim 字体设置看到的其他配置项】


根据文档,这里的:cANSI 是指定字符级为 ANSI:qDRAFT 则表示字体的质量设置为 DRAFT

图 47-10:gfn 帮助文档对 cXX 和 qXX 的官方说明

【图 47-10:gfn 帮助文档对 cXX 和 qXX 的官方说明】


S13L48 Live Q&A Call #1

主讲:Jason Cannon

本次通话为 Vim 大师课的首次在线问答。

  1. 问答形式
    • 开始时回答预先提交的问题。
    • 参会者需保持静音,提出问题时可解除静音。
    • 也可通过电子邮件或聊天框提交问题。
  2. 预先提交的问题概述
    • 第一个问题:如何在Vim和终端之间快速切换
      • 使用多个终端标签或窗口。
      • 推荐使用 screentmux 作为命令行窗口管理器。
    • 第二个问题:新程序员安装 Gvim 的重要性
      • 使用 Gvim 与命令行版本的 Vim 取决于工作环境和个人喜好。
      • Gvim 适合需要图形界面的用户,尤其是处理剪贴板等功能时。
    • 第三个问题:学习课程的顺序
      • 推荐先学习 Vim,再学习 Python 编程。
      • 学习 Linux 基础非常重要,有助于后续的 Shell 脚本课程。
  3. 关于Vim的用途
    • 编程与文本处理
      • Vim 适用于编程、LaTeX 文档创建和 HTML 编辑。
      • 有许多人在科研和数学领域使用 Vim 处理 LaTeX 文档。
  4. 结束语
    • 通话结束,提醒下次通话的时间。
    • 鼓励参会者随时联系以解决问题。

S13L49 Live Q&A Call #2

主讲:Jason Cannon

本次通话为 Vim 大师课的第二次在线问答。

  1. 提问方式

    • 提问可通过解除静音、电子邮件或聊天框进行。
    • 当前有一条预先提交的问题。
  2. 预先提交的问题

    • 关于脚本的安全性
      • 如何使用 GitHub 上的脚本安装 MQ
      • 建议在虚拟机中测试脚本,确保安全后再执行。
      • 可以使用 curl 下载并通过命令行执行脚本。
  3. 未来的Vim发展

    • 维持 Vim 的主要维护者是 Bram,仍在积极维护。
    • 认为 Vim 及其分支(如 Neovim)有光明的未来。
  4. 插件安装

    • Vim 8.0 及以上版本支持插件,安装过程简单。
    • 通过创建目录结构并下载插件来添加插件。
  5. Vim 中的文本处理

    • 介绍了如何使用视觉模式(vVCtrl+V)选择文本。
    • 讨论了如何在不使用视觉模式的情况下,使用命令处理文本。
  6. Shell 脚本与 Ansible 的关系

    • Shell 脚本与 Ansible 可以互补,Ansible 简化了一些操作。
    • 建议掌握 Shell 脚本基础,以便更好地使用 Ansible
  7. 结束语

    • 感谢参与者的提问与反馈。
    • 会议结束后将发布录音和聊天记录,期待下一次会议。

S14L50 Bonus Lecture


享受折扣优惠的相关课程推荐:

  • LPI Linux Essentials Certification Course:通过学习您需要掌握的确切 Linux 技能,今天就为您的职业生涯加速,顺利通过 LPI Linux Essentials 考试!
  • Learn Linux in 5 Days:参加本课程以掌握 Linux 操作系统的基础知识。
  • Linux System Administration:如果你想学习 Linux 系统管理并提升你的职业生涯,这就是适合你的课程。
  • Linux Shell Scripting Projects:如果你想学习 shell 脚本并且你通过实践学习效果最好,那么这个课程适合你。通过完成真实世界的项目,成为一名 shell 脚本专家。
  • Shell Scripting and Bash Programming:准备好学习如何像专业人士一样编写 shell 脚本,解决现实世界的问题,或自动化重复和复杂的任务吗?那么就参加这个课程吧。
  • Docker: A Project-Based Approach to Learning:如果你想学习一个关键的 DevOps,并且你最擅长通过实践学习,那么这个课程适合你。通过完成真实世界的项目,成为 Docker 专家。
  • DevOps in the Real World:学习包括 Linux 管理、Elasticsearch、Logstash、Kibana、Grafana、Vagrant、Icinga2 等在内的基本 DevOps 技能和工具,以提升您的职业生涯!
  • Linux Security and Hardening:通过保护您的 Linux 系统免受黑客、攻击者和入侵者的攻击,让您和您的公司远离新闻的关注!
  • Linux Logical Volume Manager:学习如何使用 LVM 管理磁盘和卷。扩展文件系统并迁移数据,所有操作无需停机。
  • CompTIA Linux+ XK0-005 Practice Exams:你想最终获得 Linux 认证吗?你想尽快做到这一点吗?如果是的话,这个适合你!
  • Linux Man Page Masterclass:完成本课程后,您将不再需要搜索使用哪个命令或如何使用任何命令。您将能够找到所需的正确命令,确定要使用的确切选项,并在运行命令之前自信地知道该命令将执行什么。
  • Python Programming:轻松学习 Python 编程。包含示例、测验、练习和更多内容。

后记
这是《Vim Masterclass》专栏的最后一篇笔记,但不是各位精进 Vim 技艺的最后一篇文章。我按照之前的计划顺利完成了 Udemy 这套课程知识点的完整复盘梳理,还比原计划提前了三天(如果不是昨天临时抽身去写博客之星主题文章,应该还会提前一天)。我也用实际行动向各位再次验证了目标清晰、明确、可量化对于做成一件事的极端重要性。本专栏近期的更新计划图也一并分享出来供大家参考:
draft
相信一路陪伴我学到这里的朋友们,也一定是持续精进自学能力的终身成长者、长期主义的坚定践行者;对于小伙伴们的默默关注、支持和鼓励再次表示最衷心地感谢!后期我还会基于 Vim 推出更多优质原创内容,敬请期待!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

安冬的码畜日常

您的鼓励是我持续优质内容的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值