Bất kỳ cách nào để có được danh sách các hàm được định nghĩa trong zsh (như lệnh bí danh cho bí danh)


18

Tôi có thể gõ

alias

và lấy danh sách các bí danh đã xác định trong zsh

Làm thế nào tôi có thể nhận được một danh sách các tên hàm được định nghĩa trong zsh?

Khi tôi nhập "hàm", cửa sổ shell của tôi bị treo sau khi hiển thị nhiều hàm, luôn kết thúc tại

__rvm_checksum_none () {
    [[ -z "${_checksum_md5:-}" && -z "${_checksum_sha512:-}" ]]
}
__rvm_checksum_read () {

Điều cực kỳ khó chịu là điều này sẽ không thoát khỏi ctrl-c (sử dụng thiết bị đầu cuối AND2).

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

Hình ảnh của thiết bị đầu cuối có cùng một vấn đề: nhập mô tả hình ảnh ở đây


Thông thường danh sách được thực hiện với functionsnội dung. Bạn có nhận được một đầu ra nếu bạn xác định hàm có vấn đề (?) Trước tiên unfunction __rvm_checksum_readkhông?
mpy

Nếu tôi muốn lấy danh sách hàm (không phải khai báo đầy đủ) thì sao? Nếu tôi hủy bỏ phương thức đó, một __rvm_curl khác cũng có vấn đề.
justingordon

Xem câu trả lời của tôi. Nhưng hành vi bạn mô tả nghe có vẻ lạ ... vì vậy chỉ cần quan tâm: Danh sách đầy đủ có hoạt động với trình giả lập thiết bị đầu cuối khác không? Bạn có thể sử dụng các chức năng có vấn đề thành công?
mpy

thiết bị đầu cuối có cùng một vấn đề như mục 2. Câu trả lời dưới đây là TUYỆT VỜI. Trong khi tôi muốn biết lý do tại sao thiết bị đầu cuối bị treo chỉ bằng cách sử dụng lệnh 'hàm' (ngay cả khi được dẫn đến ít hơn), điều đó có quan trọng không? Bất kỳ lý do này sẽ gây ra vấn đề?
justingordon

Tôi nghĩ rằng có một số chuỗi ký tự thực sự kỳ lạ trong các chức năng này làm xáo trộn thiết bị đầu cuối. Để thu hẹp điều này, bạn có thể chuyển hướng đầu ra thành một tệp functions > /tmp/foo. Nếu đó là một vấn đề zsh thì điều này cũng sẽ có vấn đề. Khi đó là một vấn đề thiết bị đầu cuối thì không nên. Nếu vấn đề của bạn có thể ảnh hưởng đến việc sử dụng hàng ngày - tôi không thể nói, xin lỗi.
mpy

Câu trả lời:


19

Với gian lận bằng cách nhìn vào _functionschức năng hoàn thành, tôi có thể trả lời câu hỏi của bạn:

Các hàm được lưu trữ trong một mảng kết hợp functions, vì vậy để chỉ lấy các tên hàm ( kcờ cho các phím ) theo thứ tự bảng chữ cái ( ocờ để đặt hàng ), bạn có thể sử dụng

print -l ${(ok)functions}
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.