Vimperator - ExtendedHit tùy chỉnh để khởi chạy tập lệnh / chương trình trên regex phù hợp


2

Tôi muốn xác định một phần mở rộng tùy chỉnh trong vimperator rằng:

  1. Phù hợp với mô hình regex
  2. Các nguồn cấp dữ liệu khớp với tập lệnh như vậy: ~ / bin / script regex-match-as-arg

Tôi nên bắt đầu giải quyết vấn đề này ở đâu? Liệu vimperator có các tính năng "vimperator-script" tạo điều kiện thuận lợi cho việc này không?

Cảm ơn.

Câu trả lời:


3

Một số gợi ý (chơi chữ không có ý định).

Thêm chế độ gợi ý mở rộng mới:

  • Bạn có thể xác định chế độ với hints.addModechức năng.
  • Bạn có thể đặt mẫu để thêm gợi ý cho ehttùy chọn, cần có bộ chọn XPath. (Trong Pentadactyl, bạn cũng có thể sử dụng các bộ chọn CSS, nhưng tôi không chắc về Vimperator - không có đề cập đến chúng trong các trang trợ giúp)

Đây là một ví dụ đơn giản tôi sử dụng trên Jisho.org để chuyển đến trang thông tin cho một chữ Hán bằng cách sử dụng ;k.

js set eht+=[k]:span[class=text]
hints.addMode('k','open kanji details',function(e) { liberator.open(decodeURIComponent("http://jisho.org/search/" + e.textContent + "%2523kanji")); });

Phù hợp với một regex:

Tôi không chắc liệu Vimperator sử dụng XPath 1.0 hay 2.0 hay thậm chí nếu nó cho phép toàn bộ sức mạnh của các biểu thức XPath. Bản thân tôi chỉ thử những biểu hiện rất đơn giản. XPath 1.0 không cho phép biểu thức chính quy (vì vậy bạn phải thực hiện với chức năng mà nó cung cấp). Tuy nhiên, XPath 2.0 có hỗ trợ regex . Vì vậy, bạn thể có thể sử dụng chúng. (Đôi khi tôi muốn xem xét điều này.)

Ra mắt một kịch bản:

Bạn có thể làm điều này với :!lệnh. Các lệnh "ex" tùy ý có thể được khởi chạy từ JS bằng cách sử dụng liberator.execute(), vì vậy để khởi chạy một tập lệnh shell, bạn có thể chuyển một hàm như thế này vào hints.addMode:

function(e) { liberator.execute("!~/bin/script " + e.textContent) }

Lưu ý về Pentadactyl.

Mọi thứ ở đây đều áp dụng như nhau cho Pentadactyl, ngoại trừ trong API JS, bạn phải thay thế liberatorbằng dactyl.

Tôi sẽ cố gắng xem xét điều này một số sau.

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.