beep 音はあまり鳴って欲しくないので neovim と Terminal の beep setting は全て off 。
それでも稀に beep 音が鳴ってしまう。しかし、稀すぎて再現できず。
が、最近再現できたので、それに対処したログを残しておきます。
環境
- OS: macOS Mojave 10.14.6
beep が鳴る原因
『^;(control + ';')』を入力した際に beep が鳴ることを見付けました。
Terminal.app に限らず Safari といった他の Application でも鳴るので、macOS 側の設定のようです。
対応: DefaultKeybinding.dict
OSX 時代から DefaultKeybinding.dict という物があって、それで keymap を設定できるようです。
参考のリンクで一番古いのは2010年とか。そのくらい前から存在しているらしい。
最終的には ~/Library/KeyBindings/DefaultKeyBinding.dict に
だけ記述。
一度 Application を落として ^; を入力しても何も鳴らない。よし。
参考のリンクで一番古いのは2010年とか。そのくらい前から存在しているらしい。
最終的には ~/Library/KeyBindings/DefaultKeyBinding.dict に
一度 Application を落として ^; を入力しても何も鳴らない。よし。
寄り道
- 'noop:' を設定してはダメなのか
- 設定してみたこともあります。が、どうも『noop: だから beep が鳴る』みたいです。
- DefaultKeyBinding.dict 自体始めて触るので、まず map ができているか怪しかった。
- 一度「特定の文字を insert する」ように map して、DefaultKeyBinding.dict が有効な事を確認。
- それから「空の文字列を insert する」ことで beep を抑えている状態です。
- 他の組み合せでは beep は鳴らないのか
- 'noop:' の物は基本鳴ります。
- なので control + 記号 とかは beep 祭りです。
- 全組み合せを設定しても良いのですが、特に鳴りまくる物を見付けたら設定していこうかと。
- Keyboard 側の Setting でそもそも beep が鳴らないようにするのがベストな気がします。
- が、Input Method "ASCII" には 設定項目が存在せず、 AquaSKK にも無い。
- ので keymap でアドホックに回避してる状態です。
- macOS 側の KeyBinding と衝突した場合はどうなるのか
- macOS 側の設定が優先されました。
- system-wide の key binding とか参考にならなかったのか
- /System/Library/Frameworks/AppKit.framework/Resources/StandardKeyBinding.dict ですね。
- Property List Editor で開けると記述されているが、そんな Application は存在せず。
- .plist を開ける XCode で開こうと試す。
- 追加コンポーネントをダウンロードし始めたので、開けるかも、と期待。
- で、ダウンロードしても開けず。えー。
- 最終的に私自身の dot_files に入れることにしました。
- .config/nvim/init.vim といったファイルは symlink で設定を配置しています。
- が、DefaultKeyBinding.dict は symlink を follow してくれない。
- ので cp することで対応しています。
0 件のコメント:
コメントを投稿