Как я могу сделать VIM Play Tepingwer Sound, когда я пишу письмо?

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

  •  08-10-2019
  •  | 
  •  

Вопрос

После много написания в Q10 в окнах, Я привык к пишущей машинке, он делает каждый раз, когда вы нажимаете ключ. По крайней мере, для меня чувствует себя здорово иметь такой звуковой обратной связи.

На Linux с другой стороны, я люблю писать его vim, из-за его редактирования функций. Как я могу добавить эту функцию в VIM?

Просто сказал, Я хочу играть звук каждый раз, когда я нажимаю ключ в режиме вставки.

Это было полезно?

Решение

Хорошо, это вроде сумасшедший, но кажется, что работает. Во-первых, возьмите себя звуком пишущей машинки в формате AIFF. Затем положите этот звук машинки в ~/.vim/support/my_typewriter_sound.aiff. Отказ Затем добавьте следующее в свой ~/.vimrc.

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

Обратите внимание, что вышеуказанная функция вызовет в afplay, что я знаю, работает на Mac и необходимо заменить play на Linux. В окнах я понятия не имею.

Так что вы знаете, что происходит выше, мы впервые создаем функцию под названием PlaySound это раковины afplay. Отказ Затем мы настроим автокоммуню, которое уволено в любое время, когда курсор перемещается в режиме вставки. Когда он пожален, это называет PlaySound.

Другие советы

Плагин существует. Вы можете найти это здесь: https://github.com/osyo-manga/vim-sound.

Тем не менее, вам нужно добавить файлы звуковых эффектов самостоятельно, что вы можете найти здесь:http://www.soundjay.com/typewriiter-sounds.html.

Если вы на Solaris, вы можете Dtraze драйвера клавиатуры ядра с помощью этого набора скриптов: http://www.brendangregg.com/dtrace/typewriter-0.75.tar.gz.

Ты должен попытаться Qweritckle.

Это звуковой эмулятор пишущей машинки для Linux.

Веселая идея, и спасибо за тощик ответа. Тем не менее, используя ваш ответ, я нашел с моей системой (Ubuntu 14.04), что VIM пропущен в каждом клавишке с сообщением:

Нажмите Enter или Type Command, чтобы продолжить

Основываясь на обсуждении на тему выполнения команд молча в Vim в https://vi.stackexchange.com/questions/1942/how-to-execute-shell-commands-silent Я старался:

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

который очистил пустой экран автоматически, но я мог видеть вспышку после каждого ключа, а звуки были созданы только после того, как последний клавиш был завершен, создавая довольно неестественный и эпилептический опыт. В том же вопросе Oliveruv дал важное объяснение, что VIM выполняет синхронно, что означает, что он ждет, пока выполнение не будет завершено. Он предлагает Vim-Dispatch или NeOmake для асинхронного исполнения, но в конце концов я пошел с Сделать для Vim. Как это более ориентировано на выполнение произвольных команд скольжения, а не конкретных задач компиляции. Для VIM использует встроенную поддержку Python в VIM для запуска каждой команды на отдельном потоке (асинронно). Я очень доволен результатами, используя этот плагин следующим образом:

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

Там нет мерцания экрана, а индивидуальный клавиш звуки перекрываются для подлинного колонна каскада нажатия.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top