Cách thêm nhận xét nhiều dòng trong trang tạo


113

Có cách nào để nhận xét ra nhiều dòng trong makefiles như trong cú pháp C /* */không?


Bạn đang sử dụng phiên bản make nào?
egrunin

Câu trả lời:


152

Không, không có gì giống như /* */nhận xét kiểu C trong makefiles. Như người khác đã đề xuất, bạn có thể đưa ra nhận xét nhiều dòng bằng cách sử dụng các dòng liên tục. Ví dụ:

# This is the first line of a comment \
and this is still part of the comment \
as is this, since I keep ending each line \
with a backslash character

Tuy nhiên, tôi tưởng tượng rằng bạn có thể đang tạm thời nhận xét một đoạn makefile của mình vì lý do gỡ lỗi và việc thêm dấu gạch chéo ngược trên mỗi dòng là không thực sự thực tế. Nếu bạn đang sử dụng GNU make, tôi khuyên bạn nên sử dụng ifeqchỉ thị với một biểu thức cố ý sai. Ví dụ:

ifeq ("x","y")
# here's all your 'commented' makefile content...
endif

Hy vọng rằng sẽ giúp.


3
Lưu ý rằng nếu bạn muốn "chú thích" các dòng trong một quy tắc, đừng thụt lề các dòng ifeq, endif.
Simon Márton

13

Tôi tin câu trả lời là không. Kiểu nhận xét duy nhất mà tôi có thể tìm thấy là # cho mỗi dòng hoặc sử dụng \ để bao quanh dòng đầu tiên.


10

Lưu ý về ý tưởng sử dụng ifeqđể thực hiện các nhận xét nhiều dòng trong make (1). Chúng không hoạt động tốt vì nếu bạn viết như sau:

ifeq (0,1)
    do not risk ifeq comments
    else trouble will find you
    ifeq is even worse
endif

Văn bản giữa ifeq và endif sẽ vẫn được phân tích cú pháp bằng make, có nghĩa là bạn không thể viết bất cứ thứ gì bạn muốn trong phần đó. Và nếu bạn muốn viết một bình luận dài và viết bất cứ thứ gì bạn muốn trong bình luận (bao gồm cả dấu $, dấu hai chấm và nhiều thứ khác đều có ý nghĩa tạo thành) thì bạn phải bình luận từng dòng một. Vậy tại sao ifeq... :)


Điều đó không chính xác. Công việc "phân tích cú pháp" duy nhất của văn bản bên trong ifeq là tìm kiếm một endif. Bạn có thể xác minh điều này một cách dễ dàng với một tệp makefile có một số cú pháp không có thật bên trong ifeq. Miễn là điều kiện trong ifeq đánh giá là sai, gmake sẽ vui vẻ bỏ qua các lỗi cú pháp bên trong ifeq.
Eric Melski

3
Điều đó không chính xác. Hãy thử ví dụ sau: ifeq (0, 1) đừng mạo hiểm với ý kiến ​​của ifeq, nếu không thì rắc rối sẽ tìm thấy bạn kết thúc nếu Người khác ở đầu dòng ném ra lỗi. Vì thế , những biểu tượng khác , ifeq , ifneq và có thể là nhiều biểu tượng khác mà tôi không biết sẽ gây ra vấn đề cho bạn.
Mark Veltzer

Đó là một điểm hợp lý, nhưng phần lớn các lỗi cú pháp sẽ được bỏ qua.
Eric Melski

5
define BOGUS
lines
.....
endef

1
tuân theo những cảnh báo tương tự như ifeqtôi cho rằng, nhưng hiệu quả với tôi. cảm ơn!
jcomeau_ictx

3

Không chính xác những gì bạn đang tìm kiếm, nhưng tương tự về tinh thần. Tôi không mong đợi đó là câu trả lời được chấp nhận, nhưng có thể nó có thể giúp ích cho ai đó.

Giả sử bạn đang chỉnh sửa trang điểm của mình trong VIM:
Quyết định dòng nào bạn muốn nhận xét hoặc chọn chúng bằng 'v'.

Sau đó, bạn có thể sử dụng regex s/^/#/để nhận xét các dòng
s/^#//hoàn nguyên chúng.

- Ghi chú--

  • Để mở dòng lệnh vim, hãy nhấn :(dấu hai chấm)
  • Để chuẩn bị lệnh cho 'n' dòng tiếp theo, hãy sử dụng .,+n
  • Một dòng mẫu sử dụng "v" trông giống như: '<,'>s/^/#/

2
Thay vào đó, sử dụng chế độ chặn dễ dàng hơn. Chuyển đến đầu dòng đầu tiên để nhận xét, ctrl-v, mũi tên xuống cho đến cuối, viết hoa I, #, thoát. Để xóa nhận xét: ctrl-v, mũi tên xuống hết cỡ, x
brunch875

1

Trong emacs, bạn có thể đánh dấu khu vực bạn muốn nhận xét và nhấn M-;(vùng nào chạy comment-dwim).

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.