Tôi muốn một chức năng tương tác nhắc cho một thư mục hiện có, nhưng thay vì bắt đầu từ thư mục mặc định, tôi muốn một hàm mặc định đường dẫn mặc định như '~/should/start/here/always/in/this/function' bắt đầu từ khi nào bằng cách sử dụng (interactive "D")
làm cách nào tôi có thể đạt được điều này? Suy nghĩ đầu tiên của tôi là tạo một hàm khác mà trước tiên đặt default-dir và sau đó gọi hàm ban đầu của tôi, nhưng điều đó có vẻ không đúng và tôi không chắc chắn về cách tương tác sẽ được nhắc trong trường hợp đó.Làm cách nào để tôi có thể đặt đường dẫn mặc định cho lựa chọn thư mục tương tác để bắt đầu với một trình gỡ lỗi elisp?
6
A
Trả lời
9
Vì bạn đang viết những dòng này cho mình, bạn có thể làm một cái gì đó như thế này:
(defun choose-directory (directory)
"sample that uses interactive to get a directory"
(interactive (list (read-directory-name "What directory? "
choose-directory-default-directory)))
(message "You chose %s." directory))
(defvar choose-directory-default-directory "/home/tjackson/work/data"
"Initial starting point.")
Trong đó sử dụng interactive
với một biểu thức lisp gọi read-directory
để có được một tên thư mục (bạn có thể muốn thêm đối số bổ sung, kiểm tra liên kết/tài liệu).
Linh cảm ban đầu của bạn sẽ hoạt động tốt, tuy nhiên, như bạn nghĩ, không hoàn toàn sạch sẽ. Tuy nhiên, nó hoạt động tốt khi bạn không muốn hoặc không thể sửa đổi hàm có hành vi bạn muốn thay đổi. Tôi đã đưa giải pháp đó vào bên dưới để cho bạn biết cách bạn đạt được nó (phần duy nhất của câu đố bạn không đề cập đến là call-interactively
):
;; original version of choose-directory, calling (interactive "D")
(defun choose-directory (directory)
"sample that uses interactive to get a directory"
(interactive "DWhat directory? ")
(message "You chose %s." directory))
(defun wrap-choose-directory()
(interactive)
(let ((default-directory choose-directory-default-directory))
(call-interactively 'choose-directory)))
Các vấn đề liên quan
- 1. Làm cách nào để bắt đầu gỡ lỗi?
- 2. lựa chọn formtastic, một mục được chọn làm mặc định
- 3. Đặt thư mục cho đường dẫn lớp
- 4. Tôi làm cách nào để sử dụng - tương tác với định dạng git-patch?
- 5. Hoàn tác "Đặt làm trang bắt đầu"
- 6. Thay đổi Đường dẫn 'nhà riêng' mặc định trong Erlang để giải quyết RabbitMQ Bắt đầu Lỗi
- 7. Chọn đường dẫn thư mục với savefileDialog
- 8. Ghi đè thư mục cài đặt mặc định cho Python bdist Trình cài đặt Windows
- 9. VS2010: "Không thể bắt đầu gỡ lỗi"
- 10. Đặt trình duyệt mặc định khi gỡ lỗi WPF?
- 11. Lựa chọn Django. Làm cách nào để đặt tùy chọn mặc định?
- 12. Làm cách nào để đặt mục đã chọn mặc định trong trình đơn thả xuống Đường ray?
- 13. Làm cách nào để tôi thay đổi bắt đầu trong đường dẫn của lối tắt cho nsis?
- 14. Làm cách nào để chuyển 'vị trí cài đặt' mặc định cho trình khởi động RtfLicense?
- 15. Python - làm thế nào tôi có thể thay đổi đường dẫn mặc định khi cài đặt mô-đun?
- 16. Trình gỡ lỗi XCode hút; lựa chọn thay thế?
- 17. Cách tạo chức năng elisp tương tác với các đối số tùy chọn
- 18. Thao tác với đường dẫn thư mục trong Delphi?
- 19. loại đường dẫn thư mục với argparse
- 20. Có thể đặt vị trí mặc định cho gói R thay vì cho người dùng lựa chọn không?
- 21. Làm cách nào để có được đường dẫn tương đối của các thư mục trong dự án Android của tôi?
- 22. Đặt thư mục mặc định của bảng điều khiển tương tác Pydev?
- 23. Làm cách nào để đặt đường dẫn cài đặt mặc định bằng trình cài đặt cửa sổ?
- 24. Làm cách nào để tôi có thể gỡ lỗi các trình bổ sung MonoDevelop với MonoDevelop?
- 25. Infragistics UltraGrid: làm thế nào để loại bỏ lựa chọn mặc định của hàng đầu tiên
- 26. Tôi làm cách nào để C# tương tác với Javascript?
- 27. Làm thế nào để viết thư chỉ để gỡ lỗi đầu ra với Enterprise Library Logging?
- 28. Hướng dẫn trình gỡ lỗi tốt cho người mới bắt đầu
- 29. Làm cách nào tôi có thể bắt đầu một cá thể tác vụ tiếp tục?
- 30. Làm cách nào để mở tệp có đường dẫn tương đối trong Linux?