如何实现按回车键接受指定的默认值?
(setq Sel (getstring "你想干什么:[打开(Open)/关闭(Close)/保存(Save)] <S>:"))
按下回车键是空值,如何让它接受指定的默认值为“S” 呢?谢谢
本帖最后由 菜卷鱼 于 2022-3-8 08:45 编辑
长老问这么难的问题,我不知道该不该回答
(if (= sel "")(setq sel "S"))
但是遇到这种选择性关键字的,我会用 getkword
(initget 128 "Open Close Save")
(setq Sel (getkword "你想干什么:[打开(Open)/关闭(Close)/保存(Save)] <S>:"))
(if (null sel)(setq sel "Save"))
我以为一条代码就可以实现呢,我学艺不精! 长老是其他语言的高手 lisp不熟悉
(defun Ukword (bit kwd msg def / inp)
(if (and def (/= def ""))
(setq msg (strcat "\n" msg "<" def ">: ") bit (* 2 (fix (/ bit 2))))
(setq msg (strcat "\n" msg ": "))
)
(initget bit kwd)
(setq inp (getkword msg))
(if inp inp def)
)
(or Sel(setq Sel "S"))
(setq Sel (Ukword 1 "O C S" "你想干什么:[打开(Open)/关闭(Close)/保存(Save)" Sel))
xyp1964 发表于 2022-3-8 22:08
有点深奥呀,学习起来有点吃力. 凑个数。
(initget 128 "Open Close Save")
(setq Sel (cond ((getkword "你想干什么:[打开(Open)/关闭(Close)/保存(Save)] <S>:"))("Save")))
edata 发表于 2022-3-9 20:48
凑个数。
老哥,简明扼要呀。太感谢了!
页:
[1]