Domanda

Dopo un sacco di scrivere in Q10 su Windows , mi sono abituato al suono macchina da scrivere fa ogni volta che si preme un tasto. Almeno per me si sente bello avere questo tipo di feedback sonoro.

Su Linux d'altra parte, mi piace scriverlo VIM, a causa della sua modifica le caratteristiche. Come potrei aggiungere questa funzionalità a VIM?

È presto detto, voglio riprodurre un suono ogni volta che si preme un tasto in modalità di inserimento.

È stato utile?

Soluzione

Bene, questo genere di pazzesco, ma sembra funzionare. In primo luogo, prendere voi stessi un suono macchina da scrivere in formato AIFF. Poi mettere quel suono macchina da scrivere in ~/.vim/support/my_typewriter_sound.aiff. Quindi aggiungere quanto segue al ~/.vimrc.

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

Si noti che la funzione di cui sopra chiama a afplay, che so opere su un Mac e deve essere sostituito con play su Linux. Su Windows, non ho idea.

In modo da sapere cosa sta succedendo al di sopra, stiamo creando prima una funzione chiamata PlaySound che gusci fuori al afplay. Abbiamo poi impostare un autocomando che viene licenziato in qualsiasi momento il cursore si sposta in modalità di inserimento. Quando si spara, si chiama PlaySound.

Altri suggerimenti

Il plugin esiste. Lo si può trovare qui: https://github.com/osyo-manga/vim-sound

Tuttavia, è necessario aggiungere gli effetti sonori dei file stessi, che potete trovare qui: http://www.soundjay.com/typewriter-sounds.html

Se siete su Solaris, è possibile DTrace il driver della tastiera del kernel con questo set di script: http://www.brendangregg.com/DTrace/typewriter-0.75.tar.gz

Si dovrebbe cercare Qweritckle

E 'un emulatore di suono macchina da scrivere per Linux.

idea di divertimento, e grazie per la risposta Trotter. Tuttavia, utilizzando la risposta che ho trovato con il mio sistema (Ubuntu 14.04) che Vim è andato in bianco ad ogni pressione di un tasto con il messaggio:

  

Premere INVIO o un comando per continuare

In base a discussione sul tema di esecuzione di comandi in silenzio in Vim a https: //vi.stackexchange.com/questions/1942/how-to-execute-shell-commands-silently ho provato:

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

, che scompare automaticamente lo schermo vuoto, ma ho potuto vedere il tremolio dopo ogni pressione del tasto ed i suoni sono stati prodotti solo dopo l'ultima pressione dei tasti era finito, rendendo per un abbastanza esperienza innaturale e epilettico. Nella stessa domanda OliverUv ha dato la spiegazione importante che Vim esegue in modo sincrono, il che significa che aspetta di continuare fino a quando l'esecuzione viene completata. Egli suggerisce vim-spedizione o Neomake per l'esecuzione asincrona, ma alla fine sono andato con Do per Vim come è più orientata verso l'esecuzione di comandi shell arbitrari piuttosto che compiti specifici di compilazione. Fare per utilizza Vim supporto integrato Python in Vim per eseguire ogni comando su un thread separato (asyncronously). Sono molto soddisfatto con i risultati utilizzando questo plugin come segue:

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

Non c'è sfarfallio dello schermo e dei singoli suoni di pressione dei tasti si sovrappongono per un autentico tintinnio cascata di clic.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top