2010-12-11 13 views
27

Q10 on Windows numaralı yazının çok fazla yazımından sonra, bir tuşa her basışınızda yaptığınız daktilo sesine alıştım. En azından benim için bu tür bir geri bildirimin olması harika.Bir harf yazdığımda VIM'in daktilo sesini nasıl oynatabilirim?

Diğer yandan Linux üzerinde düzenleme özellikleri nedeniyle VIM yazmayı seviyorum. Bu işlevi VIM'e nasıl ekleyebilirim?

Basitçe söyleyin, Ekleme modunda bir tuşa her basışımda ses çalmak istiyorum.

+4

Komşularınızı rahatsız etmek mi? –

cevap

47

Pekala, bu çok çılgın, ama işe yarıyor gibi görünüyor. İlk olarak, aiff formatında bir daktilo sesi alın. Sonra da bu daktiloyu ~/.vim/support/my_typewriter_sound.aiff'a yerleştirin. Sonra aşağıdakileri ~/.vimrc'a ekleyin. Yukarıdaki fonksiyon Ben bir Mac çalıştığını biliyorum ve Linux üzerinde play ile değiştirilmesi gerektiğini afplay, seslenir o

function! PlaySound() 
    silent! exec '!afplay ~/.vim/support/my_typewriter_sound.aiff &' 
endfunction 
autocmd CursorMovedI * call PlaySound() 

Not. Windows'da hiç bir fikrim yok.

Yukarıda neler olduğunu biliyorsunuz, önce adı verilen ve afplay öğesinin dışına taşan bir işlev oluşturuyoruz. Daha sonra, imlecin ekleme modunda hareket ettiği her an tetiklenen bir autocommand kurarız. Ne zaman ateş ederse, PlaySound'u çağırır.

+0

Harika, Linux üzerinde oynamak wav dosyaları için de çalışıyor, sadece/dev/null çıkışını elden çıkarmak için değiştirdim ve harika çalışıyor! teşekkürler –

+5

Neden vim seviyorum, çünkü "deli" ve diğer tüm "ucubeler" onlara cevap vermek için her zaman hazır ve "Vim" sırayla bu sonsuz olanaklara sahip olarak tüm bunlara bir zemin olarak hizmet vermektedir. – SergioAraujo

+1

Bir adım daha ileri almak ve ekranda her şeyi ortalamak için bir Q10/WriteRoom, VimRoom'a göz atın: http://projects.mikewest.org/vimroom –

1

Eğlence fikir ve cevap Trotter için teşekkürler. Ancak, cevabınızı kullanarak ben Vim mesajla her dokunuş ile boş gittiğini sistemimde (Ubuntu 14.04) ile bulundu:

ENTER'a basın veya tip komut konuda tartışma dayanarak

devam etmek https://vi.stackexchange.com/questions/1942/how-to-execute-shell-commands-silently de Vim sessizce komutları yürütme denedim: otomatik boş ekran temizlenir, ama her tuşa basıldıktan sonra titreşimi görebiliyordu ve son tuşa basma oldu sonra sesler yalnızca üretildi

function! PlaySound() 
    silent! exec '!play ~/.vim/support/my_typewriter_sound.wav &' | :redraw! 
endfunction 
autocmd CursorMovedI * call PlaySound() 

Tamamen doğal olmayan ve epileptik bir deneyim için bitmiş. Aynı soruda OliverUv Vim'in eşzamanlı olarak yürüttüğü önemli bir açıklama yaptı, yani yürütme tamamlanana kadar devam etmeyi bekler. Eşzamansız yürütme için vim-dispatch veya Neomake önerir, ancak sonunda özgün derleme görevlerinden ziyade isteğe bağlı kabuk komutları yürütmeye daha fazla yöneldiğinden, Do for Vim ile birlikte gittim. Vim için, Vim'deki yerleşik Python desteğini kullanarak her komutu ayrı bir iş parçacığında (eşzamansız olarak) çalıştırır.Ben şöyle bu eklentiyi kullanarak Sonuçlardan çok memnunum: Orada ekranın hiçbir titreme ve bireysel tuşa basma tıklayarak otantik clattering kaskad çakışmasını sesleri

function! PlaySound() 
    :DoQuietly play ~/.vim/support/my_typewriter_sound.wav 
endfunction 
autocmd CursorMovedI * call PlaySound() 

.

İlgili konular