linux - tutorial - vim pdf
¿Cómo puedo hacer que VIM juegue con la máquina de escribir cuando escribo una letra? (6)
Después de escribir mucho en Q10 en Windows , me acostumbré al sonido de la máquina de escribir que produce cada vez que se presiona una tecla. Al menos para mí, es genial tener este tipo de comentarios de sonido.
Por otro lado, en Linux, me encanta escribirlo VIM, debido a sus características de edición. ¿Cómo podría agregar esta funcionalidad a VIM?
En pocas palabras, quiero reproducir un sonido cada vez que presiono una tecla en el modo de inserción.
Deberías probar Qweritckle
Es un emulador de sonido de máquina de escribir para Linux.
El plugin existe. Lo puedes encontrar aquí: https://github.com/osyo-manga/vim-sound
Sin embargo, debe agregar archivos de efectos de sonido, que puede encontrar aquí: http://www.soundjay.com/typewriter-sounds.html
Idea divertida, y gracias por la respuesta Trotter. Sin embargo, utilizando su respuesta, encontré con mi sistema (Ubuntu 14.04) que Vim se quedó en blanco con cada pulsación de tecla con el mensaje:
Presione ENTER o escriba el comando para continuar
Sobre la base de la discusión sobre el tema de ejecutar comandos silenciosamente en Vim en https://vi.stackexchange.com/questions/1942/how-to-execute-shell-commands-silently intenté:
function! PlaySound()
silent! exec ''!play ~/.vim/support/my_typewriter_sound.wav &'' | :redraw!
endfunction
autocmd CursorMovedI * call PlaySound()
que borró la pantalla en blanco automáticamente, pero pude ver el parpadeo después de cada pulsación de tecla y los sonidos solo se produjeron después de que se terminó la última pulsación de tecla, lo que lo convierte en una experiencia bastante antinatural y epiléptica. En la misma pregunta, OliverUv dio la importante explicación de que Vim se ejecuta de forma sincrónica, lo que significa que espera para continuar hasta que se complete la ejecución. Sugiere vim-dispatch o Neomake para la ejecución asíncrona, pero al final opté por Do for Vim, ya que está más orientado a ejecutar comandos de shell arbitrarios en lugar de tareas específicas de compilación. Do for Vim utiliza el soporte Python incorporado en Vim para ejecutar cada comando en un hilo separado (asíncronamente). Estoy muy satisfecho con los resultados utilizando este complemento 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 los sonidos individuales de pulsación de tecla se superponen para una auténtica cascada de clics.
Si está en Solaris, puede hacer un seguimiento del controlador del teclado del núcleo con este conjunto de scripts: http://www.brendangregg.com/DTrace/typewriter-0.75.tar.gz
Tal vez lo que realmente quieres es un teclado IBM Model M.
Muy bien, este tipo de locura, pero parece funcionar. Primero, hazte con un sonido de máquina de escribir en formato aiff. Luego ponga ese sonido de máquina de escribir en ~/.vim/support/my_typewriter_sound.aiff
. Luego agrega lo siguiente a tu ~/.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 una Mac y debe ser reemplazada por play
en Linux. En Windows, no tengo ni idea.
Así que ya sabes lo que está sucediendo arriba, primero estamos creando una función llamada PlaySound
que se afplay
para afplay
. Luego, configuramos un comando automático que se dispara cada vez que el cursor se mueve en el modo de inserción. Cuando se dispara, llama a PlaySound
.