Chuyển đến nội dung
Diễn đàn CADViet
lyky

How to use Visual LISP Editor

Các bài được khuyến nghị

Dẫn nhập

 

Topic này được mở để thảo luận và chia sẽ những kinh nghiệm sử dụng trình soạn Visual LISP Editor với các bạn mới bắt đầu và những ai có nhu cầu. Chúng tôi chân thành đón nhận những hướng dẫn; góp ý và các câu hỏi, vướng mắc được đặt ra trong quá trình sử dụng VLIDE, từ đó anh em thảo luận để có hướng giải quyết vấn đề, ngỏ hầu phục vụ anh em được tốt hơn. Chúng tôi không mong đợi những comment không mang tính đóng gốp; ly khai và cực đoan, xin lỗi vì chúng tôi chưa được rèn luyện công phu "né đá". Chân thành cám ơn sự quan tâm và mong chờ sự chia sẽ, đóng gốp của tất cả các bạn trong diễn đàn. Cầu chúc niềm vui; sức khỏe và thành công cho các bạn!
 

Sơ lược về Visual LISP Editor

 
Một chương trình AutoLISP có thể được viết bằng bất cứ chương trình soạn thảo văn bản nào (Notepad; WordPad; MS.Word; Notepad++), sau đó lưu lại với đuôi *.LSP. Tuy nhiên, với các trình soạn thảo này, chúng ta chỉ thuần túy viết code mà không hề được hỗ trợ các công cụ để có thể chạy thử, tìm lỗi và gỡ lỗi. AutoCAD chính nó đã cung cấp một trình soạn thảo Visual LISP, thỏa mãn được các đòi hỏi trên.
 
Chân thành cám ơn các bạn đã tham gia thảo luận trong topic: Gia_Bach; Tue_NV; Doan Van Ha; Song Nhi : ndtnv ; 
 

Mục lục tổng kết một số tiện ích của Visual LISP Editor đã được thảo luận trong topic

 
1/- Kiểm tra và gỡ lỗi code, tham khảo tại: [#6][#49].
 
2/- Giải phóng bộ nhớ bằng cách chuyển danh sách 
biến toàn cục thành biến cục bộ, tham khảo tại: [#19]; [#21]; [#22][#50].
 
3/- Quản lý lisp bằng tiện ích Project, tham khảo tại:
[#20][#24].
 
4/- Chức năng AutoComplex, tham khảo tại:
[#26].
 
5/- Định dạng code, tham khảo tại:
[#30].
 
6/- Xem cú pháp hàm trực tiếp trong VLIDE, tham khảo tại:
[#38].
 
7/- Xem trước giao diện DCL, tham khảo tại:
[#40].
 
8/- Đóng gói ứng dụng, tham khảo tại:
[#43].
 
9/- Và các tiện ích khác, đang chờ các bạn bổ xung ...

22665_flowerba.gif

Mời các Bác tiếp tục chia sẽ những kinh nghiệm sử dụng Visual LISP Editor!

  • Vote tăng 3

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Cái tiêu đề dịch sang Tiếng Việt là "Sử dụng chương trình soạn thảo Visual Lisp như thế nào" bạn ạ.

  • Vote tăng 1
  • Vote giảm 1

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Em là người mới bắt đầu học LISP, món này rất cần thiết đây!

 

@ Bác Thaistreetz ơi, Bác là một trong các cao thủ trong ngành này, bác chia sẽ những kinh nghiệm của mình để hướng dẫn tụi em với, tựa đề bằng tiếng Anh thế mọi người cũng hiểu được mà, như Slogen của Bác đấy thôi, cũng toàn tiếng Anh cả đấy chứ!

 

Trong bài: [yêu cầu] Lisp vẽ hình chữ nhật , line: http://www.cadviet.com/forum/topic/71167-yeu-cau-lisp-ve-hinh-chu-nhat/

Đã có các bác: Duy782006; Tue_NV và bác Doan Van Ha viết giúp bạn ấy rồi, em thấy vấn đề không phải khó lắm, cũng viết một lisp, nhưng không chạy được, vì còn sai nhiều chỗ, các Bác chắc đọc code sẽ phát hiện nhiều chỗ sai của em. Tuy nhiên, em mong muốn các Bác có thể hướng dẫn cách sử dụng các công cụ của Visual LISP Editor để phát hiện lỗi và sửa lỗi, từ đó những người mới học như tụi em sẽ rút ra những bài học kinh nghiệm!

 

Em xin trình bày lại yêu cầu của bạn ấy: Nhập vào 2 điểm và một khoảng offset, vẽ hình chữ nhật nhận 2 đỉnh ấy làm 2 đỉnh chéo, kết quả là HCN được offset từ HCN chuẩn ra hay vào trong một khoảng bằng khoảng nhập vào. Code của em đây:

(defun pxy(d x y) (polar (polar d 0 x) (* 0.5 pi) x))
(defun SN(id / )
(setq D1 (getpoint "\nVui long pick diem Bottom Left\n")
      D3 (getcorner D1 "\nVui long pick diem Top Right\n"))
(setq an  (getint "\nVui long nhap khoang offset: <110>\n")) (if (= an nil) (setq an 110))
(setq bn (- 0 an))
(setq D2 (list (car D1) (cadr D3))
      D4 (list (car D3) (cadr D1)))
(cond
((= id 1) (setq D11 (pxy D1 bn bn)
                D22 (pxy D2 bn an)
                D33 (pxy D3 an an)
                D44 (pxy D4 an bn))
((= id 2) (setq D11 (pxy D1 an an)
                D22 (pxy D2 an bn)
                D33 (pxy D3 bn bn)
                D44 (pxy D4 bn an)))))
(Command "_pline" D11 D22 D33 D44 "C")
(princ))
(defun C:SN+() (SN 1))
(defun C:SN-() (SN 2))
Chân thành cám ơn các Bác đã quan tâm!
  • Vote tăng 1

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Song Nhi đọc thêm cái này để tham khảo. Viết bằng Visual lisp hay Notepad++ đều có những ưu/nhược điểm riêng.

Tôi thì mê Notepad++ hơn.

Trong link này các comments còn bỏ sót rất nhiều điều hay của N++, tự tìm hiểu dần sẽ thấy thôi.

http://www.cadviet.com/forum/topic/5795-dung-chuong-trinh-nao-de-viet-lisp/

  • Vote tăng 1

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Check và gỡ lỗi code với Visual LISP IDE

1/- Các bạn xem đoạn code mẫu sau

(defun c:test ( / ss i sl total entity elist )
(if (setq ss (ssget '((0 . "LINE"))))
    (progn
      (setq i -1 sl (sslength ss) total 0)
      (while (<= (setq i (1+ i)) sl)
        (setq entity (ssname ss i)
              elist  (entget entity)
              total  (+ total (distance (cdr (assoc 10 elist)) (cdr (assoc 11 elist))))))
      (princ (strcat "\nTotal Length: " (rtos total)))))
(princ))

Tất nhiên, với kiến thức và kinh nghiệm của các bạn, các bạn có thể đọc và gỡ lỗi một cách thủ công. Tuy nhiên, trong bài này chúng tôi trình bày cách dùng công cụ của Visual LISP IDE để xác định vị trí lỗi và gỡ lỗi đó.
Trước tiên, bạn khởi động AutoCAD và nhập lệnh VLIDE (hoặc VLISP) để mở chương trình Visual LISP IDE, mở một file mới, copy đoạn code mẫu trên vào.
Vẽ một vài line trong CAD để kiểm tra, Trở lại VLIDE load code bằng biểu tượng load hoặc tổ hợp phím: Ctrl+Alt+E
Chạy thử bằng cách nhập lệnh: TEST tại command line, chúng ta sẽ nhận được thông báo lỗi như sau:

; error: bad argument type: lentityp nil

Và trở lại VLIDE, kiểm tra: Debug » Break on Error tùy chọn này đã được check, nghĩa là VLIDE đã đặt một điểm break tại vị trí lỗi.
 
2/- Xác định vị trí lỗi
Để xác định vị trí lỗi, ta vào: Debug » Last Break Source (hoặc tổ hợp phím: Ctrl+F9)
 

22665_h1.png

 
Reset lại điểm break bằng cách: Debug » Reset to Top Level (hoặc tổ hợp phím: Ctrl+R). Vậy chúng ta đã xác định được vị trí lỗi, nhưng còn phải xác định vì sao lỗi tại đó nữa?!!
 
3/- Xác định nguyên nhân lỗi
Để giúp trả lời câu hỏi này, VLIDE có một vài công cụ khác mà chúng ta có thể sử dụng.
 
3.1/- Adding Break Points: Ta chèn thêm những điểm break để kiểm soát từng đoạn code nhỏ. Trong trường hợp này lỗi xảy ra trong vòng lặp (while, cách chèn: Đặt nháy tại vị trí chèn và Debug » Toggle Break Point (hoặc nhấn phím: F9)

22665_h2.gif

3.2/- Watching Variables: VLIDE cũng cho phép chúng ta theo dõi biến được sử dụng trong các code, hiển thị giá trị của nó và giá trị của những biến liên đới với nó. Double-click vào một biến nào đó và View » Watch Window (hoặc tổ hợp phím: Ctrl+Shift+W) để xem giá trị, theo dõi thêm một biến liên đới với nó bằng cách tô chọn biến đó và Debug » Add Watch (hoặc nhấn phím: Ctrl+W). Trong trường hợp này ta chọn 2 biến “i” và “entity”.
 
3.3/- Animating the Code: Trong CAD, chạy thử đoạn code một lần nữa, chúng ta nhập: TEST tại command line. Sau khi trở lại VLIDE chúng ta vào Debug » Animate và đánh dấu tùy chọn này check. Sau đó vào Debug » Continue (hoặc chọn biểu tượng mũi tên xanh trên thanh Debug, hoặc tổ hợp phím Ctrl+F8)

22665_h3.gif

Các giá trị của các biến trong cửa sổ Watch giúp chúng ta điều tra được nguyên nhân lỗi. Trong trường hợp này, giá trị của “entity → nil” khi “i → 3”, điều này cho thấy với i=3 đã thoát khỏi điều kiện kiểm tra của vòng lặp, do đó “entity → nil”.
Reset lại điểm break bằng cách: Debug » Reset to Top Level (hoặc tổ hợp phím: Ctrl+R) và xóa tất cả các điểm break bằng cách Debug » Clear all Break Points (hoặc tổ hợp phím Ctrl+Shift+F9). Sau đó vào Debug » Animate và hủy đánh dấu tùy chọn này uncheck.
 
4/- Sửa lỗi
Với thiết định ban đầu i=-1, vậy nó điều kiện vòng lặp sẽ được thực thi đến khi i=(sl-1) thì dừng và thoát ra, như vậy ta có thể sửa lại code như sau:

(defun c:test ( / ss i sl total entity elist )
(if (setq ss (ssget '((0 . "LINE"))))
    (progn
      (setq i -1 sl (sslength ss) total 0)
      (while (< (setq i (1+ i)) sl)    ;;; “<=” da duoc thay bang “<” ;;;
        (setq entity (ssname ss i)
              elist  (entget entity)
              total  (+ total (distance (cdr (assoc 10 elist)) (cdr (assoc 11 elist))))))
      (princ (strcat "\nTotal Length: " (rtos total)))))
(princ))

Đó chỉ là một cách, tùy bạn có thể sửa bằng cách khác, vd: thiết định ban đầu cho i=0 chẳng hạn…
 
5/- Tham khảo thêm tài liệu trợ giúp của VLIDE
 

22665_vlidehelp.png

Nguồn bài viết: Lý Mẹc

  • Vote tăng 4

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Em là người mới bắt đầu học LISP, món này rất cần thiết đây!

 

Tuy nhiên, em mong muốn các Bác có thể hướng dẫn cách sử dụng các công cụ của Visual LISP Editor để phát hiện lỗi và sửa lỗi, từ đó những người mới học như tụi em sẽ rút ra những bài học kinh nghiệm!

Code của bạn sau khi chạy debug báo vị trí lỗi như sau:

 

22665_h5.jpg

 

Do bạn viết vội nên thừa - thiếu dấu ngoặc mà thôi, tôi đã fix lại sau đây, LISP chạy được, nhưng chạy có đúng ý đồ của bạn hay không, đề nghị bạn test lại và tự điều chỉnh các phép tính toán nhé! Code đây:

 
(defun pxy(d x y) (polar (polar d 0 x) (* 0.5 pi) y))
(defun SN(id / )
(setq D1 (getpoint "\nVui long pick diem Bottom Left\n")
      D3 (getcorner D1 "\nVui long pick diem Top Right\n"))
(setq an  (getint "\nVui long nhap khoang offset: <110>\n")) (if (= an nil) (setq an 110))
(setq bn (- 0 an))
(setq D2 (list (car D1) (cadr D3))
      D4 (list (car D3) (cadr D1)))
(cond
((= id 1) (setq D11 (pxy D1 bn bn)
                D22 (pxy D2 bn an)
                D33 (pxy D3 an an)
                D44 (pxy D4 an bn)))   ;;; Thieu ) da sua
((= id 2) (setq D11 (pxy D1 an an)
                D22 (pxy D2 an bn)
                D33 (pxy D3 bn bn)
                D44 (pxy D4 bn an))))  ;;; Thua ) da sua
(Command "_pline" D11 D22 D33 D44 "C")
(princ))
(defun C:SN+() (SN 1))
(defun C:SN-() (SN 2))

@ Bác Doan Van Ha - cám ơn Bác đã quan tâm đến vấn đề, chúc Bác nhiều SK và thành công trong công việc nhé!

  • Vote tăng 2

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

@ Bác Doan Van Ha: Cám ơn bác đã định hướng việc sử dụng Notepad++ để coding, công cụ này thú vị lắm, mặc dù chưa biết được nhiều về nó, bác nói trong Topic bác gởi, mọi người chưa khai thác được nhiều điều hay khi coding bằng Notepad++, nếu bác vui lòng bớt chút thời gian hướng dẫn thêm vấn đề này thì hay quá! Không biết như vậy có phải tham lam quá không?! Vote bác!

 

@ Bác lyky: Cám ơn bác lyky đã hướng dẫn cách check code LISP bằng các công cụ của Visual LISP IDE, đối với những người bập bẹ coding như chúng tôi thì cách đó thật hiệu quả, vì đã định vị được ngay vị trí lỗi của code, các bác có nhiều kiến thức và kinh nghiệm có thể tránh những sai sót đó, và thậm chí nếu quá trình coding có sai sót thì các bác cũng có thể dễ dàng kiểm tra thủ công lại, làm như vậy vẫn nhanh hơn! Tính vote bác mà: "You have reached your quota of positive votes for the day", cám ơn bằng lời chân thành bác nhé! Em đã tự fix lại code trong post #3 được rồi! Bác có thể post tiếp những công cụ và tiện ích khác nữa của Visual LISP IDE?!

 

Tuy không có cách xác định được điểm xảy ra lỗi bằng công cụ, nhưng nếu chịu khó kiểm tra tý, cũng sẽ phát hiện chuyện thừa thiếu dấu ngoặc () trong code mà em đã up lên bằng Notepad++, như sau:

 

118347_song_nhi_1.gif

 

Mặc dù không tích hợp các tiện ích để check code, nhưng bù lại Notepad++ có chức năng "shrinkage" thật hay, như vậy chúng ta có thể dẹp gọn màn hình coding, đóng gói những đoạn đã hoàn tất, để có thể tập trung quan tâm đến đoạn đang viết v.v...

  • Vote tăng 1

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Cái tiêu đề dịch sang Tiếng Việt là "Sử dụng chương trình soạn thảo Visual Lisp như thế nào" bạn ạ.

 

Cám ơn lòng tốt của bác Thaistreetz nhé, trước khi giúp người khác bác làm ơn thì làm ơn cho trót, bớt chút thời gian quý báu của mình đọc lược sơ qua yêu cầu người ta phát nhé! Mà cũng có khi bác đọc rùi mà "gà mờ"?!

 

Tui đâu có nhờ bác dịch tựa đâu? Nếu bác có thời gian đi dịch "giúp" mọi người, mặc nhiên không cần người ta nhờ mình, thì trên diễn đàn mình nhiều lắm, kể như nick thành viên, đa số dùng ngoại ngữ ...

 

Bác mà làm quả này, chắc không sợ thất nghiệp đâu! Sẵn rãnh, dịch luôn các tựa khác trong diễn đàn, dịch luôn những meg của diễn đàn mình - hiện đang thông báo bằng tiếng Anh, như vậy thì anh chị em trên diễn đàn được nhờ và mang ơn bác lắm!

 

Ah! Mà còn một chuyện hay hơn nữa, trước khi đi "dịch giúp" người khác, bác hãy tự dịch giúp bản thân mình trước nhé! Nick của bác là: "Thaistreetz" chắc không phải là tiếng Việt rồi?! Vậy nghĩa của nó là gì vậy? Tiếng Cambodia hả? Còn câu: "IN HIM, I TRUST. THE TRUST IN MY GOD" sao bác không tự dịch giúp bản thân mình - không ngờ trên đời vẫn còn sót lại những người quên đi bản thân - toàn lo đi "giúp" người khác như bác!

 

Thú vị thật, bác rành nhiều sinh ngữ quá, rành cả tiếng Cam, cả tiếng Anh... , khâm phục!

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

 

Em là người mới bắt đầu học LISP, món này rất cần thiết đây!

 

@ Bác Thaistreetz ơi, Bác là một trong các cao thủ trong ngành này, bác chia sẽ những kinh nghiệm của mình để hướng dẫn tụi em với, tựa đề bằng tiếng Anh thế mọi người cũng hiểu được mà, như Slogen của Bác đấy thôi, cũng toàn tiếng Anh cả đấy chứ!

 

Trong bài: [yêu cầu] Lisp vẽ hình chữ nhật , line: http://www.cadviet.com/forum/topic/71167-yeu-cau-lisp-ve-hinh-chu-nhat/

Đã có các bác: Duy782006; Tue_NV và bác Doan Van Ha viết giúp bạn ấy rồi, em thấy vấn đề không phải khó lắm, cũng viết một lisp, nhưng không chạy được, vì còn sai nhiều chỗ, các Bác chắc đọc code sẽ phát hiện nhiều chỗ sai của em. Tuy nhiên, em mong muốn các Bác có thể hướng dẫn cách sử dụng các công cụ của Visual LISP Editor để phát hiện lỗi và sửa lỗi, từ đó những người mới học như tụi em sẽ rút ra những bài học kinh nghiệm!

 

Em xin trình bày lại yêu cầu của bạn ấy: Nhập vào 2 điểm và một khoảng offset, vẽ hình chữ nhật nhận 2 đỉnh ấy làm 2 đỉnh chéo, kết quả là HCN được offset từ HCN chuẩn ra hay vào trong một khoảng bằng khoảng nhập vào. Code của em đây:

(defun pxy(d x y) (polar (polar d 0 x) (* 0.5 pi) x))
(defun SN(id / )
(setq D1 (getpoint "\nVui long pick diem Bottom Left\n")
      D3 (getcorner D1 "\nVui long pick diem Top Right\n"))
(setq an  (getint "\nVui long nhap khoang offset: <110>\n")) (if (= an nil) (setq an 110))
(setq bn (- 0 an))
(setq D2 (list (car D1) (cadr D3))
      D4 (list (car D3) (cadr D1)))
(cond
((= id 1) (setq D11 (pxy D1 bn bn)
                D22 (pxy D2 bn an)
                D33 (pxy D3 an an)
                D44 (pxy D4 an bn))
((= id 2) (setq D11 (pxy D1 an an)
                D22 (pxy D2 an bn)
                D33 (pxy D3 bn bn)
                D44 (pxy D4 bn an)))))
(Command "_pline" D11 D22 D33 D44 "C")
(princ))
(defun C:SN+() (SN 1))
(defun C:SN-() (SN 2))
Chân thành cám ơn các Bác đã quan tâm!

Hề hề hề,

Bạn kiểm tra lại dòng code này:

D44 (pxy D4 bn an)))))

Sao m2 lắm ngoặc rứa???

Dòng code này:

(defun pxy(d x y) (polar (polar d 0 x) (* 0.5 pi) x))

Thế cho thằng y vào để làm chi vậy???

  • Vote tăng 1

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Thể theo yêu cầu của 1 số thành viên, tôi mạn phép tóm tắt một số tiện ích hay của Notepad++ (N++).

Bài viết này có tham khảo thêm ở topic http://www.cadviet.com/forum/topic/71169-how-to-use-visual-lisp-editor/

1). Về màu sắc:

N++ và VL đều có chức năng gán các màu sắc khác nhau cho từng kiểu dữ liệu khác nhau: string, symbol, number, comment, function… Nhờ vậy, nhìn rất trực quan. Đặc biệt, nhờ gán màu sắc khác nhau mà có thể phát hiện code sai. Ví dụ: nếu gán function là màu blue thì khi ta code tên hàm đúng nó sẽ chuyển sang màu blue, còn code tên hàm sai thì màu không chuyển. Chức năng này giữa N++ và VL có thể coi là tương đương, chỉ Notepad là không có.

Lưu ý: vì N++ được viết để code cho nhiều ngôn ngữ lập trình (Lisp, Pascal, C, Matlab…) nên các hàm lisp có sẵn trong thư viện bị thiếu. Người dùng có thể phải bổ sung nếu muốn chức năng màu sắc này hoạt động luôn đúng.

2). Về font chữ:

N++ hơn hẳn VL. VL (ở Cad2007) chỉ có mỗi 8 font chữ, trong khi ở N++ có gần như đầy đủ những font gì mà  CAD có (hay Window có?). Nhờ font chữ đa dạng nên N++ trình bày đẹp, đặc biệt là rất phù hợp để viết những dòng chú thích bằng tiếng Việt.

3). Về View:

N++ có khả năng zoom in/out, trong khi VL không có chức năng này.

4) Về khả năng Undo:

N++ có thể undo trở về đến trạng thái ban đầu lúc mới mở file, bất kể quá trình code có save nhiều lần. VL chỉ có khả năng undo về đến trạng thái đã save gần nhất, chứ không có khả năng undo về như lúc mở file. Đây có lẽ là 1 hạn chế của VL?

5). Về chức năng đánh dấu:

N++ có chức năng đánh dấu các dòng cần theo dõi ở bất kỳ vị trí nào. VL thì không có.

6). Tính update:

Cả N++ và VL đều có tính update. Nghĩa là: khi đồng thời mở file trên N++/VL và trên 1 phần mềm khác thì nếu ở phần mềm khác bạn edit và save thì ngay sau đó ở N++/VL file sẽ được update những thay đổi.

7). Kiểm tra cặp dấu ngoặc ():

Cả N++ và VL đều có chức năng này, nhưng thể hiện bằng 2 cách khác nhau, và có vẽ như N++ tiện dụng hơn. Với N++ thì khi bạn đặt trỏ ở 1 vị trí dấu ngoặc nào đó, tương ứng dấu ngoặc kia (và cả nó) sẽ được highlight. Với VL thì phải double click. Thêm nữa, ở N++ khi đặt trỏ ở dấu ngoặc thừa nó sẽ không highlight mà chuyển qua màu khác, còn ở VL khi viết dấu ngoặc thừa nó sẽ phát ra âm thanh báo hiệu.

8). Mở nhiều file:

N++ thể hiện các file được mở bởi các tab xếp nối đuôi nhau trên đầu editor, rất dễ nhìn và dễ nhảy qua lại giữa các tab để làm việc. Trong khi VL thể hiện các file khó chịu hơn. Riêng trong menu “Window” thì chúng giống nhau.

9). Ngôn ngữ code:

N++ là ngôn ngữ để code với rất nhiều ngôn ngữ lập trình, trong đó code lisp chỉ là 1 kiểu. Riêng VL thì chỉ dùng trong Cad để code lisp mà thôi.

10). Ẩn/hiện khối:

Đây là chức năng rất hay mà N++ có nhưng VL không có. Chức năng này đặc biệt có ý nghĩa với những file lisp lớn, chứa nhiều hàm con. Nó dùng để ẩn các khối đã hoàn thành, làm cho file lisp "ngắn" hơn, dễ theo dõi hơn.

Các khối có thể gồm các đoạn code nằm trong các hàm như: defun, repeat, while, foreach, vla-for… Nói chung, khối là một hàm hoàn thành được viết trên nhiều dòng.

11). Find, Replace and Count:

* Đánh dấu chuỗi: với N++, chỉ cần bôi đen (hoặc double click) vào 1 string thì tất cả string giống nó sẽ được bôi đen đồng loạt, khiến cho việc tìm kiếm string rất trực quan. Chức năng này chưa thực sự hoàn hảo, tuy nhiên, so với VL thì nó không có chức năng này.

* Find and Replace: N++ có thể tìm và thay trên tất cả file đang mở chứ không chỉ mỗi file hiện hành. VL cũng làm được điều này nhưng cách thao tác và cách thể hiện kết quả của VL không thân thiện bằng N++.

* Count: N++ có chức năng đếm các string giống nhau. VL không có chức năng này.

12). Về check lỗi:

VL ưu việt hơn N++ (xin xem thêm bài viết của Lyky ở trên, dù nó chưa thực sự đầy đủ).

13). Đang chờ các bạn bổ sung…

Kết luân:

Vì cố tình phân tích ưu điểm của N++ so với VL nên rất có thể có những nhận định trên mang tính chủ quan, thiếu chính xác và có phần thiên vị N++… Mong mọi người góp ý bổ sung thêm, đặc biệt là phân tích những ưu điểm mà VL có còn N++ thì không, để các thành viên có thể cân nhắc lựa chọn được ngôn ngữ code lisp phù hợp nhất.

Trân trọng cảm ơn!

  • Vote tăng 3

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

@ Bác PhamThanhBinh:  Em đã sửa lại những lỗi đó rồi, cám ơn bác đã quan tâm!
@ Bác Doan Van Ha: Cám ơn bác vì kiến thức và sự nhiệt tình hướng dẫn của bác!

 

Thể theo yêu cầu của 1 số thành viên, tôi mạn phép tóm tắt một số tiện ích hay của Notepad++ (N++).
Bài viết này có tham khảo thêm ở topic http://www.cadviet.com/forum/topic/71169-how-to-use-visual-lisp-editor/

Vì cố tình phân tích ưu điểm của N++ so với VL nên rất có thể có những nhận định trên mang tính chủ quan, thiếu chính xác và có phần thiên vị N++… Mong mọi người góp ý bổ sung thêm, đặc biệt là phân tích những ưu điểm mà VL có còn N++ thì không, để các thành viên có thể cân nhắc lựa chọn được ngôn ngữ code lisp phù hợp nhất.
Trân trọng cảm ơn!

 

Hình như bác đang hướng dẫn anh em tham khảo ở một topic khác, nhưng bác lại up line của topic này?!!

Bác viết thật nhiều điều nổi bật của N++, hành văn mạch lạc - kết cấu chặc chẽ, em sẽ cố gắng nghiên cứu từ từ. Mặc dù là một bài viết, nhưng em có cảm tưởng nó như một lưu đồ, bác dùng điều 13). Đang chờ các bạn bổ sung… để bao quát, nhằm làm bài viết không rơi vào tình trạng thiếu trường hợp mà vừa như một lời kêu gọi sự tiếp tục của mọi người. Ngoài ra, tại đoạn cuối của bài viết, bác viết thật công bằng và khiêm tốn nữa, kể như là một sự lật ngược vấn đề! Bác thật tinh tế cả trong coding lẫn writing! Học hỏi bác thật nhiều điều hay!

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Thể theo yêu cầu của 1 số thành viên, tôi mạn phép tóm tắt một số tiện ích hay của Notepad++ (N++).

Bài viết này có tham khảo thêm ở topic http://www.cadviet.com/forum/topic/71169-how-to-use-visual-lisp-editor/

1). Về màu sắc:

N++ và VL đều có chức năng gán các màu sắc khác nhau cho từng kiểu dữ liệu khác nhau: string, symbol, number, comment, function… Nhờ vậy, nhìn rất trực quan. Đặc biệt, nhờ gán màu sắc khác nhau mà có thể phát hiện code sai. Ví dụ: nếu gán function là màu blue thì khi ta code tên hàm đúng nó sẽ chuyển sang màu blue, còn code tên hàm sai thì màu không chuyển. Chức năng này giữa N++ và VL có thể coi là tương đương, chỉ Notepad là không có.

Lưu ý: vì N++ được viết để code cho nhiều ngôn ngữ lập trình (Lisp, Pascal, C, Matlab…) nên các hàm lisp có sẵn trong thư viện bị thiếu. Người dùng có thể phải bổ sung nếu muốn chức năng màu sắc này hoạt động luôn đúng.

 

-> Cái này phải nói VL nhỉnh hơn N++. Các từ khoá của Lisp VL đều hỗ trợ về màu sắc cả, còn N++ do hỗ trợ thiếu hàm Lisp 1 cách trầm trọng nên rất nhiều các từ khoá là tên các của hàm không đổi màu. VL hỗ trợ viết DCL nên các từ khoá DCL viết trên VL đổi màu còn với N++ thì chưa

 

2). Về font chữ:

N++ hơn hẳn VL. VL (ở Cad2007) chỉ có mỗi 8 font chữ, trong khi ở N++ có gần như đầy đủ những font gì mà  CAD có (hay Window có?). Nhờ font chữ đa dạng nên N++ trình bày đẹp, đặc biệt là rất phù hợp để viết những dòng chú thích bằng tiếng Việt.

3). Về View:

N++ có khả năng zoom in/out, trong khi VL không có chức năng này.

4) Về khả năng Undo:

N++ có thể undo trở về đến trạng thái ban đầu lúc mới mở file, bất kể quá trình code có save nhiều lần. VL chỉ có khả năng undo về đến trạng thái đã save gần nhất, chứ không có khả năng undo về như lúc mở file. Đây có lẽ là 1 hạn chế của VL?

5). Về chức năng đánh dấu:

N++ có chức năng đánh dấu các dòng cần theo dõi ở bất kỳ vị trí nào. VL thì không có.

Không đúng. VL và N++ đều có Bookmark

6). Tính update:

Cả N++ và VL đều có tính update. Nghĩa là: khi đồng thời mở file trên N++/VL và trên 1 phần mềm khác thì nếu ở phần mềm khác bạn edit và save thì ngay sau đó ở N++/VL file sẽ được update những thay đổi.

7). Kiểm tra cặp dấu ngoặc ():

Cả N++ và VL đều có chức năng này, nhưng thể hiện bằng 2 cách khác nhau, và có vẽ như N++ tiện dụng hơn. Với N++ thì khi bạn đặt trỏ ở 1 vị trí dấu ngoặc nào đó, tương ứng dấu ngoặc kia (và cả nó) sẽ được highlight. Với VL thì phải double click. Thêm nữa, ở N++ khi đặt trỏ ở dấu ngoặc thừa nó sẽ không highlight mà chuyển qua màu khác, còn ở VL khi viết dấu ngoặc thừa nó sẽ phát ra âm thanh báo hiệu.

8). Mở nhiều file:

N++ thể hiện các file được mở bởi các tab xếp nối đuôi nhau trên đầu editor, rất dễ nhìn và dễ nhảy qua lại giữa các tab để làm việc. Trong khi VL thể hiện các file khó chịu hơn. Riêng trong menu “Window” thì chúng giống nhau.

9). Ngôn ngữ code:

N++ là ngôn ngữ để code với rất nhiều ngôn ngữ lập trình, trong đó code lisp chỉ là 1 kiểu. Riêng VL thì chỉ dùng trong Cad để code lisp mà thôi.

10). Ẩn/hiện khối:

Đây là chức năng rất hay mà N++ có nhưng VL không có. Chức năng này đặc biệt có ý nghĩa với những file lisp lớn, chứa nhiều hàm con. Nó dùng để ẩn các khối đã hoàn thành, làm cho file lisp "ngắn" hơn, dễ theo dõi hơn.

Các khối có thể gồm các đoạn code nằm trong các hàm như: defun, repeat, while, foreach, vla-for… Nói chung, khối là một hàm hoàn thành được viết trên nhiều dòng.

11). Find, Replace and Count:

* Đánh dấu chuỗi: với N++, chỉ cần bôi đen (hoặc double click) vào 1 string thì tất cả string giống nó sẽ được bôi đen đồng loạt, khiến cho việc tìm kiếm string rất trực quan. Chức năng này chưa thực sự hoàn hảo, tuy nhiên, so với VL thì nó không có chức năng này.

* Find and Replace: N++ có thể tìm và thay trên tất cả file đang mở chứ không chỉ mỗi file hiện hành. VL cũng làm được điều này nhưng cách thao tác và cách thể hiện kết quả của VL không thân thiện bằng N++.

* Count: N++ có chức năng đếm các string giống nhau. VL không có chức năng này.

Replace : cũng mang chức năng Count rồi bác. Nói VL không đếm được các  string giống nhau là không đúng

12). Về check lỗi:

VL ưu việt hơn N++ (xin xem thêm bài viết của Lyky ở trên, dù nó chưa thực sự đầy đủ).

 

 

Kết luân:

Vì cố tình phân tích ưu điểm của N++ so với VL nên rất có thể có những nhận định trên mang tính chủ quan, thiếu chính xác và có phần thiên vị N++… Mong mọi người góp ý bổ sung thêm, đặc biệt là phân tích những ưu điểm mà VL có còn N++ thì không, để các thành viên có thể cân nhắc lựa chọn được ngôn ngữ code lisp phù hợp nhất.

Trân trọng cảm ơn!

 

Bổ sung: 

 

13) Về DCL :  Dùng VL có thể cho quan sát được hộp thoại khi thiết kế giao diện, còn N++ thì không

14) Về AutoComplex: Vì hỗ trợ từ khoá về hàm Lisp thiếu trầm trọng nên AutoComplex của N++ kém hơn nhiều so với VL. VL hỗ trợ AutoComplex với tất cả các hàm, đặc biệt là vl, vla....

15) Về tìm kiếm hàm : Rõ ràng VL ưu điểm hơn N++

16) Quản lý các hàm theo project : VL sort các hàm con của Project theo tên rất dễ tìm kiếm, thích cái nào thì kích vào lôi ra và sử dụng thôi. Khi cần có thể Build và load project sử dụng nhanh chóng. Cái này chưa tìm hiểu trên N++, chắc là không có

17). .....…

  • Vote tăng 2

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Cám ơn lòng tốt của bác Thaistreetz nhé, trước khi giúp người khác bác làm ơn thì làm ơn cho trót, bớt chút thời gian quý báu của mình đọc lược sơ qua yêu cầu người ta phát nhé! Mà cũng có khi bác đọc rùi mà "gà mờ"?!

 

 

Tui đâu có nhờ bác dịch tựa đâu? Nếu bác có thời gian đi dịch "giúp" mọi người, mặc nhiên không cần người ta nhờ mình, thì trên diễn đàn mình nhiều lắm, kể như nick thành viên, đa số dùng ngoại ngữ ...

 

Bác mà làm quả này, chắc không sợ thất nghiệp đâu! Sẵn rãnh, dịch luôn các tựa khác trong diễn đàn, dịch luôn những meg của diễn đàn mình - hiện đang thông báo bằng tiếng Anh, như vậy thì anh chị em trên diễn đàn được nhờ và mang ơn bác lắm!

 

Ah! Mà còn một chuyện hay hơn nữa, trước khi đi "dịch giúp" người khác, bác hãy tự dịch giúp bản thân mình trước nhé! Nick của bác là: "Thaistreetz" chắc không phải là tiếng Việt rồi?! Vậy nghĩa của nó là gì vậy? Tiếng Cambodia hả? Còn câu: "IN HIM, I TRUST. THE TRUST IN MY GOD" sao bác không tự dịch giúp bản thân mình - không ngờ trên đời vẫn còn sót lại những người quên đi bản thân - toàn lo đi "giúp" người khác như bác!

 

Thú vị thật, bác rành nhiều sinh ngữ quá, rành cả tiếng Cam, cả tiếng Anh... , khâm phục!

Ờ, Vậy why bạn không writed nội dung topic này by English luôn thể cho hợp với tiêu đề đi, viết Vietnamese ở here làm cai what? :lol:

Buồn cười bạn, đi soi cả nickname với 1 câu slogan của người ta ra để lý sự cãi cùn. Có ai đi dịch cái tên riêng ra không hả trời!? diễn đàn có quy định về cách viết bài và đặt tiêu đề bạn đọc chưa? Người ta nhắc đúng rồi không biết tiếp thu còn bật nữa. Ai cũng như bạn thì loạn cào cào Anh với chả Việt hết à?

 

@ĐVH: Bạn đúng là thiên vị N++ quá! Để mình đòi công bằng cho VL nhé:

1) Về màu sắc: N++ nhận tên hàm hơi hâm. Phân biệt chữ in hoa và chữ thường, phải nhập đúng định dạng thì nó mới nhận. Bạn cứ thử viết "Defun" xem nó có nhận không

7) Kiểm tra cặp dấu ngoặc: Không thể nói VL hay hơn hay N++ hay hơn bởi chúng làm nhiệm vụ khác nhau. Cách kiểm tra của VL ngoài việc tìm kiếm cặp dấu ngoặc, nó còn giúp việc chon 1 đoạn code được nhanh hơn, không phải chon thủ công như N++. việc chon các đoạn code này phục vụ cho nhiều tính năng khác của VL

9) Ngôn ngữ code: Bạn nhận xét sai hoàn toàn. VL không chỉ hỗ trợ lisp, nó còn hỗ trợ C++, SQL và đặc biệt là DCL kèm với khả năng chạy thử hộp thoại ngay từ trình soạn thảo. Cái này N++ thua toàn tập nếu chỉ xét riêng lĩnh vực Lisp.

Tạm thời thế đã. Mình đang có trong tay cuốn sách Thaistreetz tự viết về trình soạn thảo VLIDE. khá nhiều điều thú vị, khi nào rảnh mình sẽ làm 1 bài so sánh VL và N++ chi tiết hơn.

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Em xin được bổ xung thêm:
17) Khả năng dịch file *.LSP sang các định dạng: *.VLX; *.FAS... của VL mà N++ không có, nếu kết hợp cả 2 chương trình này, lấy ưu bổ khuyết như ý kiến bác nataca là hay hơn!
 
@ Chị ThuyLinh313

Tạm thời thế đã. Mình đang có trong tay cuốn sách Thaistreetz tự viết về trình soạn thảo VLIDE. khá nhiều điều thú vị, khi nào rảnh mình sẽ làm 1 bài so sánh VL và N++ chi tiết hơn.

 

Đó là ebook hay sách in vậy chị? Nếu là ebook, phiền chị có thể post ebook đó lên diễn đàn cho mọi người tham khảo có được không ạ? Em có tìm trên diễn đàn mà không thấy!

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Các bác so sánh nhiều e e khập khiễng. Có đến mấy topic bàn về cái ni rồi

- Về các tiện ích về cách thức sử dụng, trình bày ... N++ chắc chắn sẽ có thể ăn đứt VL, đơn giản là vì N++ code mở, các bác thấy thiếu cái j thì xắn tay lên viết cho nó. Từ khóa thiếu thì thêm, k nhận in hoa thì xử, màu mè chán thì chỉnh ... nói chung là thiên biến vạn hóa, plug addin vô số ...

- Về các chức năng liên quan đến chất lượng sản phẩm, check hàng, đì búc đì biếc các thứ thì vl chuyên về nó rồi, cãi j

 

Em thì viết = N++, sửa lỗi mò, nhưng vote dùng cả 2, mở file = N++ và VL cùng lúc, qua lại chớp nhoáng, xuất chiêu nhẹ nhàng mà khí lực vô biên

 

@TL : bác Thái đường cũng hứa viết giúp mình cái tut đó, rồi mất hút ^^. Bạn làm cùng chỗ a Thái ?

  • Vote tăng 2

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

@Nhi: Bạn liên hệ với Thaistreetz nhé. Mình biết là bạn ấy vẫn thường xuyên vào diễn đàn.

@KX: Mình chỉ quen biết Thái thôi, do có cùng cộng tác với nhau 1 thời gian ngắn.

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

@Tue+ThuyLinh+Ketxu+...:

Mong các bạn cho thêm những ý kiến, đặc biệt là những tiện ích tốt của VL so với N++, để cuối cùng mình có thể tổng hợp lại, ngõ hầu giúp một số bạn viết lisp có phương án chọn ngôn ngữ code lisp phù hợp nhất.

Đây không phải là cuộc tranh luận "ăn thua" giữa N++ và VL, cũng như không phải là cuộc tranh luận giữa những ai đã từng yêu mến chúng. Chủ đề chỉ muốn: liệt kê, phân tích những tiện ích hay và chưa hay của từng ngôn ngữ code mà thôi.

Đối với các bạn - đã quá rành lisp - thì thậm chí viết với Notepad "trơn" cũng ngon ơ như thường, nhưng đối với nhiều người khác thì có lẽ sẽ là cần thiết.

Cám ơn và Hy vọng!

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Quản lý LISP bằng Project

Vừa tiện dụng cho Autoload, vừa tiện dụng cho Find trong VLIDE rất hiệu quả, ứng dụng cho việc test LISP bằng một project: Vault thì thật mau chóng!


22665_lyky_1.jpg
 

@ Bác Gia_Bach: Cám ơn Bác! Bác hướng dẫn bằng hình ảnh thật cụ thể và dễ hiểu, tuy nhiên, Bác đã để lại một vài “sơ xuất” lyky đã đánh dấu trên hình này nè! Lyky đã nhận ra Bác rồi?!


22665_lyky2.jpg


Một lần nữa xin cám ơn Bác đã quan tâm đến vấn đề và nhiệt tình hướng dẫn anh em! Chúc Bác thật nhiều SK và nhiều thật nhiều thành công trong công việc nữa nhé!
 
@ ThuyLinh: Tiếp thu ý kiến, hôm sau nhất định không ghi tiếng Anh nữa!

  • Vote tăng 2

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Thêm chức năng "thu gom rác" : biến toàn cục -> biến cục bộ

15454_vl_1.gif

Tính năng này hay. Nhưng có ai biết vì sao file lisp của tôi có rất nhiều biến nhưng khi "Check edit window" nó chỉ xuất hiện kết quả như thế này, mà không có 3 dòng ở giữa như video không?

 

[CHECKING TEXT <Untitled-0> loading...]

.

; Check done.

(defun XOAY()
 (setq a 1)
 (vl-load-com)
 (command "undo" "be")
 (ssget (list (cons 0 "TEXT,MTEXT")))
 (vlax-for obj (vla-get-ActiveSelectionSet (vla-get-ActiveDocument (vlax-get-acad-object)))
  (if (< 90 (/ (* 180 (setq goc (vla-get-Rotation obj))) pi) 270)
   (vla-put-Rotation obj (+ pi goc))))
 (command "undo" "e"))
[/lisp]
[CHECKING TEXT <Untitled-0> loading...]
.
; Check done.
  • Vote tăng 1

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

[CHECKING TEXT <Untitled-0> loading...]

.

; Check done.

 

Bác thử làm thế này xem sao: Tools >> Environment Options >> General Options ---> Check buttom đầu tiên, như hình vẽ sau là okei!

 

118347_khkdshshs_1.jpg

 

Ý nghĩa các buttom khác tham khảo tại: Diagnostic Tab (General Options Dialog Box)/Help

Chúc các bạn buổi tối thật vui!

  • Vote tăng 4

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

 

Bác thử làm thế này xem sao: Tools >> Environment Options >> General Options ---> Check buttom đầu tiên, như hình vẽ sau là okei!

 

118347_khkdshshs_1.jpg

 

Ý nghĩa các buttom khác tham khảo tại: Diagnostic Tab (General Options Dialog Box)/Help

Nếu sửa như trên mà vẫn không xuất hiện Global variables, bạn vui lòng kiểm tra trang sau:

 

118347_khkdshshs222.jpg

 

Chúc các bạn buổi tối thật vui!

Hề hề hề.

Bác này có nhẽ phải đổi nick thành Song ..... Phi mất thôi. Chơi nhiều cước độc quá. Cánh đi mót như tui thiệt khó đỡ.

Hề hề hề,

Cám ơn bác Song .....(phi) Nhi vì qua các chiêu của bác tụi này mót được thêm mấy miếng phòng thân và tránh đòn khi đi mót trên đồng lạ bác ạ....

Hề hề hề,....

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Nói về cách sử dụng Project trong VLISP

Khi bạn mở một Project, VLISP sẽ hiển thị một cửa sổ liệt kê các Lisp trong Project đó:

 

22665_lyky1.jpg

 

Mặc định, VLISP liệt kê các Lisp theo thứ tự các bạn đã nạp nó vào Project, hoặc bạn có thể vào Project Properties để thay đổi thứ tự này theo ý bạn.
 
Bên dưới thanh tiêu đề là 5 biểu tượng. Liệt kê như sau:
1. Project Properties: Hộp thoại này cho phép bạn xem đường dẫn của mỗi Lisp, nạp thêm, loại ra, sắp xếp lại các Lisp, xem và thay đổi tùy chọn trình biên dịch Compolation Mode.
2. Load Project FAS

 

22665_lyky2_1.jpg

 

3. Load Source Files
4. Build Project FAS
5. Rebuild Project FAS
 
Nếu bạn kích chuột phải vào một Lisp nào đó trong danh sách, VLISP hiển thị một menu ngữ cảnh chứa một số chức năng. Ví dụ, bạn đã biết cách để nạp/loại Lisp vào/ra các Project. Remove File nhanh chóng loại bỏ một Lisp, nhưng Add File chỉ đơn thuần hiển thị hộp thoại Project Properties.
Tóm tắt các lệnh trên menu ngữ cảnh:

 

22665_lyky3.jpg

1. Edit: Chỉnh sửa Lisp được lựa chọn.
2. Add File: Mở hộp thoại Project Properties để nạp thêm Lisp vào.
3. Remove File: Loại bỏ các Lisp được chọn ra khỏi Project.
4. Load: Tải FAS cho các Lisp được lựa chọn. Nếu không có file FAS, tải file nguồn AutoLISP.
5. Load Source: Tải file nguồn AutoLISP.
6. Check Syntax: Kiểm tra cú pháp của Lisp được lựa chọn.
7. V.v…
 
Các bạn nghiên cứu thêm ở: Using the Project Window to Work with Project Files
 
P/S:
@ Song Nhi: Hảo Song Nhi! Đối với những Lisp đã check rồi và "dọn rác" theo cách anh Gia_Bach đã hướng dẫn, sau khi check lại sẽ không còn Global Var, trừ trường hợp vì ý đồ khác của người viết!

@ Phamthanhbinh: Cám ơn bác đã quan tâm đến vấn đề, mong chờ sự hướng dẫn từ Bác - Chúc Bác thật nhiều sức khoẻ nhé! Ah, Song Nhi (trong Lộc đỉnh ký) thì giỏi môn điểm huyệt chứ Bác, con gái ai người ta đi phi cước - mốt nữa ế chồng chết! ^-^

  • Vote tăng 2

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Hoan hô 3 comments của Lyky. Nhờ vậy, chắc topic này sẽ chanh chóng trở thành 1 topic hay để lựa chọn trình viết lisp, cũng như để học hỏi và trao đổi chi tiết về trình chọn.

Hy vọng tiếp tục sẽ có nhiều comment khác!

  • Vote tăng 1

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Tue_NV còn hay thường dùng chức năng AutoComplex của VL (Có thể là các hàm của Lisp hoặc khi đã Load Project thì có thể sử dụng bộ hàm con do mình viết sẵn trong Project để coding nhanh chóng

Đơn giản viết vài chữ rồi Control+Shift+Spacebar

4652_vlide.png

  • Vote tăng 2

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Tạo một tài khoản hoặc đăng nhập để nhận xét

Bạn cần phải là một thành viên để lại một bình luận

Tạo tài khoản

Đăng ký một tài khoản mới trong cộng đồng của chúng tôi. Điều đó dễ mà.

Đăng ký tài khoản mới

Đăng nhập

Bạn có sẵn sàng để tạo một tài khoản ? Đăng nhập tại đây.

Đăng nhập ngay

×