Làm cho GNU thụt lề bình luận dài


7

Có cách nào để thuyết phục GNU thụt lề để phá vỡ bình luận dài và thay đổi nó thành bình luận đa dòng không? Một cái gì đó như thế này:

// Very long comment, longer than 80 characters. Just imagine that.

Về điều này:

/*
 * Very long comment, longer than 80 characters. Just
 * imagine that.
 */

Tôi biết rằng định dạng thứ hai có thể được thực hiện đơn giản bằng '-cdb -sc', nhưng tôi không biết làm thế nào để đảm bảo ngắt dòng và thay đổi loại nhận xét. Nó thậm chí có thể?


Bạn đã tìm thấy một câu trả lời cho điều này? bởi vì tôi đang đối mặt với cùng một vấn đề và cần biết làm thế nào để làm điều đó.
m4l490n

Không may măn. Nó dường như là không thể với thụt đầu dòng. Tôi đã không tìm thấy nó trong tài liệu.
Citrisin

Câu trả lời:


1
sed -i '\_//_{s_//_/* _g;s_$_ */_g}' file.c
indent -fc1 -fca -sc -cdb file.c
sed -i 's/\/\*\(.*\)\*\/$/\/\/\1/' file.c

làm những gì bạn yêu cầu, nhưng tôi sẽ thận trọng vì nó có thể bỏ lỡ một số trường hợp cạnh

Đầu vào:

// Lorem ipsum dolor sit amet, apeirian constituam interpretaris no his, soluta salutandi persequeris vel ne, facete impedit contentiones te eam. Ut utamur habemus qualisque usu
#include <stdio.h>
int main () // damn
{
  puts ("hello world" /* sheeet */); }              /* oh shit */

Đầu ra:

/*
 * Lorem ipsum dolor sit amet, apeirian constituam interpretaris no his,
 * soluta salutandi persequeris vel ne, facete impedit contentiones te eam.
 * Ut utamur habemus qualisque usu
 */
#include <stdio.h>
int
main ()             // damn
{
  puts ("hello world" /* sheeet */ );
}               // oh shit

1

Tôi đã làm điều này để làm việc, vì một số lý do, nó đòi hỏi cả hai -fc1-fcacác tùy chọn:

indent -fc1 -fca j.c

Ngoài ra, bạn có thể sử dụng kiểu Berkeley:

indent -orig j.c

Đầu vào:

// Lorem ipsum dolor sit amet, apeirian constituam interpretaris no his, soluta salutandi persequeris vel ne, facete impedit contentiones te eam. Ut utamur habemus qualisque usu
#include <stdio.h>
int main(){puts("hello world");}

Đầu ra:

// Lorem ipsum dolor sit amet, apeirian constituam interpretaris no his,
// soluta salutandi persequeris vel ne, facete impedit contentiones te eam.
// Ut utamur habemus qualisque usu
#include <stdio.h>
int
main ()
{
  puts ("hello world");
}

Thí dụ


Một phần đây là một số giải pháp, nhưng nó phá vỡ phong cách (nhận xét nhiều dòng nên là / * * /). Ý tưởng là nó sẽ không chỉ chuyển sang dòng mới mà còn thay đổi loại bình luận. Tôi sẽ chấp nhận câu trả lời này sau một thời gian nếu không ai tìm ra giải pháp tốt hơn, nhưng đó không phải là chính xác những gì tôi cần.
Citrisin
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.