Bir vim eşlemesi bir Autohotkey makrosunu tetikleyebilir mi?


0

Bir vim eşlemesi kullanarak bir Autohotkey makrosu tetiklemek istiyorum, bu mümkün mü? Örneğin, CTRL-Jgirilmek üzere vim'de normal mod vim eşlemesi oluşturmak için , Autohotkey'i tetiklemek için bunu kullanın.

Vim'de:

:nnoremap ,w <ctrl-j>

autohotkey

^j:: do something

Bunu yaptığımda CTRL-J, klavyeme fiziksel olarak yazmak başarıyla Autohotkey makrosunu tetikler, ancak vim eşlemesi yapmaz.

Yanıtlar:


1

ImageSearch'ü kullanabilirsiniz, INSERT yazdığı VIM durum çubuğunun koordinatlarını bildiğiniz gibi, INSERT'in bulunup bulunmadığını (elbette önce bir görüntü yakalamanız / oluşturmanız gerekir) her 200ms deyimini kontrol etmek için bir SetTimer kullanabilirsiniz. Bulunabiliyorsa, bir toggle değişkenini true ya da false olarak ayarlayabilirsiniz ve bu toggle değişkenini #If ifadesiyle kullanabilirsiniz.

Böyle bir şey olurdu

Toggle:=false
SetTimer, Label, 200
Return

#If Toggle
; hotkeys/hotstrings etc
#If

label:
IfWinNotActive, ahk_exe gvim.exe
   {
    toggle:=false
    return
   }
ImageSearch.... ; 
If (ErrorLevel = 0) ; image found
   {
    toggle:=true
    return
   }
Return

Görüyorum ki soruyu yanlış anladım. Gelecekte birisi için bir faydası olabileceği için yukarıdaki cevabı bırakıyorum, ancak VIM'in AutoHotkey'i tetiklemesini istiyorsunuz. Belki bir komut dosyası çalıştırmak için:! <cmd> kullanabilirsiniz?
lintalist,

1

AutoHotkey, gerçek klavye olaylarını dinlediğinden ve belirli bir uygulamada dahili olarak neler olup bittiğinin farkında olmadığından ve Vim'in eşlemeleri aslında tetiklendiklerinde yeni klavye olayları göndermediğinden, hayır. Yalnızca Vim'e özgü bir AutoHotkey makrosu oluşturabilirsiniz:

SetTitleMatchMode, RegEx
#IfWinActive, - G?VIM\d*$
:*?:`,w::
    do something
    return
#IfWinActive

Ancak bu, Vimin modundan bağımsız olarak tetiklemenin dezavantajına sahiptir, çünkü AutoHotkey, Vim'in normal modda olup olmadığını bilemez.

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.