Có cách nào để lưu macro bàn phím trong bash không?


11

Tôi muốn lưu vĩnh viễn một macro bàn phím mà tôi đã ghi lại bằng C-x (C-x ). Có cách nào dễ dàng để "xem nguồn" cho macro mới được ghi của tôi để tôi có thể liên kết nó với phím tắt trong ~ / .inputrc không?

Tôi nghĩ dump-macrossẽ làm điều đó, nhưng dường như không ...


Chà, tôi sẽ bị nguyền rủa. Tôi không biết về tính năng này.
Charlie Martin

Tôi sử dụng gnome-terminal và gconf-Editor để cấu hình các phím tắt.
saeedgnu

Câu trả lời:


3

Hóa ra điều đó thực sự là không thể, nghĩa là, điều đó là không thể cho đến tối nay!

Vì tôi tò mò tìm hiểu về mã nguồn bash dù sao tôi cũng đã tiếp tục và thêm tính năng này :). Chúng tôi sẽ xem liệu các nhà bảo trì bash áp dụng bản vá của tôi .


1

Tốt nhất tôi có thể nghĩ là thử:

echo >>.inputrc '<ctrl-x e>'

Hoặc nếu macro có nhiều dòng hãy thử:

echo >>.inputrc <<EOF
<ctrl-x e>
EOF

Nếu bạn đã sử dụng các ký tự điều khiển, bạn có thể muốn đặt một sed vào đó để thay thế chúng bằng các mã thoát đúng cho inputrc.

Sau đó đi vào và chỉnh sửa dòng cuối cùng để có tiền tố và hậu tố phù hợp cho những gì bạn đang cố gắng đạt được ...


lưu một bước, chỉnh sửa .inputrc, vị trí đến bất cứ nơi nào bạn muốn macro và Cx e để 'nhập nó vào'. Nhưng vâng, tôi muốn nói rằng đây là cách tốt nhất, tất nhiên, bạn có thể đặt nó ở bất cứ đâu bạn muốn, đó chỉ là một loạt các tổ hợp phím. Nếu bạn không ở 'chế độ / địa điểm / chương trình phù hợp', bạn có thể sẽ bị nhập sai. Nhưng người ta sẽ mong đợi rằng nếu bạn không sử dụng macro ở đúng nơi, phải không?
lornix

0

Thêm dòng này vào .inputrc:

alias macro

oh, cảm ơn vì đã sửa nó, cái xấu của tôi: /
FALL3N

0

Dường như .inputrc cho phép bạn chỉ cần chỉnh sửa các lệnh của mình. Tôi cũng đã thử sử dụng dump-macrosnhưng không thể làm cho nó hoạt động cũng như không có nhiều tài liệu về nó. Có lẽ nó không hoạt động hoặc bị phản đối.

Nếu có một lệnh như xevcho các ràng buộc emacs, điều đó sẽ hữu ích. Trong mọi trường hợp, tôi nghĩ rằng cách tốt nhất của bạn là chỉnh sửa inputrc bằng cách sử dụng các hướng dẫn trong liên kết đầu tiên bên dưới ở cuối trang. Nó khá dễ làm.

Liên kết thứ hai là một tệp inputrc ví dụ để giúp tìm ra cách thiết lập các macro.

Bên cạnh đó, cũng có một lệnh tuyệt vời được gọi là bind -Psẽ liệt kê tất cả các macro của bạn.

http://www.gnu.org/software/bash/manual/html_node/Misiverse-Commands.html#Misiverse-Commands

Đây là một tệp inputrc ví dụ:

http://www.gnu.org/software/bash/manual/html_node/Sample-Init-File.html#Sample-Init-File


Vâng, toàn bộ vấn đề là không phải viết macro bằng tay, mà thay vào đó hãy in ra cái tôi vừa ghi lại ...
mgasms

hóa ra dump-macroschỉ đơn giản là in ra những gì macro hiện được xác định của bạn sẽ xuất ra.
mgasms
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.