Para insertar una línea en blanco después de la línea actual mientras permanece en el modo de comando, use:
: r !echo
Este es el comando "r
leer en un archivo", pero en lugar de darle un nombre de archivo, le decimos que lea la salida de un comando de shell(!
); ese comando de shell, echo
, simplemente imprime una línea en blanco. Después de insertar la línea en blanco, permanecerá en el modo de comando.
В конце концов, проблема возникла из-за Alsa. У меня есть звуковые карты (или, по крайней мере, виртуальные звуковые карты )на машине с Ubuntu 18, и Alsa по умолчанию считывала только одну. Есть много обходных путей для этой проблемы, тот, который работал для меня, заключался в том, чтобы изменить /создайте файл конфигурации /etc/asound.conf
с этими двумя строками:
defaults.pcm.card 2
defaults.ctl.card 1
~
Это изменило карту по умолчанию.
So this code should print the devices I have for sound io.
Нет, это не так. Он печатает устройства Portaudio , которые являются абстракцией, которая может разрешать или не разрешать устройства ALSA (, хотя сегодня это, вероятно, будет в большинстве случаев ).
В частности, разработчики Portaudio, кажется, решили включить только некоторые устройства ALSA (, в частности аппаратные устройства ), и ни один из подключаемых модулей ALSA.
Если вы хотите получить список всех устройств ALSA , почему бы не использовать библиотеку ALSA вместо Portaudio? Portaudio всегда будет давать вам некоторую абстракцию, поэтому вы либо принимаете эту абстракцию и работаете с ней, либо не используете Portaudio.
Также обратите внимание, что Pulseadio создает совершенно другую проблему. :Pulseaudio захватит все ваши аппаратные устройства ALSA, поэтому единственным устройством, которое вы сможете использовать из Portaudio, являетсяpulse
(или default
, если он все равно указывает на pulse
).
Поэтому, если вы хотите использовать Pulseaudio и составить список приемников Pulseaudio (, который включает аппаратные устройства в том виде, в каком их видит Pulseaudio ), используйте библиотеку Pulseaudio.