25
A
回答
18
我的意思是說,當你將某個函數綁定到一個鍵時,你需要包含一些你需要的函數的可調用代碼 - 比如從CTRL-u獲得參數。
看一看CTRL-h f interactive
的詳細信息:
interactive is a special form in `C source code'. (interactive args) Specify a way of parsing arguments for interactive use of a function. For example, write (defun foo (arg) "Doc string" (interactive "p") ...use arg...) to make ARG be the prefix argument when `foo' is called as a command. The "call" to `interactive' is actually a declaration rather than a function; it tells `call-interactively' how to read arguments to pass to the function. When actually called, `interactive' just returns nil. The argument of `interactive' is usually a string containing a code letter followed by a prompt. (Some code letters do not use I/O to get the argument and do not need prompts.) To prompt for multiple arguments, give a code letter, its prompt, a newline, and another code letter, etc. Prompts are passed to format, and may use % escapes to print the arguments that have already been read.
23
只是爲了澄清(它是在引用文檔that Charlie cites)(interactive)
不僅僅是鍵綁定功能,但對於任何功能。沒有(interactive)
,它只能以編程方式調用,而不是從M-x
(或通過鍵綁定)調用。
編輯:注意,只是加入「(互動)」的功能不一定會使其工作方式,無論是 - 可能有許多原因,功能都沒有互動。範圍,依賴關係,參數等。
12
更值得一提的是,interactive
在交互式上下文中的主要目的(例如,當用戶使用鍵綁定調用函數時)讓用戶指定函數參數,否則該函數參數只能以編程方式給出。
例如,考慮函數sum
返回兩個數字的和。
(defun sum (a b)
(+ a b))
您可以通過(sum 1 2)
調用它,但你只能在一個Lisp程序做(或在REPL)。如果在函數中使用interactive
特殊形式,則可以向用戶詢問參數。
(defun sum (a b)
(interactive
(list
(read-number "First num: ")
(read-number "Second num: ")))
(+ a b))
現在M-x sum
會讓你在minibuffer輸入兩個數字,你仍然可以做(sum 1 2)
爲好。
interactive
應該返回將用作參數列表,如果所謂的交互功能的列表。
2
(交互式)用於通過M-x或鍵盤綁定與用戶交互的功能。
的Mx描述功能RET互動RET關於如何使用它,包括參數搭上弦,整數,緩衝名稱的詳細信息等
相關問題
- 1. #[...]在emacs-lisp中意味着什麼?
- 2. LISP中的反撥意味着什麼?
- 3. 「 - 」在Excel函數中意味着什麼
- 4. 在php中函數意味着什麼?
- 5. 「+」在+函數($)中意味着什麼?
- 6. 意味着什麼::在函數調用
- 7. - >函數原型意味着什麼?
- 8. 什麼是!在這個Ruby函數中意味着什麼
- 9. 在AngularJS中結尾意味着什麼double意味着
- 10. 什麼%*%意味着R中
- 11. 什麼呢##意味着在$ {}
- 12. 什麼===在PHP意味着
- 13. 什麼。意味着在PHP?
- 14. 溢出意味着什麼?
- 15. 在numpy代碼中意味着什麼?
- 16. 用交互式Emacs Lisp函數替換文本幫助
- 17. 什麼呢JDBC:HSQLDB:hsqlTempFiles意味着
- 18. 輸入參數'd'在D3.js函數中意味着什麼?
- 19. Swift - 在函數參數中意味着什麼?
- 20. !()在數據構造函數中意味着什麼?
- 21. '\'在JavaScript函數參數中意味着什麼?
- 22. 雙參數化函數在scala中意味着什麼?
- 23. 這個表示法在expressoin函數中意味着什麼:* ~~
- 24. * | *這意味着什麼CSS?
- 25. 什麼(.browser-default).valid意味着什麼?
- 26. 如何從另一個Emacs Lisp函數調用具有前綴參數的交互式Emacs Lisp函數?
- 27. 〜=是什麼。在Stata意味着什麼?
- 28. matlab中的參數意味着什麼?
- 29. 互動的Emacs Lisp函數交換兩個詞互相
- 30. 「無格式輸入函數」究竟意味着什麼?
Török,如果我要問另一個之前測試的參數值題? http://stackoverflow.com/questions/25447312/emacs-lisp-how-to-use-interactive-for-conditional-arguments – yPhil 2014-08-22 12:52:31