mokson 发表于 2022-3-8 08:19:57

如何实现按回车键接受指定的默认值?



(setq Sel (getstring "你想干什么:[打开(Open)/关闭(Close)/保存(Save)] <S>:"))

按下回车键是空值,如何让它接受指定的默认值为“S” 呢?谢谢

菜卷鱼 发表于 2022-3-8 08:34:59

本帖最后由 菜卷鱼 于 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"))

mokson 发表于 2022-3-8 11:41:50

我以为一条代码就可以实现呢,我学艺不精!

guosheyang 发表于 2022-3-8 11:53:40

长老是其他语言的高手 lisp不熟悉

xyp1964 发表于 2022-3-8 22:08:32


(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))

mokson 发表于 2022-3-8 23:52:19

xyp1964 发表于 2022-3-8 22:08


有点深奥呀,学习起来有点吃力.

edata 发表于 2022-3-9 20:48:40

凑个数。

(initget 128 "Open Close Save")
(setq Sel (cond ((getkword "你想干什么:[打开(Open)/关闭(Close)/保存(Save)] <S>:"))("Save")))

mokson 发表于 2022-3-10 10:22:49

edata 发表于 2022-3-9 20:48
凑个数。

老哥,简明扼要呀。太感谢了!
页: [1]
查看完整版本: 如何实现按回车键接受指定的默认值?