【问题标题】:Sublime Text detect overwrite modeSublime Text 检测覆盖模式
【发布时间】:2013-01-11 00:03:46
【问题描述】:

我正在尝试编写一个插件来支持Sublime 中的类似 vim 的替换模式。 为此,我需要做几件事:

  1. 启用/禁用覆盖模式。 (不是toggle_overwrite)。
  2. 检测是否启用了覆盖模式。

第 2 项更重要,因为我可以随时检测并在必要时切换。

如何检测是否启用了覆盖模式?

【问题讨论】:

  • 没有回答你的问题,但是vintage包已经尝试模拟vim的一些功能。你可能想向这个 repo 提交一个 pull request? sublimetext.com/docs/2/vintage.html
  • @ElDeveloper,如果我能找到检查是否启用了覆盖模式的功能,我可以用 10 行各种代码来编写它。在提交请求之前,我想知道这是否可能:)
  • 我能够使用切换和我自己的设置来跟踪它,得到我想要的。到目前为止,它似乎工作正常。实用但不太理想。
  • 只要没有 API 支持,这个可怕的 hack 怎么样?通过添加一个字符并检查之前和之后的缓冲区大小来检查覆盖模式。 (当然,然后撤消插入;将插入安排在 View.visible_region() 之外)
  • 请记住,您始终可以回答自己的问题,以便将来其他人可以通过您的知识丰富。

标签: python sublimetext2


【解决方案1】:

即使问题被标记为“sublimetext2”,我会注意到 Sublime Text 3 确实提供了执行您想要的功能:

view.set_overwrite_status(True) # Or False
view.overwrite_status()

【讨论】:

  • 谢谢。我没有意识到有一个崇高的文本 2。我放弃了它,因为它没有实现几乎足够的我使用的 vim 功能。我可能需要检查一下。不太确定我是否应该接受这个答案。
【解决方案2】:

这种键盘访问需要 ncurses 或 Xwindow 访问应用程序。您应该从 ncurses 添加键盘功能。

【讨论】:

  • 这不仅仅是一个 Linux 应用程序。
  • Sublime 实际上是一个 GUI 编辑器,而不是终端应用程序。
猜你喜欢
  • 2021-04-19
  • 2016-08-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-11
  • 2013-04-27
  • 1970-01-01
相关资源
最近更新 更多