Kullanıcının işlevimi çağırmasını ve sonra kullanıcı isteğini işleve sahip olmasını istiyorum ancak kullanıcının yazmasını istemiyorum. "input()" fonksiyonu tarafından gerekli olan bir harfi yazdıktan sonra 'girin. Örneğin, kullanıcı 'h', 'j', 'k', 'l' gibi tek harfli komutlar yazabilmeli ve yazılan her harf, kullanıcı çıkış için 'x' yazana kadar işlevimin etrafında dönecektir. "Input()" kullanırsam, kullanıcı 'h <enter>
', 'j <enter>
', 'jvim script "input()" kullanıcının giriş yapmasını gerektirmeyen işlev
Bunu nasıl yapabilirim?
Daha fazla açıklama gerekiyorsa lütfen bildirin.
function! s:getchar()
let c = getchar()
if c =~ '^\d\+$'
let c = nr2char(c)
endif
return c
endfunction
" Interactively change the window size
function! InteractiveWindow()
let char = "s"
while char =~ '^\w$'
echo "(InteractiveWindow) TYPE: h,j,k,l to resize or a for auto resize"
let char = s:getchar()
if char == "h" | call SetWindowSize("incr" ,-5 ,0) | endif
if char == "j" | call SetWindowSize("incr" ,0 ,5) | endif
if char == "k" | call SetWindowSize("incr" ,0 ,-5) | endif
if char == "l" | call SetWindowSize("incr" ,5 ,0) | endif
if char == "a" | call SetWindowSize("abs" ,0 ,0) | endif
redraw
endwhile
endfunction
:
GÜNCELLEME çalışmıyor var. Aslında yeni bir vim modu oluşturmanıza izin verir, örneğin görsel mod veya ekleme modu gibi bir "pencere modu" üzerindeki kodu çağırabilirsiniz. Oldukça güçlü şeyler ... – stephenmm