Подтвердить что ты не робот

Как я могу записать звук пишущей машинки VIM, когда я пишу письмо?

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

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

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

4b9b3361

Ответ 1

Хорошо, это безумие, но, похоже, оно работает. Во-первых, возьмите себе пишущую машинку в формате 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. В Windows я понятия не имею.

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

Ответ 5

Вам следует попробовать Qweritckle

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

Ответ 6

Забавная идея, и спасибо за ответ Trotter. Однако, используя ваш ответ, который я нашел с моей системой (Ubuntu 14.04), что Vim на каждом нажатии нажал сообщение:

Нажмите ENTER или введите команду для продолжения

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

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

который автоматически очистил пустой экран, но я мог видеть мерцание после каждого нажатия клавиши, и звуки создавались только после того, как последнее нажатие было закончено, что вызвало довольно неестественный и эпилептический опыт. В том же вопросе OliverUv дал важное объяснение, что Vim выполняет синхронно, то есть он ждет продолжения до завершения выполнения. Он предлагает vim-dispatch или Neomake для асинхронного исполнения, но в итоге я пошел с Do for Vim, поскольку он больше ориентирован на выполнение произвольной оболочки а не конкретные задачи компиляции. Do для Vim использует встроенную поддержку Python в Vim для запуска каждой команды в отдельном потоке (асинхронно). Я очень доволен результатами, используя этот плагин следующим образом:

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

Нет мерцания экрана, и отдельные нажатия клавиш накладываются друг на друга для аутентичного каскада щелчка.