查找if和p的括号
好的,大家都知道,使用带有AutoLISP的IDE可以输入一个结束paren,光标将快速闪烁在刚键入的开始paren对应的位置。现在想象一下,这对排列之间的距离远大于监视器的垂直高度。光标仍然在开始处闪烁,但随后又出现在您正在键入的位置,我不知道它在哪里闪烁。我发现,通过小心地将双手放在键盘上,在恰好按下PrintScreen键的瞬间。然后,通过从剪贴板粘贴到绘图中,我可以经常看到光标在打开页面的位置以及是否正确。但这种方法有时是碰运气的。有没有办法让屏幕暂停足够长的时间,让我真正看到开场白的位置?
更新:好的,我在论坛上找到了这个。有一些好东西,但还有其他方法吗。
(\u vl-balance-括号1 2000)=>这看起来像这里的票! 这可能对chkbrk有帮助。lsp在几年前写的look in out file
(defun c:chkbrk (/ opf bkt chekdfile rdctl wkfile currentln wln ltr ncln)
(setvar "cmdecho" 0)
(prompt "\nlook at end of line")
;(setq chekdfile (getstring "enter name of file :"))
(SETQ chekdfile (getfiled "Enter file name:" " " "LSP" 4))
(setq opf (open chekdfile "r"))
(setq bkt 0)
(setq blkl 0)
(setq rdctl 1)
(setq wkfile (open "c:\temp\wow.lsp" "w"))
(setq currentln "a")
(while (/= blkl 6)
(setq currentln (read-line opf))
(if (= currentln nil)(setq currentln ""))
(if (= currentln "")(setq blkl (+ 1 blkl))(setq blkl 1))
(setq wln currentln)
(while (/= wln "")
(setq ltr (substr wln 1 1))
(setq wln (substr wln 2))
(cond ((= (ascii ltr) 34) (if (= rdctl 0)(setq rdctl 1)(setq rdctl 0)))
((and (= ltr "(")(= rdctl 1))(setq bkt (+ bkt 1)))
((and (= ltr ")")(= rdctl 1))(setq bkt (- bkt 1)))
((and (= ltr ";")(= rdctl 1))(setq wln ""))
;(t (prompt ltr))
)
)
(setq ncln (strcat currentln ";" (itoa bkt)
(princ (itoa bkt))
(if (= rdctl 0) "string open" "")))
(if (/= currentln "")(write-line ncln wkfile))
)
(close wkfile)
(close opf)
(prompt (strcat "open brakets= " (itoa bkt) "."))
)
(setq ang1 nil
pt1 nil
pt2 nil
pt3 nil
pt4 nil
pt5 nil)
(princ)
您可以将光标定位在括号上,然后按+或+(方括号),光标将跳转到配对。如果它没有跳转,则该括号没有正确平衡。 谢谢大家。。。这些都是很棒的信息。我正在控制台上使用(_vl-balance-括号1 2000)命令,这使生活变得更加轻松。今天早上我正在编写的代码将近4000行,这使得LISP(丢失在愚蠢的括号中)更容易找到我的方法。 在Visual LISP IDE中,双击括号外将高亮显示由括号括起的所有表达式。 李,我更喜欢这个主意。我使用的上面的_vl语句有一个明显的缺点。它减慢了输入代码的速度。我认为这只是当你检查括号对时,但它在任何时候都会强制执行更长的延迟,这使得键入速度慢得多。 Bill a问题4000行代码是分解成defuns的,如果不是这样的话,它可能会使调试变得更容易,我永远不会编写这样大小的连续单开始和结束lisp程序。我有数千行代码,多年来建立了一些库,这样你就可以对自动加载的外部defuns进行调用,这样更容易控制,并且都经过了长时间的调试。我不是一个程序员,但专业人士也会将代码分解成更小的例程连接在一起。无论如何,这是我的观点,其他人可能不同意。快速查看了我的架构附加96个lisps BIGAL,不,4000行程序分为多个(defuns),我现在正在处理的一个有31个(defuns)。在过去的一年里,我一直在为这些人开发我现在有9个程序,最小的大约2300行,较大的超过4000行。我编写和格式化代码,使其在一行中包含比IDE默认格式化更多的内容。如果我这样做了,它可能会变成更像5000或6000行。
几个月前,我开始将一些(defuns)分解到它们自己的文件中,并在需要时加载它们。这在进行更改或修复bug时节省了很多时间,因为我可以在一个地方进行更改,而不必编辑多达9个不同的程序。
这里制造的组件有很多不同的功能,用户可以选择。如果这个,如果那个,如果这个而不是那个。。。等真正的挑战。
上个月,我刚刚为他们完成了一个web界面,它允许销售人员和他们的许多客户在几秒钟内绘制出图纸。现在,这个系统绘制的图纸数量远远超过了设计师在某一天所能绘制的图纸数量。例如,昨天,该系统生成的图纸超过了所有8位设计师在三天10小时内所能完成的数量。最棒的是没有人被解雇。这只意味着那些乏味的单元正飞出大门,只有真正复杂的产品才能交给设计师。 比尔听起来像是你的顶梁柱。我们的主要重点是要有性病,因此外部的定义这些处理,对于一个特定的对象,你应该有正确的层次和颜色。然后每个人都有一个Lisp程序的部分。一些lisp部分有1-2个子选项,当我们使用菜单或键盘命令时,lisp基本上是一个cond,在lisp中称为defun,所以添加一个defun添加一个简单的cond,菜单^c^c^p(setq部分“part56”)(load“endwaller”)
这听起来像是你在张贴一些步骤的图片。 比格尔,我的情况是创建一个完全自动化的过程。从头到尾绝对没有用户输入。我很想发布一些细节,但我发誓要保密保密保密协议。它正在按分数绘制图纸。本周我们已经超过100人,我们还有两天的时间。
页:
[1]