18290


Mac OS X では選択した文字列に対し、標準で辞書をポップアップ表示する機能があります。  
1\. 辞書を引く文字列を選択する。  
2\. ショートカットを入力（デフォルトはctrl-cmd-d）

Atomではキーバインドが独自の仕組みのため、上記操作ではポップアップされません。  
そこで、下記URLを参考にkeycap.csonを変更し、マシンごと再起動を行って上記操作を行いましたがポップアップは表示されませんでした。  
<https://atom.io/docs/v0.196.0/behind-atom-keymaps-in-depth>

[code]

    'atom-text-editor':
      'ctrl-cmd-d': 'native!'
    
[/code]

設定の記述方法に誤解があるのでしょうか？

* * *

2015/11/01 編集：  
設定値を以下で試すことで挙動が変わることを確認しました。  
`native!`：ポップアップは表示されない。  
`unset!`：ポップアップは最後の一単語で表示される。同じ操作でポップアップ表示されなくなる時がある。  
また、検索語は文末の単語や文字となってしまい、意図した検索ができない場合がある。

`abort!`：ポップアップは表示されない。  
`unset! native!`：ポップアップは表示されない。

* * *

別の検証として以下を試しました。  
`cmd-d`(検索して置換,find-and-replace:select-next)のバインディングを変更  
`'atom-text-editor':`  
`'.platform-darwin atom-text-editor':`  
それぞれに同じ値を設定する。

`native!`：機能する。  
`unset!`：機能しない。  
`abort!`：機能しない。  
`unset! native!`：機能する。

結果：`native!`を設定した時は既存のバインドは解除されないのでそのまま機能しているようです。  
[![binding](https://i.stack.imgur.com/0Gfyv.png)](https://i.stack.imgur.com/0Gfyv.png)

* * *

(編集ここまで）

使用環境  
\- OS X El Capitan 10.11.1  
\- Atom 1.1.0

実行したいイメージ(Atomの代わりにSafariのテキストボックスで"Atom"を検索した例)  
[![選択文字列にポップアップで辞書を引くイメージ](https://i.stack.imgur.com/co8Zz.png)](https://i.stack.imgur.com/co8Zz.png)

* * *

2015/11/01 追記：  
類似した機能を提供するパッケージに「dictionary」がありますが、こちらは辞書.appのウインドウを表示させる機能のため、少し煩雑になります。  
<https://atom.io/packages/dictionary>


CC BY-SA 3.0
2015-10-30T07:12:01.397
18241
2016-10-16T10:27:48.233
2016-10-16T10:27:48.233
754
13045
question
macos atom-editor key-mapping os-x-key-bindings
OS X上のAtomエディタでキーバインドを設定し、ポップアップ辞書を表示させたい。


自己回答になりますが、結論としてはAtom自体が該当機能を正しく実装している必要がありそうです。

OS標準機能と思っていたのは、辞書.appのウインドウで開く「辞書で調べる」コマンドであり、  
ポップアップ表示を行うには、Cocoaアプリケーション側で`HIDictionaryWindowShow()`や`showDefinitionForAttributedString()`に選択文字列を渡して呼び出すコードを書くようです。  
標準のコンポーネント（NSTextViewなど）は上記のコードを書かずに意図したポップアップさせる事ができたのでAtom独自のコンポーネントがポップアップ表示に影響していると考えます。

参照：  
<http://michitoshi.blogspot.jp/2011/03/pdfkitapp_17.html>  
<http://blog.fenrir-inc.com/jp/2013/01/dict-on-mac.html>

上記から設定値を変えるだけでは実現は難しそうだという結論です。  
お付き合いいただき、ありがとうございました。

* * *

2015/11/02 補足：  
Atomの開発元に該当するIssueがありました。  
やはり独自に選択テキストを管理しているようで表示対応はエンハンス項目にラベリングされていました。  
<https://github.com/atom/atom/issues/441#issuecomment-30604720>


CC BY-SA 3.0
2015-11-01T03:57:32.283
18290
2015-11-01T22:55:11.020
2015-11-01T22:55:11.020
13045
13045
18241
answer