vimrc - làm thế nào để chặn bình luận?


14

Tôi không muốn bình luận các dòng văn bản trong một tệp văn bản hoặc mã. Tôi đang tìm cách chèn bình luận khối trong tệp .vimrc . Để chèn một dòng chú thích "được sử dụng, ví dụ:

" remove spaces and tabs as well  at the end of line automatically while saving
autocmd BufWritePre * :%s/\s\+$//e

Bây giờ tôi đã có một lượng cài đặt / cấu hình / plugin tương đối lớn được thu thập qua nhiều năm sau khi duyệt qua internet để thêm các tính năng thú vị. Tôi đang tìm cách thêm một số khối nhận xét lớn vào tệp .vimrc của mình. Thêm "vào mỗi dòng là một tùy chọn nhưng tôi đang tìm kiếm một cú pháp nhận xét khối. Tương tự như /**/trong C.

//giống "
/* */hệt với _ ____ ?

Tìm kiếm Unix.SE, SO và googling không giúp được gì nhiều.


1
Tôi nghi ngờ tính năng nhận xét nhiều dòng không tồn tại trong các tệp vim-config.
Dilawar

Câu trả lời:


5

Tôi không nghĩ rằng điều này là có thể. Điều tốt nhất bạn sẽ có thể làm là chặn chọn một số văn bản và thực hiện tìm kiếm / thay thế trên ký tự đầu tiên s/^/"/trong vim để chèn một ký tự vào "đầu mỗi dòng.

Plugin vim NERD Commenter cũng có thể giúp làm điều này dễ dàng hơn.


1
Tôi sử dụng cách giải quyết:., + 3s / ^ / "/ trong đó dấu chấm đại diện cho dòng hiện tại và +3 đại diện cho số dòng liên tiếp (sau dòng dấu chấm).
daGo

6

Giải pháp của tôi là bọc mã bên trong a function.

Điều này hoạt động tốt trong vimrc, ví dụ, đối với các bài kiểm tra đánh dấu cú pháp heredoc tại chỗ , cũng yêu cầu nhận xét khối thực mà không có ký tự đầu. Trong vimrc của tôi, tôi sử dụng một khối như vậy trực tiếp sau khi thiết lập heredoc tôi SyntaxRanges .

function! _blockcomment()

    " free text comment
    You can write free text here,
    but vim will try to highlight it as vimscript!

    " markdown heredoc
    test <<MD
    ### Nevertheless ###
    * for testing my fuzzy SyntaxRange heredocs
    * having no leading chars is essential
    * and the blockcomment function does the trick
    MD  

endfunction 

Giải pháp này tương tự như if 0mẹo của @ Stéphane , không hiệu quả với tôi. Chỉ cần đảm bảo không bao giờ gọi chức năng này!


1

Một mẹo:

  • đặt con trỏ lên ký tự đầu tiên của dòng đầu tiên để bình luận
  • nhấn Ctrl-V để vào chế độ Visual Block
  • đưa con trỏ xuống cho đến dòng cuối cùng để bình luận
  • nhấn I (shift + i) để vào chế độ chèn có điều kiện
  • nhấn '"' để bình luận (trích dẫn và dấu cách)
  • nhấn Esc để thoát chế độ chèn

Tất cả các dòng đã chọn của bạn hiện được thêm vào bởi chuỗi bạn đã nhập trong chế độ chèn.


Cảm ơn nhưng tôi đã tìm kiếm chính xác phong cách bình luận khối trong vimrc .
mtk

Tôi không nghĩ có một tính năng như vậy trong vim. Nhân tiện, nó không quá phổ biến. Trong nhiều ngôn ngữ tập lệnh, thông thường hơn là sử dụng nhận xét một dòng trên một loạt các dòng.
lgeorget

1

Sử dụng tCommentplugin cho Vim: http://www.vim.org/scripts/script.php?script_id=1173

Vâng, nó hỗ trợ Python (được thêm vào năm 2011).

Mô tả: TComment hoạt động giống như một chuyển đổi, nghĩa là, nó sẽ nhận xét văn bản có chứa các dòng không bị lỗi và nó sẽ không ghi chú văn bản đã nhận xét (tức là văn bản không chứa các dòng không có ký tự).

Nếu loại tệp được xác định đúng, TComment sẽ chỉ ra chuỗi nhận xét nào sẽ sử dụng dựa trên các giá trị của & chuỗi nhận xét hoặc & nhận xét. Đối với một số kiểu tệp, định nghĩa nhận xét được xác định rõ ràng. Bạn có thể | tcomment # DefineType () | để thêm định nghĩa của riêng bạn.

TComment biết cách xử lý mã nhúng của một loại tệp khác với loại tệp chính, ví dụ: vùng ruby ​​/ python / perl trong tập lệnh vim, HTML hoặc JavaScript trong mã php, v.v.

Là toán tử (tiền tố có thể được tùy chỉnh thông qua g: tcommentMapLeaderOp1 và g: tcommentMapLeaderOp2):

gc{motion}   :: Toggle comments (for small comments within one line 
                the &filetype_inline style will be used, if 
                defined) 
gcc          :: Toggle comment for the current line 
gC{motion}   :: Comment region 
gCc          :: Comment the current line 

Bản đồ khóa chính:

<c-_><c-_>   :: :TComment 
<c-_><space> :: :TComment <QUERY COMMENT-BEGIN ?COMMENT-END> 
<c-_>b       :: :TCommentBlock 
<c-_>a       :: :TCommentAs <QUERY COMMENT TYPE> 
<c-_>n       :: :TCommentAs &filetype <QUERY COUNT> 
<c-_>s       :: :TCommentAs &filetype_<QUERY COMMENT SUBTYPE> 
<c-_>i       :: :TCommentInline 
<c-_>r       :: :TCommentRight 
<c-_>p       :: Comment the current inner paragraph 

Ngoài ra còn có một bộ bản đồ chính thứ cấp với _ là người lãnh đạo (thích hợp hơn trên các thiết bị đầu cuối).


1

Có plugin thay đổi cuộc sống này bằng cách tpopegọivim-commentary

https://github.com/tpope/vim-commentary

Plugin này cung cấp :

  • Sự tỉnh táo
  • Nhận xét thụt lề đúng cách
  • Không bình luận ra những dòng trống / không cần thiết

Cách sử dụng :

  • Cài đặt qua Vundle (hoặc Pathogen tôi đoán).
  • Đánh dấu văn bản của bạn và nhấn :sẽ hiển thị như:<,'>
  • Nhập bình luận ở đây :<,'>Commentaryvà nhấn enter.
  • Bom. Nụ của bạn đã hoàn thành
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.