ctrl+shift+p filters: :st2 :st3 :win :osx :linux
浏览

ActualVim

作者 lunixbochs ST3

Sublime Text 3 输入模式使用 Neovim 实现。问题已被关闭,如果有bug修复,欢迎提交Pull Requests。

标签 inputvim

详细信息

  • 0.9.17
  • github.com
  • 6年前
  • 18分钟前
  • 7年前

安装量

  • 总数 32K
  • Win 12K
  • Mac 12K
  • Linux 9K
8月6日 8月5日 8月4日 8月3日 8月2日 8月1日 7月31日 7月30日 7月29日 7月28日 7月27日 7月26日 7月25日 7月24日 7月23日 7月22日 7月21日 7月20日 7月19日 7月18日 7月17日 7月16日 7月15日 7月14日 7月13日 7月12日 7月11日 7月10日 7月9日 7月8日 7月7日 7月6日 7月5日 7月4日 7月3日 7月2日 7月1日 6月30日 6月29日 6月28日 6月27日 6月26日 6月25日 6月24日 6月23日 6月22日
Windows 0 1 3 4 1 10 2 1 1 0 4 1 3 2 2 2 0 3 1 1 1 2 1 2 2 1 3 2 2 2 2 1 1 3 0 1 1 4 0 5 0 2 1 6 0 1
Mac 4 2 2 0 2 1 0 3 1 1 0 1 4 0 1 1 1 0 1 2 2 2 3 0 0 0 1 2 0 0 1 4 2 2 3 4 1 8 1 2 1 2 1 1 0 0
Linux 3 0 1 3 1 0 0 0 2 0 1 2 1 1 0 0 0 0 0 1 1 0 0 0 0 1 0 0 2 0 1 1 5 3 1 1 0 2 0 0 1 0 1 0 2 0

README

源代码
raw.githubusercontent.com

ActualVim

整合了Sublime Text 3的您所喜欢的功能和您在vim中打字所喜欢的所有功能。

ActualVim使用内嵌的Neovim实例,精确地操纵每个Sublime Text文本文档,就像您在vim中直接编辑文本一样,同时Sublime Text界面、功能和插件仍然可用(有关注意事项,请参阅README末尾)。

这不是像gvim和其他vim前端那样的远程终端UI。文本修改和选择会双向同步到实际的Sublime Text UI中。

为什么?

Sublime的外观比您的终端好得多,并且拥有丰富的插件生态系统。

其他Sublime vim模拟插件,包括内置的Vintage,只是对vim本身功能的粗略近似。它们缺少功能或者与实际产品表现不同。

使用ActualVim,您可以使用自己的vimrc、插件以及任何真实的vim操作/命令,因为它在幕后确实是vim,双向同步也意味着Sublime Text和原生操作系统界面仍然可用。

使用方法

这个插件需要安装Neovim,但应在所有Sublime Text 3平台(主要在Windows和macOS上进行测试)上工作。请使用至少Neovim 0.2.2,但强烈推荐Neovim 0.3或更新版本。

将ActualVim克隆到“首选项 -> 浏览包...”或“sublime.packages_path()”中找到的路径。通常在这里找到

  • macOS: ~/Library/Application Support/Sublime Text 3/Packages/
  • Linux: ~/.config/sublime-text-3/Packages/
  • Windows: %APPDATA%/Sublime Text 3/Packages/

您可以通过使用命令面板(cmd+shift+pctrl+shift+p)或通过 偏好设置 -> 插件设置 -> ActualVim 设置 来打开 偏好设置:实际 Vim 设置 来设置 Neovim 路径。

ActualVim 启动单个 Neovim 嵌入式实例并将每个 Sublime 视图多路复用到单独的缓冲区中。

如果插件无法使用(当 ActualVim 开始起作用时,出现水平下划线光标),请检查 Sublime Text 守护进程的错误,并确保您已设置 Neovim 路径。如果问题依然存在,请提交一个问题报告。

杂项

在 OS X 10.7+ 上,您应该执行 defaults write com.sublimetext.3 ApplePressAndHoldEnabled -bool false 来启用按键重复。

您可以通过命令面板运行 ActualVim: DisableActualVim: Enable 来切换输入模式,而不丢失 Vim 状态。

注意事项

目前损坏的 Sublime 特性

  • 多选(#8)。
  • 在键入时的自动弹出,例如补全(#57)和代码片段建议(#94)。
  • 在 Vim 模式下,Sublime 的撤销合并不正确(它每次是一个字符:#44)。

显示 Vim 的 UI(如状态栏)仍需要一些改进,但我有一些很好的想法,可以使用 Sublime 集成的 HTML Phantom 视图使其看起来美观(比您的终端好得多)。

由于 neovim 支持 change deltas,将看到非常大的文件将影响性能。通过禁用 ActualVim (带有可配置的截止值)来提高大型文件(配置文件 large_file_disable)的命令来减轻这个问题。