Как я могу сделать VIM Play Tepingwer Sound, когда я пишу письмо?
-
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()
Там нет мерцания экрана, а индивидуальный клавиш звуки перекрываются для подлинного колонна каскада нажатия.