我也才知道。尝试翻译了一下其说明(原英文链接)(似乎是许多年前写的)
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 习惯。 程序包括
- Kate 文本编辑器
- KWrite – KDE 的简单文本编辑器
- KDevelop – 适用于多种编程语言的高级 IDE
- Kile – 一个 LaTeX 编辑器
VI 模式旨在与程序很好地集成,并在有理由时刻意与 VIM 不同。 例如, :w
将在 Kate VI 模式下打开保存对话框。
与 VIM 的不同处
Kate VI 模式只有少数功能与 VIM 不同(不包括未完成的功能)。 下面列出,以及原因
- Kate:
U
和Ctrl+r
是重做
VIM:Ctrl+r
是一般重做,U
用于撤消一行上最近所有的更改
之所以 U 在 Kate 的 VI 模式中充当重做,是快捷方式 ctrl+r 默认情况下是 Kate 的替换功能(搜索和替换)。 默认情况下,VI 模式不会覆盖 Kate 的快捷键(这可以在设置 → 配置 Kate… → 编辑 → Vi 输入模式中进行配置),因此重做操作也需要作为 “常规” 按键可用。 此外,VIM 中 U 命令的行为并不能很好地映射到 Kate 的内部撤消系统,因此不容易实现 - Kate:
:print
显示 “打印” 对话框
Vim::print
打印给定范围的行,就像它的前前身 ed - Kate:
Y
复制到行尾。
Vim:Y
复制整行,就像yy
.
VI 的Y
实际上是一个 bug; 对于更改和删除,cc
/dd
用于当前整行,C
/D
是从光标到行尾。 然而,yy
和Y
却都是复制当前一整行。在 Kate 的 VI 模式中Y
将拉到行尾,“更合乎逻辑”( Vim 文档中的描述)。 - 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 命令。
- 搜索代码需要改进,* 和 # 命令应该只是常规搜索。
如果您想要其他功能或想对上述功能提供帮助,请随时与我联系或发送补丁!
未完成的全文翻译 KateVi.md.txt (16.1 KB)