2010-11-18 21 views
10

Tôi muốn thêm tùy chọn vào menu ngữ cảnh của trình tìm kiếm gọi hg add %1 với% 1 là đường dẫn đầy đủ của tệp được chọn trong công cụ tìm.
Tất nhiên có nhiều trường hợp hữu ích hơn tôi có thể nghĩ đến, để thêm vào menu ngữ cảnh.
Có cách nào đơn giản để làm điều đó không liên quan đến việc cài đặt bất kỳ phần mềm của bên thứ ba hoặc mã hóa trong một ngôn ngữ biên dịch và xây dựng các plugin nhị phân?
Giống như tạo tập lệnh bằng trình chỉnh sửa tập lệnh và thả tập lệnh vào /Library/Contextual Menu Items/?Thêm tập lệnh vào trình đơn ngữ cảnh của trình tìm kiếm MacOS

+1

Vâng ... mở Automator, tạo ra một công việc tùy chỉnh. Từ 'Library' chọn' Utilites', sau đó kéo và thả 'Run shell script' vào luồng công việc. Đặt 'Nhập đầu vào' thành' Làm đối số'. Viết trong kịch bản của bạn: 'hg thêm $ 1'. Sau đó, File menu-> Save a Plugin, chỉ định tên, chọn plugin cho Finder, Save. Nhấp chuột phải vào tập tin, chọn More-> Autamator-> và tận hưởng. Nhưng không có gì liên quan đến lập trình ở đây ... – khachik

+0

@khachik: Nó vẫn còn liên quan đến phát triển. Bạn nên làm cho bình luận của bạn một câu trả lời. –

+0

@Philip Ok, nó là một câu trả lời thực sự ... – khachik

Trả lời

15

Tự động mở, tạo luồng công việc tùy chỉnh. Từ Library chọn Utilites, sau đó kéo và thả Run shell script vào quy trình làm việc. Đặt Pass input thành As arguments. Viết trong kịch bản của bạn: hg add $1. Sau đó, File menu->Save as a Plugin, chỉ định tên, chọn plugin for Finder, Save. Nhấp chuột phải vào tệp, chọn More->Autamator-><PLUGIN_NAME>.

+0

Wow, giải thích tuyệt vời.Mặc dù tôi không thể tìm cách lưu dưới dạng plugin, nhưng các tùy chọn duy nhất tôi nhận được là Luồng công việc hoặc Ứng dụng. Tôi đang chạy OS 10.6.4 – Petruza

+0

Không có mục 'Lưu dưới dạng Plugin ...' trong trình đơn 'Tệp' trong Trình tự động? Tôi đang chạy báo, và nó ở đó ... Tôi tin rằng cần phải có một cái gì đó tương đương ngay cả khi nó không có 'tiết kiệm như một plugin'. – khachik

+1

Vâng, tôi đã tìm thấy rằng bây giờ trong 10.6 nó được gọi là dịch vụ, nhưng nó là như nhau. Tôi quản lý để tạo ra nó, hoạt động tốt, cảm ơn! Bây giờ vấn đề là tôi cần phải 'cd' để đường dẫn của tập tin% 1, bạn có thể nói cho tôi biết làm thế nào để có được điều này? cảm ơn! – Petruza

17

Các bước đã thay đổi đối với Snow Leopard/10.6 + kể từ câu trả lời đúng của @ khachik. Để đảm bảo rõ ràng của nó, đây là những bước sau:

  • mở Automator
  • Tạo mới Service
  • Đặt hai trầm thả hàng đầu trên đầu để "Dịch vụ nhận được chọn files or folders trong Finder.app"
  • Đặt đầu vào Pass thành as arguments
  • Viết kịch bản của bạn (xem bên dưới để biết điều đó).
  • Save và chọn tên dịch vụ

cửa sổ Automator của bạn sẽ trông giống như sau: : screenshot

Bây giờ bạn có thể chọn nhiều file trong Finder và sau đó thực hiện dịch vụ của bạn từ các dịch vụ sub-menu .

Đối với tập lệnh của bạn, tôi nghĩ bạn muốn như sau. Điều này thay đổi thư mục của mỗi đối số rồi thêm nó. Tôi đang sử dụng vòng lặp for vì Finder cho phép bạn chọn nhiều tệp trong các thư mục khác nhau (có thể nằm trong các kho lưu trữ khác nhau).

for f in "[email protected]" 
do 
    cd $(dirname $f); hg add $f 
done 

Nếu bạn cho rằng họ là tất cả trong kho cùng bạn có thể làm điều này:

cd $(dirname $1); hg add [email protected] 
+1

Automator chạy tập lệnh trong môi trường thiết lập đường dẫn đến những gì được định nghĩa trong/etc/paths (và có thể một cái gì đó khác) NHƯNG nó không gọi ~/.bash_profile ---> Vì vậy, trong trường hợp bạn có một số đường dẫn xác định cần thiết để xác định kịch bản/chương trình bạn muốn thực thi từ kịch bản Automator của bạn, hoặc bạn phải sử dụng đường dẫn đầy đủ hoặc thêm "source ~/.bash_profile" (không có dấu ngoặc kép) làm dòng đầu tiên cho tập lệnh của bạn – georg

Các vấn đề liên quan