Xóa các mục từ menu ngữ cảnh của trình tìm kiếm?


14

Có ai biết làm thế nào tôi có thể loại bỏ các mục mà tôi không bao giờ sử dụng từ menu ngữ cảnh?

ví dụ: Ghi "yadda yadda" vào đĩa ...

nhập mô tả hình ảnh ở đây


/System/Library/CoreServices/Finder/Contents/Resources/English.lproj/Menubar.nib có tất cả các entry nhưng tôi không biết làm thế nào để xóa chuỗi

Câu trả lời:


5

Bạn thực sự có thể xóa các mục MacOS gốc khỏi menu ngữ cảnh .... nhưng thật không may, nó không xuất hiện bạn có thể xóa các mục bạn đã chỉ ra ở trên. Bất kể, nếu bạn muốn xem, hãy đến

Hệ thống Prefs> Bàn phím> Phím tắt> Dịch vụ

và sau đó bỏ chọn các mục bạn không muốn trên menu.

nhập mô tả hình ảnh ở đây

Thật không may là bạn không thể loại bỏ tất cả chúng. Nhưng nó ít nhất có thể giúp bạn thoát khỏi một số lộn xộn.


Kiểm tra giải pháp của tôi - nó cho phép bạn loại bỏ mục menu ngữ cảnh mặc định của Finder chính xác như các yêu cầu OP.
tổng

5
  • Tôi đã tìm ra một giải pháp cho việc này (cho đến nay) hoạt động cho các mục bối cảnh trình đơn bên phải Finder mặc định như Burn to diskBurn "^1" to disc. Đây chính xác là mục tiêu của yêu cầu OP.

  • một loại khác của trình đơn ngữ cảnh xuất phát từ việc cài đặt Dịch vụ dưới dạng Applescript hoặc các plugin thực thi.

    Đó là những đơn giản để thoát khỏi. Dù chúng được đặt tên là gì, chỉ cần tìm kiếm đĩa của bạn cho chuỗi đó. tức là Inject Potatos!dịch vụ cuối cùng sẽ được tìm thấy trong một tập tin có tên Inject Potatos!.<something>. Có thể có một số hình dạng và kích thước khác của chúng nhưng chúng là vấn đề dễ giải quyết và nằm ngoài phạm vi từ bài viết của OP.

  • Đối với người dùng không biết tiếng Anh: Giải pháp này là ngôn ngữ bất khả tri. Chúng tôi tận dụng các hàm nội địa hóa để chuyển đổi các chuỗi mặc định + đối số thành các chuỗi được bản địa hóa với các biến mở rộng.

Làm thế nào nó hoạt động giải thích với một loạt các phỏng đoán hoang dã

Tôi không chắc chắn về phần bên trong Objective-C của nó, nhưng tôi nghi ngờ điều gì đó tương tự như điều này đang xảy ra ..

snprintf(str, 0, "", var1, var2, ..);

Không có chuỗi định dạng (tức là ""), vì vậy bạn luôn kết thúc với strđộ dài bằng không.

Nếu str có độ dài bằng 0, trình phân giải nội địa hóa sẽ đi ngược lên trên cây để tìm mẫu định dạng tổ tiên hoạt động. Miễn là bạn loại bỏ tất cả các tổ tiên của lớp thông báo đó - cuối cùng nó sẽ xả hết các mẫu và trả về một chuỗi có độ dài bằng không cho người yêu cầu bản địa hóa.

Trình kết xuất trình đơn ngữ cảnh nhận ra rằng nó có độ dài bằng 0 và bỏ qua nó khỏi các mục danh sách trình đơn ngữ cảnh và bạn có được một menu ngữ cảnh mỏng hơn.

QUAN TRỌNG

  • Nếu bạn không biết bạn đang làm gì - bạn có thể làm rối Finder. Sử dụng danh sách kiểm tra này để xác minh bạn đã có kung-fu.
  • Hãy thoải mái khi sử dụng vỏ
  • Biết cách sử dụng trình soạn thảo văn bản gốc như vim, nano, emacs, v.v.
  • Luôn sao lưu mọi tệp bạn chỉnh sửa TRƯỚC KHI bạn chỉnh sửa chúng.
  • Thực hiện MỘT thay đổi cùng một lúc, tiêu diệt Finder, xác minh mọi thứ có vẻ tốt, goto 10. Nếu bạn thực hiện một loạt các thay đổi và điều đó sẽ khiến mọi thứ trở nên khó khăn, bạn sẽ phải hoàn nguyên mọi thay đổi của mình.
  • Tôi biết rằng định dạng NSString khác với C, nhưng nếu bạn không phải là người của Objective-C và cần suy nghĩ về điều đó trong printf, thì các ví dụ sau đây về cơ bản giống nhau cho mục đích của bài tập này.

    • Mẫu Obj-C: "Throw ^1 into the ^2"
    • mẫu printf : "Throw %s into the %s", arg1, arg2.

    Nếu bạn thực hiện sửa đổi và sau khi khởi động lại Finder, điều đó dường như không ảnh hưởng - bạn có thể sửa đổi chuỗi nội địa hóa ở một số khu vực khác ngoài menu ngữ cảnh nhấp chuột phải. Hoàn nguyên thay đổi của bạn, khởi động lại Finder và thử lại. Nếu bạn bỏ qua bước này, bạn có thể sẽ sửa đổi một cái gì đó ngoài menu ngữ cảnh và không nhận ra nó cho đến những ngày sau đó.

  • Hiểu rằng về cơ bản đây là một hack, nó có thể không hoạt động theo cách bạn muốn hoặc mong đợi nó. Đối với những gì đáng giá tôi đã chạy với những thay đổi này (và hơn thế nữa) trong ít nhất một vài tuần nay và không gặp phải ảnh hưởng xấu nào.


Ví dụ Trình đơn ngữ cảnh

Trước tiên, hãy xem hình ảnh 'trước' được lấy từ bài đăng của OP cho chúng ta thấy một menu ngữ cảnh Finder mặc định điển hình đầy phình to.

Menu ngữ cảnh tìm kiếm cồng kềnh

Khủng khiếp!

Phần lớn các thiết bị của Apple thậm chí không xuất xưởng với đầu ghi DVD nữa, nhưng vẫn Burn "^1" to discchiếm lĩnh bất động sản có giá trị.

Chưa kể đến không kém vô ích Quick Look, Duplicate, Make Alias, Copy ^1vv


Menu ngữ cảnh mới

Độ nóng mới

Tước xuống càng xa càng tốt. Hãy nhớ rằng, nếu chúng ta chọn một tệp, chúng ta sẽ có các mục menu Openvà mặc định Open with...

Bạn không mất gì trừ khi bạn bỏ qua nó.

Mọi thứ có thể được thực hiện khá thưa thớt nếu bạn muốn.


Hướng dẫn

  • Tìm tệp $ LANGUAGE.lproj mà bạn quan tâm. Trong trường hợp của tôi, tôi nói tiếng Anh.
  • cd /System/Library/CoreServices/Finder.app/Contents/Resources/English.lproj
  • chạy plutil -convert xml1 Localizable.strings, để chuyển đổi Localizable.strings thành tệp plistext XML
  • KIẾM MỘT BACKUP CỦA Localizable.strings . Nếu bạn làm hỏng thứ gì đó, bạn sẽ muốn có thể hoàn nguyên các thay đổi của mình.
  • Mở Localizable.strings trong trình chỉnh sửa mã / văn bản (vi, pico, emacs, jed, v.v. - TextEdit.app không thể lưu tệp * .txt và nên tránh)

    Tìm giá trị bạn muốn ẩn. Trong trường hợp của tôi, đó là 'Ghi "^ 1" vào đĩa', đó là khóa BC50_V2.

    <key>BN50_V1</key>
    <string>Burn to Disc…</string>
    <key>BN50_V2</key>
    <string>Burn “^1” to Disc…</string>
  • Nỗ lực đầu tiên của tôi là loại bỏ hoàn toàn cặp khóa-giá trị, nhưng điều này dẫn đến chuỗi BC50_V1 hiển thị trong menu của tôi.

    Một số chuỗi định dạng sẽ quay trở lại các mẫu chung hơn nếu chúng tồn tại. Trong trường hợp đó, bạn sẽ phải loại bỏ nhiều giá trị.

    Bạn có thể thấy hành vi này với BC50_V2 quay trở lại BC50_V1.

    Vì tôi muốn hoàn thành loại bỏ bất kỳ Burn...mục trình đơn nào, tôi cũng phải loại bỏ BC50_V1.

    Có các cặp giá trị khóa khác có nhiều dự phòng nhưng chúng thường khá dễ xác định vì chúng sẽ có cùng một tiền tố BC50_và các hậu tố tăng dần về số_V1, _V2, _V..

  • Bạn có thể chú thích các thay đổi của mình bằng cách giữ một bản sao của đoạn XML cặp khóa / giá trị ban đầu bên trong một nhận xét XML.

    Tôi tạo một bản sao của đoạn để thay đổi, nhận xét đoạn cũ bằng một mô tả và thực hiện các sửa đổi của tôi đối với bản sao. Bằng cách đó, tôi có thể dễ dàng hoàn nguyên và không phải sử dụng kiểm soát phiên bản hoặc có nhiều bản sao của tệp.

<!-- OLD Burn.*to Disc... 

    <key>BN50_V1</key>
    <string>Burn to Disc…</string>
    <key>BN50_V2</key>
    <string>Burn “^1” to Disc…</string>

-->

<!-- NEW Burn.*to Disc -->
<key>BN50_V1</key>
<string></string>
<key>BN50_V2</key>
<string></string>
  • Nếu bạn muốn thay đổi một chuỗi thay vì loại bỏ nó hoàn toàn - bạn cũng có thể làm điều đó. Các biến dường như có thể truy cập bằng cách sử dụng biểu mẫu ^<number>. Sau đó, số đại diện cho đối số thứ n. Nếu bạn cảm thấy đặc biệt là bạn có thể sửa đổi Burn "^1" to Discthành Archive "^1" forever utilizing an optical disk!.
  • Lưu các sửa đổi của bạn vào đĩa
  • killall -HUP Finder để khởi động lại Finder
  • open .để mở cửa sổ Finder trong thư mục làm việc hiện tại của bạn. Nhấp chuột phải để mở menu ngữ cảnh, xác minh mọi thứ có vẻ tốt.
  • Tất cả đã được làm xong! Dường như không có bất kỳ hình phạt nào khi giữ tệp Localization.strings ở định dạng plist văn bản, do đó bạn không cần phải lo lắng về việc chuyển đổi trong và ngoài định dạng nhị phân hoặc văn bản bất cứ khi nào bạn thực hiện thay đổi.

Chỉ cần một lưu ý trong El Capitan, bạn phải tắt chế độ toàn vẹn hệ thống để thay đổi các tệp cần thiết. stackoverflow.com/questions/32590053/ từ
macycron

Tất cả những nỗ lực của tôi trong việc sửa đổi hoặc thậm chí thực hiện sao lưu đều kết thúc bằng: Hoạt động không được phép. Không có vấn đề nếu tôi sử dụng sudo, su hoặc người dùng của tôi.
Carles Alcolea
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.