Deshabilite el pitido de PowerShell en la tecla de retroceso


82

Esta característica parece haber sido agregada en PowerShell versión 5.1, ya que no la encuentro en mi computadora portátil que aún ejecuta 5.0.

Al presionar Backspaceen PowerShell, emitirá un pitido si no hay (más) texto para eliminar. Esto es bastante molesto si accidentalmente mantienes presionada la tecla durante demasiado tiempo, ya que el sonido continuará por un corto tiempo después de soltarlo.

Encontré esta pregunta de Superusuario que sugiere deshabilitar el servicio Beep, que funciona, pero aún me gustaría poder usar pitidos en los scripts.

¿Cómo desactivo el sonido de "pitido en el espacio de retroceso" sin desactivar los pitidos por completo?


77
Set-PSReadlineOption -BellStyle None
user364455

1
@PetSerAl Eso funciona, pero tengo que configurarlo cada vez que abro una nueva ventana de PowerShell. ¿Hay alguna manera de hacer que la configuración se mantenga?
FastEthernet


2
@FastEthernet Agréguelo a su archivo de perfil de PowerShell
DavidPostill

1
@PetSerAl Por favor, publique una respuesta.
FastEthernet

Respuestas:


112

El PSReadlinemódulo, que se entrega con Windows 10. proporciona el pitido. Debe cambiar la PSReadlineopción para desactivar el timbre:

Set-PSReadlineOption -BellStyle None

Si desea este cambio para todas las futuras sesiones de PowerShell, debe agregar este comando a su perfil de PowerShell . Por ejemplo, para configurar la opción para "Usuario actual, Host actual" ( $Profile):

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
if (!(Test-Path -Path "$Profile")) {New-Item -ItemType File -Path "$Profile" -Force}
Add-Content -Value "Set-PSReadlineOption -BellStyle None" -Path "$Profile"

La primera línea permite que su perfil ejecute un script de inicio cuando se abre PowerShell ( Acerca de las políticas de ejecución ). La segunda línea prueba para ver si ya tiene un script de inicio definido para "Usuario actual, Host actual". La tercera línea agrega la opción de campana a su secuencia de comandos de inicio.


55
@Odys no, esa es la misma forma en que tendrías que hacerlo en Bash / ZSH o en cualquier shell de Unix también.
Tamoghna Chowdhury

21

Una solución más permanente que extiende la respuesta de @PetSerAl :

  1. Ejecute PowerShell como administrador.
  2. Ejecutar: set-executionpolicy remotesigned. Esto permitirá que los scripts de PowerShell se ejecuten en su computadora. Si no está seguro de qué es eso, no continúe.
  3. Ve a C:\Windows\System32\WindowsPowerShell\v1.0si estás en Windows 10.
  4. Crea un archivo llamado Microsoft.PowerShell_profile.ps1.
  5. Edite ese archivo y agréguelo Set-PSReadlineOption -BellStyle None.
  6. Abra una nueva consola PowerShell y ya no debería escuchar el pitido.

Todas las consolas PowerShell (nuevas) para todos los usuarios de su computadora ahora están en silencio.

Esta respuesta es para Windows 10. Para otras versiones de Windows, la carpeta puede diferir.


Set-ExecutionPolicypuede requerir permisos elevados, por lo que si desea cambiar esta configuración solo para su propio usuario, puede usarla con -Scope CurrentUserargumentos.
mehmetseckin


1

Una adaptación de la respuesta de @Odys usando el shell Bash en el Subsistema de Windows para Linux (suponiendo que lo tenga habilitado).

1 Abra un símbolo del sistema como administrador y ejecute

set-executionpolicy remotesigned

2 Escriba bashpara iniciar el shell bash

3 Cambie al directorio apropiado

cd /mnt/c/Windows/System32/WindowsPowerShell/v1.0 

4 Cree un archivo llamado "Microsoft.Powershell_profile.ps1" y escriba "Set-PSReadlineOption -BellStyle None" en él

echo "Set-PSReadlineOption -BellStyle None" >> Microsoft.Powershell_profile.ps1

No puedo agregar un archivo debajo de la ruta dada, lo cual no es sorprendente porque los derechos de acceso a la carpeta no incluyen escritura. Traté de modificar los derechos de acceso, pero no tuve suerte. ¿Te enfrentaste a un problema como este?
lulijeta

intenta sudo chmod 644 ./Microsoft.Powershell_profile.ps1darte privilegios. No recuerdo mi contraseña de root, así que no puedo confirmar que esto funcione.
Evan Rosica

Gracias, pero chmod solo puede intentar cambiar los permisos de acceso a los archivos solo si el archivo existe. Mi problema es que no puedo crear Microsoft.Powershell_profile.ps1 en la carpeta v1.0. v1.0 (carpeta) carece del derecho de acceso para escribir en él, por lo tanto, no puedo crear un archivo en esa carpeta. Traté de cambiar los derechos de acceso de v1.0, pero aparentemente chmod tiene algunos problemas con el subsistema. ¿Cómo logró crear un archivo en v1.0?
lulijeta
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.