¿Cómo puedo hacer VIM sonido juego de máquina de escribir cuando escribo una carta?

StackOverflow https://stackoverflow.com/questions/4418364

  •  08-10-2019
  •  | 
  •  

Pregunta

Después de una gran cantidad de escritura en Q10 en Windows , me he acostumbrado al sonido que hace la máquina de escribir cada vez que se pulsa una tecla. Al menos para mí se siente muy bien tener este tipo de retroalimentación de sonido.

En Linux, por otro lado, me gusta escribir que VIM, debido a su edición de entidades. ¿Cómo podría añadir esta funcionalidad a VIM?

Simplemente dicho, Quiero jugar un sonido cada vez que se presiona una tecla en el modo de inserción.

¿Fue útil?

Solución

Muy bien, esta un poco loco, pero parece que el trabajo. En primer lugar, usted agarra un sonido máquina de escribir en formato AIFF. A continuación, poner ese sonido máquina de escribir en ~/.vim/support/my_typewriter_sound.aiff. A continuación, añada lo siguiente a su ~/.vimrc.

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

Tenga en cuenta que la función anterior llama a afplay, que sé que funciona en un Mac y necesita ser reemplazada con play en Linux. En Windows, no tengo ni idea.

Así que ya saben lo que está pasando arriba, estamos en primer lugar la creación de una función llamada PlaySound que desembolsa a afplay. Entonces instalamos un AutoCommand que es despedido en cualquier momento el cursor se mueve en el modo de inserción. Cuando se dispara, se llama PlaySound.

Otros consejos

El plugin existe. Lo puedes encontrar aquí: https://github.com/osyo-manga/vim-sound

Sin embargo, es necesario agregar efectos de sonido archivos por sí mismo, que se puede encontrar aquí: http://www.soundjay.com/typewriter-sounds.html

Si estás en Solaris, puede Dtrace el controlador de teclado del núcleo con este conjunto de secuencias de comandos: http://www.brendangregg.com/DTrace/typewriter-0.75.tar.gz

Qweritckle

Es un emulador de sonido máquina de escribir para Linux.

idea de diversión, y gracias por la respuesta Trotter. Sin embargo, el uso de su respuesta me encontré con mi sistema (Ubuntu 14.04) que Vim se quedó en blanco en cada pulsación de tecla con el mensaje:

Pulse ENTER o el comando tipo para continuar

Sobre la base de la discusión sobre el tema de la ejecución de comandos en silencio en Vim en https: //vi.stackexchange.com/questions/1942/how-to-execute-shell-commands-silently traté:

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

que despejó la pantalla en blanco de forma automática, pero pude ver el parpadeo después de cada pulsación de tecla y los sonidos solamente se produce después de la última pulsación de tecla se terminó, haciendo para una experiencia bastante poco natural y epiléptico. En la misma pregunta OliverUv dio la explicación importante que Vim ejecuta de forma sincrónica, lo que significa que espera que continúe hasta que se complete la ejecución. Sugiere vim-expedición o Neomake para la ejecución asíncrona, pero al final me fui con Do para Vim ya que está más orientado a la ejecución de comandos shell arbitrarios en lugar de tareas de compilación específicos. Hacer por Vim utiliza soporte incorporado Python en Vim para ejecutar cada comando en un hilo separado (asyncronously). Estoy muy satisfecho con los resultados usando este plugin de la siguiente manera:

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

No hay parpadeo de la pantalla y el sonido de pulsación de teclas individuales se superponen para una auténtica cascada de traqueteo de hacer clic.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top