我想創建一個函數,它會詢問用戶文件的路徑,然後根據文件是否存在做一些事情。我知道(interactive "s")
,我嘗試過使用它,但按TAB並不建議可能的路徑名稱。 如何提示路徑並將其存儲在變量中?如何在emacs lisp中有一個自動完成的輸入字段?
1
A
回答
2
您正在尋找的功能是read-file-name
。嘗試按C-h f並輸入read-file-name
以閱讀文檔。
下面是一些示例代碼讀取一個文件名:
(defun foo()
(interactive)
(setq file (read-file-name "File: "))
(message "You chose: %s" file))
3
下面的代碼展示瞭如何做到這一點(與代碼替換錯誤sexps其中文件存在或不處理的情況):
(defun do-stuff-with-file (filename)
"Do stuff with a file."
(interactive (list (read-file-name "Do stuff with file: ")))
(when (file-exists-p filename)
(error "%s already exists" filename))
(when (not (file-exists-p filename))
(error "%s doesn't exist" filename)))
6
有了互動,你應該使用f
對現有的文件名,或者在你的情況,F
一個可能不存在的一個:
(defun foo (filename)
(interactive "F")
(if (file-exists-p filename)
...
+4
也值得注意;如果你想要一個提示,就直接粘貼到交互格式字符串上:'(interactive「FFile:」)' – jrockway
相關問題
- 1. Emacs lisp - 自動完成書籤名稱
- 2. Vimperator輸入字段自動完成
- 3. emacs - 在Emacs Lisp模式下自動完成
- 4. jQuery自動完成,如何綁定到兩個輸入字段?
- 5. 自動完成只工作了第一個輸入字段
- 6. jQuery自動完成:如何在向其中一個數據輸入數據時完成多個字段?
- 7. 如何自動完成所有輸入
- 8. jQuery的自動完成 - 獲取自動完成輸入字段的ID
- 9. jquery自動完成輸入字段沒有任何反應
- 10. 輸入文本字段自動完成(自動填充),在Chrome
- 11. jQuery自動完成在字段中輸入錯誤的值
- 12. Jquery:創建一個字典來自動完成所有輸入
- 13. Qt Webkit - 自動完成一個輸入
- 14. jQuery自動完成:在值輸入字段中縮小列表
- 15. Emacs自動完成
- 16. ASP.NET MVC自動完成 - 依賴多個輸入字段
- 17. 必填表格中的自動完成輸入字段
- 18. 如何關閉所有輸入字段的自動完成功能?
- 19. Twitter動態輸入字段上的Typeahead自動完成功能
- 20. 奇怪的自動完成導致emacs +通用lisp
- 21. jQuery UI自動完成 - 使點擊/輸入移動到下一個字段
- 22. 如何使用Google的Places自動完成api在SugarCRM中創建一個自動完成的地址字段
- 23. 自動完成獲取第一個輸入字符的數據
- 24. Emacs:自動完成的C + +
- 25. 動態添加輸入字段和自動完成
- 26. 自動完成:在選擇後清理輸入字段
- 27. 動態表單輸入字段和使用AJAX自動完成
- 28. 自動完成對動態輸入字段
- 29. 如何在AngularJS的輸入字段中自動注入第一個字符?
- 30. 如何在使用jQuery的UI自動完成時引用輸入字段?
謝謝!這正是我需要:) – Geo
不,你想@ scottfrazer的答案。不要在Emacs裏面重新實現Emacs,因爲你不能用M-x描述函數交互:) – jrockway