Làm thế nào để bạn chặn bình luận trong YAML?


1372

Làm thế nào để tôi nhận xét một khối các dòng trong YAML?


câu hỏi không có chỉ dẫn về cách thực hiện với trình soạn thảo văn bản nhất định, vì vậy vui lòng trả lời câu hỏi theo các quy tắc và quyền tự do cú pháp yaml.
Alexander Stohr

Câu trả lời:


2007

YAML hỗ trợ bình luận nội tuyến, nhưng không hỗ trợ bình luận khối.

Từ Wikipedia :

Nhận xét bắt đầu bằng ký hiệu số ( #), có thể bắt đầu ở bất kỳ đâu trên một dòng và tiếp tục cho đến khi kết thúc dòng

Một so sánh với JSON, cũng từ Wikipedia :

Sự khác biệt về cú pháp là tinh tế và hiếm khi phát sinh trong thực tế: JSON cho phép các ký tự mở rộng như UTF-32, YAML yêu cầu một khoảng trắng sau các dấu phân cách như dấu phẩy, bằng và dấu hai chấm trong khi JSON không và một số triển khai JSON không chuẩn bao gồm các /* ... */bình luận của Javascript . Xử lý các trường hợp cạnh như vậy có thể yêu cầu xử lý trước nhẹ JSON trước khi phân tích cú pháp như YAML nội tuyến.

# If you want to write
# a block-commented Haiku
# you'll need three pound signs

49
haiku tuyệt vời (âm tiết 5/7/5)
Scott Pelak

224

Thông số kỹ thuật chỉ mô tả một cách đánh dấu nhận xét:

Một nhận xét rõ ràng được đánh dấu bởi một chỉ số # #.

Đó là tất cả. Không có bình luận khối.


137

Không cố tỏ ra thông minh về điều đó, nhưng nếu bạn sử dụng Sublime Text cho trình soạn thảo của mình, các bước là:

  1. Chọn khối
  2. cmd+ /trên Mac hoặc ctrl+ /trên Linux và Windows
  3. Lợi nhuận

Tôi tưởng tượng rằng các biên tập viên khác cũng có chức năng tương tự. Cái nào bạn đang dùng? Tôi rất vui khi được đào bới.


8
Hoạt động trong Atom cũng vậy
mndrix

3
Nếu bạn đang ở trong Eclipse với plugin YEdit, thì trình nhận xét-bình luận khối tiêu chuẩn của ctrl- / sẽ chuyển các nhận xét chặn trong các tệp yaml.
Matt Gibson

1
một số kết hợp hoạt động trong nhật thực> 4.6 với sự hỗ trợ tích hợp cho YAML
Faraz

3
Hoạt động trong IDE JetBrains: RubyMine và Gogland
Rich Sutton

3
Hoạt động trong VSCode cũng vậy.
Zain Patel

67

Trong Vim, bạn có thể thực hiện một trong các thao tác sau:

  • Nhận xét tất cả các dòng: :%s/^/#
  • Dòng nhận xét 10 - 15: :10,15s/^/#
  • Dòng bình luận 10 đến dòng hiện tại: :10,.s/^/#
  • Dòng bình luận 10 đến cuối: :10,$s/^/#

hoặc sử dụng khối trực quan:

  1. Chọn một cột nhiều dòng sau khi vào khối trực quan thông qua Ctrl+v .
  2. Nhấn rtheo sau #để nhận xét khối nhiều dòng thay thế lựa chọn hoặc Shift+i#Escđể chèn các ký tự nhận xét trước khi chọn.

8
ít suy nghĩ nhất có thể;). "Vim, I did a thing. do it here, and here and here and here and here..."
Conrad.Dean

4
Bạn cũng có thể nhấn :và gõ s/^/#để bình luận lựa chọn hiện tại.
hakunin 28/03/2015

1
@ Conrad.Dean cố gắng học cách suy nghĩ theo macro . Mặc dù hầu như giống nhau cho nhiệm vụ này, qqI#<esc>jqsau đó @Q@Q@Q@Q@Q@Q(vì nó nhanh hơn để không cho tắt phím shift), là một thói quen, bạn có thể mở rộng đến các nhiệm vụ phức tạp hơn nhiều. Khởi đầu nhỏ. Thực hành thường xuyên. Bạn sẽ sớm tạo ra các macro rất phức tạp một cách hoàn hảo. Nếu bạn xóa đăng ký trước qqq, bạn có thể đưa vào @qtrước lần cuối qđể nhận đệ quy (nhưng chỉ đến cuối tệp).
Bruno Bronosky

@BrunoBronosky: thay vì tất cả những thứ đó @q, bạn có thể chỉ cần làm 6@qhoặc 10000@qnếu bạn muốn.
Bodo

2
@bodo bạn thực sự có thể. Hầu hết các lệnh vim chấp nhận :h countsố nhân. Nhưng đối với tôi, trực quan mọi thứ trên 6 tuổi và tôi phải làm điều đó vì tôi không thể đoán được nó. Ngoại lệ là tôi biết tôi có hơn 60 hàng trên thiết bị đầu cuối của mình vì vậy tôi sẽ sử dụng số đó để ước tính cho các lần phát lại marco rất lớn. Như một phần thưởng, tôi sẽ đề nghị mọi người tìm hiểu về việc :h gngiúp dễ dàng thực hiện việc .lặp lại trên các kết quả tìm kiếm. Xem vimcasts.org/episodes/operating-on-search-matches-USE-gn
Bruno Bronosky

29

Một cách tiếp cận khác:

Nếu

  • cấu trúc YAML của bạn có các trường được xác định rõ sẽ được ứng dụng của bạn sử dụng
  • VÀ bạn có thể tự do thêm các trường bổ sung sẽ không gây rối với ứng dụng của bạn

sau đó

  • ở bất kỳ cấp độ nào, bạn có thể thêm một trường văn bản khối mới có tên như "Mô tả" hoặc "Nhận xét" hoặc "Ghi chú" hoặc bất cứ điều gì

Thí dụ:

Thay vì

# This comment
# is too long

sử dụng

Description: >
  This comment
  is too long

hoặc là

Comment: >
    This comment is also too long
    and newlines survive from parsing!

Ưu điểm hơn:

  1. Nếu các bình luận trở nên lớn và phức tạp và có một mẫu lặp lại, bạn có thể quảng cáo chúng từ các khối văn bản đơn giản đến các đối tượng
  2. Ứng dụng của bạn có thể - trong tương lai - đọc hoặc cập nhật những bình luận đó

Thông minh! Cảm ơn bạn.
Justin Krause

Tôi đoán đây là câu trả lời chén thánh cho câu hỏi; đặc biệt nếu một người muốn những nhận xét này xuất hiện trong JSON hoặc XML nếu một người muốn chuyển đổi từ YAML sang hai nhận xét này.
Mohd

7

Một cách để chặn nhận xét trong YAML là sử dụng trình soạn thảo văn bản như Notepad ++ để thêm thẻ # (nhận xét) vào nhiều dòng cùng một lúc.

Trong Notepad ++, bạn có thể thực hiện việc đó bằng cách sử dụng tùy chọn nhấp chuột "Chặn bình luận" cho văn bản đã chọn.

Hình ảnh Woo!


18
Đây không phải là cách duy nhất .
Charlie Egan

Và FWIW, phím tắt cho bàn phím đó (trong np ++) sẽ là ctrl-shift-Q (trên windows. Đối với các nền tảng khác, hãy xem menu chỉnh sửa> bình luận / không chú ý).
charlie bắt đầu

6

Nếu bạn đang sử dụng Eclipse với plugin yedit (trình soạn thảo cho các tệp .yaml), bạn có thể nhận xét nhiều dòng bằng cách:

  1. chọn dòng để bình luận, và sau đó
  2. Ctrl+ Shift+C

Và để bỏ bình luận, hãy làm theo các bước tương tự.


5

Đối với người dùng Ruby Mine trên Windows:

Mở tệp trong trình chỉnh sửa Chọn khối và nhấn Ctrl+forward slash , bạn sẽ có khối được chọn bắt đầu bằng #.

Bây giờ nếu bạn muốn hủy nhận xét khối nhận xét, hãy nhấn cùng tổ hợp phím Ctrl+ forward slashlần nữa


1
Điều đó hiệu quả với tất cả IDE của JetBrains. Tôi biết nó cũng hoạt động cho PyCharm :) Hoạt động trên Mac OSX.
Edgar Martinez

5

Emacs có bình luận-dwim (Làm những gì tôi muốn nói) - chỉ cần chọn khối và thực hiện:

M-;

Đó là một sự thay đổi - sử dụng nó để bình luận VÀ các khối không ghi chú.

Nếu bạn chưa cài đặt chế độ yaml, bạn sẽ cần nói với Emacs sử dụng ký tự băm (#).


5

Đối với người dùng Visual Studio Code (VSCode), phím tắt để nhận xét nhiều dòng là làm nổi bật các dòng bạn muốn nhận xét và sau đó nhấn:

ctrl + /

Nhấn ctrl+ /lần nữa cũng có thể được sử dụng để tắt bình luận cho một hoặc nhiều dòng được chọn.


1

Trong trình duyệt Azure Devops (trình soạn thảo đường ống yaml),

Ctrl+ K+ CKhối nhận xét

Ctrl+ K+ UKhối không ghi chú

Ngoài ra còn có tùy chọn 'Toggle Block Comment' nhưng điều này không hiệu quả với tôi. nhập mô tả hình ảnh ở đây

Cũng có nhiều cách 'wierd' khác: nhấp chuột phải để xem 'Bảng lệnh' hoặc F1

nhập mô tả hình ảnh ở đây

Sau đó chọn một tùy chọn con trỏ. nhập mô tả hình ảnh ở đây

Bây giờ chỉ là vấn đề #

hoặc thậm chí thông minh hơn [ Ctrl+ k] + [ Ctrl+ c]

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.