先定义一个排序表,然后根据该表中位置排序就是了。
第一个是未定义项前置,第二个是未定义项后置
示例:(tt1 '("F" "H" "S" "T" "A" "B" "1" "2"))
 - (defun tt1 (lst / defLst)
- (setq defLst '("N" "M" "L" "K" "J" "I" "H" "G" "F"
- "E" "D" "C" "B" "A" "Z" "Y" "X" "W"
- "U" "V" "O" "P" "Q" "R" "S" "T"
- )
- ) ;_默认的排序方式,根据你的需要定义
- (vl-sort lst
- '(LAMBDA (a b)
- (< (vl-position a defLst)(vl-position b defLst))
- )
- )
- )
 - (defun tt1 (lst / defLst)
- (setq defLst '("N" "M" "L" "K" "J" "I" "H" "G" "F"
- "E" "D" "C" "B" "A" "Z" "Y" "X" "W"
- "U" "V" "O" "P" "Q" "R" "S" "T"
- )
- ) ;_默认的排序方式,根据你的需要定义
- (vl-sort lst
- '(LAMBDA (a b)
- (> (length (member a defLst)) (length (member b defLst)))
- )
- )
- )
|