Làm cách nào để sửa lỗi private.xml từ ứng dụng Karabiner cho Mac OS X để bật điều hướng giống Vim trong Preview.app?


1

Thông tin lai lịch:

Tôi muốn sử dụng h, j, k, lhải ở Preview.app.

Vài tháng trước tôi đã tìm thấy một giải pháp ở đây: https://apple.stackexchange.com/a/188301/127306 . Nhờ ứng dụng Karabiner và tệp tin privateeaux của Martijn, tôi đã có thể sử dụng hjkl trong Bản xem trước.

Đột nhiên nó ngừng hoạt động. Có lẽ là do một bản cập nhật của Karabiner hoặc Preview.

Câu hỏi:

Bạn có biết làm thế nào để làm cho .xmltập tin này hoạt động? Hoặc có thể bạn biết một số cách giải quyết khác? ( Tôi không muốn sử dụng các phím tắt như command+ jtuy nhiên. )


Mã dưới đây là private.xmltập tin tôi sử dụng.

<?xml version="1.0"?>
<root>
    <appdef>
        <appname>PREVIEW</appname>
        <equal>com.apple.preview</equal>
    </appdef>

    <item>
        <name>Vi Navigation in Preview</name>
        <identifier>private.preview.vinav</identifier>
        <only>PREVIEW</only>
        <uielementrole_not>AXTextField, AXTextArea</uielementrole_not>
        <modifier_only>
            ModifierFlag::NONE,
            ModifierFlag::SHIFT_L | ModifierFlag::NONE,
            ModifierFlag::SHIFT_R | ModifierFlag::NONE,
        </modifier_only>
        <appendix>Navigate using the HJKL keys</appendix>
        <autogen>__KeyToKey__ KeyCode::J, KeyCode::CURSOR_DOWN</autogen>
        <autogen>__KeyToKey__ KeyCode::K, KeyCode::CURSOR_UP</autogen>
        <autogen>__KeyToKey__ KeyCode::H, KeyCode::CURSOR_LEFT</autogen>
        <autogen>__KeyToKey__ KeyCode::L, KeyCode::CURSOR_RIGHT</autogen>
    </item>
</root>

Ghi chú:

  • Phiên bản Karabiner là 10.9.0.
  • Tôi đang sử dụng OS X El Capitan tuy nhiên tôi cũng gặp vấn đề này trên OS X Yosemite.

Câu trả lời:


1

tl; dr hotfix

Thay đổi cai nay đi:

<appdef>
    <appname>PREVIEW</appname>
    <equal>com.apple.preview</equal>
</appdef>

đến đây:

<appdef>
    <appname>PREVIEW</appname>
    <equal>com.apple.Preview</equal>
</appdef>

Lưu ý: nếu nó không giải quyết được vấn đề của bạn thì hãy xem Cập nhật bên dưới.

Trường hợp là gì?

Hóa ra vấn đề là định danh của ứng dụng Preview nên com.apple.Previewvà không com.apple.preview.

Tuy nhiên, tôi không biết tại sao com.apple.previewlại dừng làm định danh hợp pháp của ứng dụng Xem trước. Karabiner trở nên nhạy cảm với trường hợp hoặc Apple quyết định thay đổi định danh (điều này là không thể).

Bằng cách này hay cách khác, giải pháp khá dễ dàng.

Nếu bạn gặp một số rắc rối với Karabiner, bạn có thể cố gắng khắc phục sự cố bằng EventView của Karabin và đọc hướng dẫn sử dụng: hướng dẫn chung , hướng dẫn sử dụng xml riêng .

Cập nhật

Tính năng này đã ngừng hoạt động một lần nữa trước đây.

Giải pháp là loại bỏ <appdef>hoàn toàn một phần. Khởi động lại cả Ứng dụng xem trước và Karabiner sau khi xóa thành công.

Tôi private.xmltrông như thế này vào lúc này:

<?xml version="1.0"?>
<root>
    <!-- <appdef> -->
        <!-- <appname>PREVIEW</appname> -->
        <!-- <equal>com.apple.Preview</equal> -->
    <!-- </appdef> -->
    <item>
        <name>Vi Navigation in Preview</name>
        <identifier>private.preview.vinav</identifier>
        <only>PREVIEW</only>

        <appendix>Navigate using the HJKL keys</appendix>
        <autogen>__KeyToKey__ KeyCode::J, KeyCode::CURSOR_DOWN</autogen>
        <autogen>__KeyToKey__ KeyCode::K, KeyCode::CURSOR_UP</autogen>
        <autogen>__KeyToKey__ KeyCode::H, KeyCode::CURSOR_LEFT</autogen>
        <autogen>__KeyToKey__ KeyCode::L, KeyCode::CURSOR_RIGHT</autogen>
    </item>
</root>
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.