Kate 自身带有 VI 模式,是个 VIM IDE,并带更方便的功能

我也才知道。尝试翻译了一下其说明(原英文链接)(似乎是许多年前写的)


Kate 的 VI 模式,是一个旨在将类似 VIM 的编辑引入 Kate 文本编辑器,并扩展至共享相同编辑器组件的其他 KDE 程序的项目。

该项目始于 2008 年的 Google Summer of Code 项目——所有基本功能都是在其中编写的。我进一步开发并继续维护, 所缺失的 VIM 功能正越来越少。

多数 VIM 用户已可以在 Kate 的 VI 模式下高效工作。

页面底部列出了未完成的功能。

要启用 VI 模式,请到
** 设置 → 配置 ** **Kate… → 编辑 → VI 输入模式 ** 。
也可以通过 “编辑” 菜单中的 “VI 输入模式” 切换。(默认快捷键是 Meta+Ctrl+V, Meta 即 Win 键)。

目标

VI 模式的目标 * 不是 * 完全替代 VIM 并支持 * 所有 * 功能。 它的目的是让使用 Kate 文本编辑器作为内部编辑器的程序可以拥有 “VIM 模式” 以及 VIM 习惯。 程序包括

  1. Kate 文本编辑器
  2. KWrite – KDE 的简单文本编辑器
  3. KDevelop – 适用于多种编程语言的高级 IDE
  4. Kile – 一个 LaTeX 编辑器

VI 模式旨在与程序很好地集成,并在有理由时刻意与 VIM 不同。 例如, :w将在 Kate VI 模式下打开保存对话框。

与 VIM 的不同处

Kate VI 模式只有少数功能与 VIM 不同(不包括未完成的功能)。 下面列出,以及原因

  1. Kate: UCtrl+r是重做
    VIM: Ctrl+r是一般重做, U用于撤消一行上最近所有的更改
    之所以 U 在 Kate 的 VI 模式中充当重做,是快捷方式 ctrl+r 默认情况下是 Kate 的替换功能(搜索和替换)。 默认情况下,VI 模式不会覆盖 Kate 的快捷键(这可以在设置 → 配置 Kate… → 编辑 → Vi 输入模式中进行配置),因此重做操作也需要作为 “常规” 按键可用。 此外,VIM 中 U 命令的行为并不能很好地映射到 Kate 的内部撤消系统,因此不容易实现
  2. Kate: :print显示 “打印” 对话框
    Vim: :print打印给定范围的行,就像它的前前身 ed
  3. Kate: Y复制到行尾。
    Vim: Y复制整行,就像 yy.
    VI 的Y实际上是一个 bug; 对于更改和删除, cc/ dd用于当前整行, C/ D是从光标到行尾。 然而,yyY却都是复制当前一整行。在 Kate 的 VI 模式中 Y将拉到行尾,“更合乎逻辑”( Vim 文档中的描述)。
  4. Kate: :map使用提供的 JavaScript 表达式更改文档的选定行。
    Vim: :map将提供的映射添加到正常和可视模式。
    “map” 命令在 Kate 中另外有实现, 在 4.12+ 中,您可以使用 :nmap:vmap

支持的命令

… 略。翻译未完成 …

* 逗号 * 文本对象

这是 Vim 中一直缺少的功能。 * 逗号 * 文本对象使修改像 C 语言中参数列表或其他逗号分隔的列表变得容易。它基本上就是用于两个逗号之间,或逗号和括号之间的区域。 在图所示的行中,文本对象可以选择的三个范围以红色突出显示。

译注:图为以下代码截图

int f(int arg1, double arg2, char arg3);

逗号文本对象范围。 如果光标在arg2处,按 c i ,(“更改其中逗号”)将删除double arg2,并进入插入模式,光标位于两个逗号之间。 这是更改函数参数的一种非常方便的做法。

缺少的功能

如前所述,Kate 的 VI 模式的目标不是 100% 支持 Vim 的功能,尽管如此,有些要的功能尚未完成

  • 块可视模式——尤其是在块可视选择中添加/附加文本的能力。
  • 在 Kate 应用程序之外的其他程序中可以使用 ex 命令。
  • 搜索代码需要改进,* 和 # 命令应该只是常规搜索。

如果您想要其他功能或想对上述功能提供帮助,请随时与我联系或发送补丁! :slight_smile:

未完成的全文翻译 KateVi.md.txt (16.1 KB)

2赞

另外,刚刚发现的好功能

Ctrl + Alt + 上或下 – 复制当前行(可以是一行或选中的多行)
Ctrl + Shift + 上或下 – 移动当前行(可以是一行或选中的多行)

确实是,kate 相当好用也支持 LSP 了现在,而且有 windows 版本(除了打开稍慢)推荐使用