たねやつの木

Photos and Programming

PowerShell, Linuxでビープ音を消す方法

PowerShell(やcmd)コンソールで、入力文字が無いのにバックスペースキーを押したときになるポロロンという音(ビープ音)を消す方法についてです。音楽を聴いたりしているときや集中しているときにこれが鳴ると結構イライラしますよね(;'∀')

PowerShellからsshでLinuxマシンに接続したときにLinux側でも設定が必要なのでそちらについても記載しています。

Windows(PowerShell)での設定

ログイン時に実行されるプロファイル(Microsoft.PowerShell_profile.ps1)に設定を追加することで音を消すことができます。Linuxでの~/.bashrcのようなファイルのようです。

まずはPowerShellを管理者権限で実行します。アイコンを右クリックすると管理者として実行するというコマンドがあるのでそれを選択します。起動したら以下のコマンドを実行して設定ファイルを作成し、内容を追加します。以下のパスはWindows 10の場合です。

ni C:\Windows\System32\WindowsPowerShell\v1.0\Microsoft.PowerShell_profile.ps1 -Value "Set-PSReadlineOption -BellStyle None"

niコマンドはPowerShellでのNew-Itemコマンドのエイリアスです。Linuxでのtouchのようなものです。-Valueオプションで指定した文字列を内容としたファイルを作成できるので今回はそれを使用しています。

Microsoft.PowerShell_profile.ps1が既に存在している場合にはファイル作成時にエラーとなり上書きされることはありません。(私の環境では存在していませんでした。)

ni : ファイル 'C:\Windows\System32\WindowsPowerShell\v1.0\Microsoft.PowerShell_profile.ps1' は既に存在します。

これでコンソールを開きなおすとビープ音が消えます。

しかし、sshなどでLinuxマシンに接続すると再度ビープ音が発生します。PowerShell自体の設定で何とかなるかと思っていたのですが、音の根源から絶たなければならないようです・・・

Linuxでの設定

(Raspberry Pi上で動いているDebian stretchで確認しています。)

コマンドライン上のビープ音

/etc/inputrcという設定ファイルがあるのでそれを変更します。このファイルの変更にも管理者権限が必要です。

$ sudo vim /etc/inputrc
# do not bell on tab-completion
set bell-style none
# set bell-style visible

内容の20行目あたりにビープ音(ベル音)に関する設定がコメントアウトしてあります。set bell-style noneのほうのコメントアウトを解除します。

保存後マシンを再起動させると、コマンドライン上でのビープ音が消えます。inputrcだけを再度読み込ませることもできるかもしれません。

vimのビープ音

上記の設定だけでひと段落かと思いきや、どうやらvimlessコマンドで発生するビープ音は抑えきれないようです。。。

vimに関してですが~/.vimrcset visualbell追加することで消すことができます。

$ vim ~/.vimrc
syntax on   " (ほかの設定。。。)
set number  " 
...
set visualbell " ビープ音を消す

これで完了です。