題 Sublime Text 2 Vintage:在焦點丟失時保持插入模式


我正在使用 釀酒 Sublime Text 2上的模式(Vi綁定)。

當切換回ST2時,我經常因插入模式而被咬,導致我輸入“jjjjjjjjjjjjkkkkkkkkk”。

當ST2窗口失去焦點時,有沒有辦法自動退出插入模式並返回命令模式?


4
2017-07-04 16:13


起源




答案:


我從來沒有使用Sublime Text 2,但看起來它可能有希望......雖然{Grin}沒有改變我的Vim

下列 應該 當你失去焦點時,你可以關閉插入模式,命名為“stop_insert_on_focus_lost.py“並將其放在插件文件夾中的某個位置。

希望它能夠工作,必須掃描API和他們的一些示例插件來獲取格式和命令。 (之前從未見過ST2 ......在幾分鐘內我是否能獲得積分,以獲得他們的API,Python和Vintage模式?)

import sublime, sublime_plugin
import os.path

class StopInsertOnFocusLost(sublime_plugin.EventListener):
    def on_deactivated(self, view):
        view.run_command('exit_insert_mode')

8
2017-07-06 01:48



哇,這確實有用 - 你真不可思議。 (我放進去了 Packages/StopInsertOnFocusLost/。) 非常感謝! - Jo Liss
很高興我能幫助你。 - lornix
我剛剛注意到:添加此插件時,它會導致您的搜索和替換字段也會更改為正常模式。因此,您必須按“i”才能進入插入模式以插入搜索詞。我們該如何解決這個問題? - Sebastian Hoitz
嗯,使用VIM?閱讀Sublime宏文檔?不像它有很多東西...... 1行代碼,4行標題。當然,它會將事物從插入模式轉移出來......它稱為“停止插入焦點丟失”。也許你可以保存“搜索和替換”字段當前模式,以便在窗口焦點返回時恢復?最簡單的修復...不要切換到任何其他應用程序,因此不會失去焦點......耶! S&R字段沒有模式更改。 (理論問題:什麼是'搜索和替換領域'?必須是一個點擊搗蛋的東西。{聳聳肩})享受! {Grin}(為什麼你會留在插入模式?) - lornix
示例:我按[/]打開搜索欄。但是現在我必須先按[I]才能插入我的搜索詞。 - Sebastian Hoitz


上面的插件很棒但是有一個煩人的bug,正如其他評論中提到的那樣。當您切換到查找菜單或轉到任何彈出窗口時,您將處於命令/正常模式。更糟糕的是,命令將無法正常工作,因為許多複古模式命令不會在彈出窗口中運行,因此您在兩種情況下的情況都會更糟。

此版本修復了:

import sublime, sublime_plugin
import os.path

class StopInsertOnFocusLost(sublime_plugin.EventListener):
    def on_deactivated(self, view):
        view.run_command('exit_insert_mode')

    def on_activated(self, view):
        if view.settings().get('is_widget') == True:
            view.run_command('enter_insert_mode')

感謝起始代碼的原始答案!


4
2018-03-25 17:40





我也有這個提供:

import sublime, sublime_plugin
import os.path

class StopInsertOnFocusLost(sublime_plugin.EventListener):
    def on_deactivated(self, view):
        if view.file_name() and not view.settings().get('command_mode'):
            view.run_command('exit_insert_mode')

改編自lornix的答案 - 修復了一些邊緣案例。說出來 stop_insert_on_focus_lost.py 並添加它 Packages


1
2018-03-25 21:12