Tạo các liên kết có thể nhấp trong thiết bị đầu cuối


13

Có thể xử lý / chuyển đổi đầu ra từ grep (hoặc tạo grepkết quả giống như, tìm chuỗi và / hoặc mẫu trong tệp, theo cách khác) để kết quả tìm kiếm có thể được sử dụng làm liên kết (nghĩa là siêu liên kết) để mở trình soạn thảo? Tôi muốn nhấp vào một trong kết quả của tôi và mở trình soạn thảo của tôi tại dòng đã chọn.filename:line_numbergrep

$ grep "mServiceIntent" -R ./src/
./src/example/PhotoThumbnailFragment.java:67    private Intent mServiceIntent;
./src/example/PhotoThumbnailFragment.java:194        mServiceIntent =
./src/example/PhotoThumbnailFragment.java:203        getActivity().startService(mServiceIntent);

Tôi biết cách đăng ký giao thức trong hệ thống để mở trình soạn thảo. Ví dụ: tất cả các URL như sblm://*trong hệ thống của tôi mở trong Văn bản tuyệt vời. Câu hỏi của tôi là: làm thế nào để tạo liên kết tùy chỉnh trong thiết bị đầu cuối guake (hoặc có thể nó không phụ thuộc vào trận động đất và hoạt động cho chương trình thiết bị đầu cuối mặc định)?

Lưu ý: câu hỏi liên quan (?), Có ứng dụng đầu cuối nào cho phép tên tệp có thể nhấp được không? , mơ hồ về chi tiết triển khai / giải pháp cụ thể và không đề cập rõ ràng yêu cầu của tôi để chuyển trực tiếp đến một dòng được xác định trong tệp.


Câu trả lời:


4

Phiên bản mới hơn của thiết bị đầu cuối Gnome hiện hỗ trợ các siêu liên kết với mục tiêu tùy chỉnh thông qua các chuỗi thoát nhất định. Thử

echo -e '\e]8;;http://example.com\aThis is a link\e]8;;\a'

Mở những tác phẩm này giống như cách mô tả trong câu trả lời của Stephen Kitt. Để giải quyết vấn đề bạn mô tả, bạn có thể sử dụng tập lệnh sed (hoặc một số phương pháp nâng cao hơn) để dịch tên tệp thành siêu liên kết. Đối với tôi, công việc sau đây (trong bash và giả sử cách trên để tạo siêu liên kết hoạt động)

grep "mServiceIntent" -R ./src/ | sed -e $'s#^\(.*\):#\e]8;;file:'`pwd`/$'\\1\a\\1\e]8;;\a#'

(Tôi chưa cài đặt cao siêu nhưng rất có thể bạn chỉ cần thay đổi tệp: thành slbm :)

Xem thêm: https://gist.github.com/egmontkob/eb114294efbcd5adb1944c9f3cb5feda (Điều này dựa trên câu trả lời của tôi tại Terminal - tạo siêu liên kết )


Xem thêm Purpleidea.com/blog/2018/06/29/hyperlinks-in-gnome-terminal cho urlencodehàm bash giúp mọi thứ hoạt động chính xác khi bạn có khoảng trắng hoặc các ký tự thú vị khác trong tên thư mục / tệp.
Marius Gedminas

3

Nó là một cái máy vi tính; bạn có thể lập trình nó :-)

Để làm cho một cái gì đó "có thể nhấp" có nghĩa là lập trình một ứng dụng GUI hoặc bằng cách nào đó sử dụng HTML. Cách đơn giản nhất mà tôi có thể nghĩ đến là tạo một trang HTML của HREFs và chuyển đầu ra sang, giả sử, lynx , định cấu hình trình duyệt để mở emacs một cách thích hợp.

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.