Sublime Text 2 Vintage: Odakta ekleme modunu kayıp bırak


4

Sublime Text 2'de Vintage mod (Vi ciltlemeler) kullanıyorum .

ST2'ye geri döndüğümde, düzenli olarak hala ekleme kipinde olduğumdan ısırıyorum, bu da "jjjjjjjjjjjjjkkkkkkkkk" girmeme neden oluyor.

ST2 penceresi odağı kaybettiğinde otomatik olarak ekleme modundan çıkıp komut moduna geri dönmenin bir yolu var mı?

Yanıtlar:


8

Sublime Text 2'yi hiç kullanmadım, ama görünüşe göre ... Gim'den değişmese bile {Grin}

Aşağıdaki SHOULD , odağı kaybettiğinizde Ekleme Modunu kapatmanız, " stop_insert_on_focus_lost.py " olarak adlandırmanız ve eklentiler klasörünüzün herhangi bir yerine yerleştirmeniz için çalışmalıdır.

Umarım işe yarar, biçim ve komutları almak için API'yi ve bazı örnek eklentilerini taramak zorunda kaldı. (ST2'yi daha önce hiç görmedim ... API'lerini, Python'larını ve Vintage modlarını birkaç dakika içinde toplamak için puan kazanıyor muyum?)

import sublime, sublime_plugin
import os.path

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

Vay, bu gerçekten işe yarıyor - inanılmazsın. (Onu düşürdüm Packages/StopInsertOnFocusLost/.) Çok teşekkürler!
Jo Liss

Yardımcı olduğuma sevindim.
lornix

Daha yeni farkettim: Bu eklentiyi eklerken, aramanızın ve alanların da normal moda değişmesine neden olacak. Bu yüzden arama teriminizi eklemek için her zaman "i" tuşuna basmanız gerekir. Bunu nasıl düzeltebiliriz?
Sebastian Hoitz,

VIM kullan? Sublime Macro Documentation'i oku? Çok fazla olduğu gibi değil ... 1 kod satırı, 4 satır başlığı. KURS arasında olayları yazım modundan çıkaracak ... buna 'odaklanmayı kaybetme-durdur-dur' adı verilecek. Belki de pencere odağı dönüşünde geri yüklenecek olan 'ara ve değiştir' alan geçerli modlarını kaydedebilirsiniz? En kolay düzeltme ... başka bir uygulamaya geçmeyin, böylece odağı kaybetmeyin ... yay! S&R alanları için mod değişikliği yoktur. (Teorik Soru: 'Alanları ara ve değiştir' nedir? Tıklamalı köpüklü bir şey olmalı. {Shrug}) Enjoy! {Grin} (Neden ekleme modunda
kalıyorsun

1
Örnek: Arama çubuğunu açmak için [/] tuşuna basın. Ancak şimdi arama terimimi ekleyemeden önce [I] tuşuna basmam gerekiyor.
Sebastian Hoitz

4

Yukarıdaki eklenti harika ama diğer yorumlarda belirtildiği gibi can sıkıcı bir hatadan muzdarip. Bulma menüsü veya bir şey açılır penceresine gitmek gibi bir şeye geçtiğinizde orada komut / normal modda olacaksınız. Daha da kötüsü, komutlar tamamen doğru çalışmayacak, çünkü vintage mod komutlarının çoğu açılır pencerelerde çalışmayacak, bu yüzden her iki dünyanın durumundan da daha kötüsün.

Bu sürüm şunları düzeltir:

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')

Başlangıç ​​kodunun orijinal cevabı için teşekkürler!


1

Bunu da teklif edeceğim:

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'in cevabından uyarlanmıştır - bazı kenar durumlarını düzeltir. Adı stop_insert_on_focus_lost.pyve altına ekleyin Packages.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.