GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana cara membuat tambalan yang mengabaikan perbedaan lekukan pada kode?

diff memiliki opsi untuk mengabaikan perubahan spasi (-w ), sama untuk patch (-l ). Secara umum, abaikan spasi putih adalah ide yang buruk, jadi Anda harus mencadangkan penggunaannya untuk kasus khusus, saat editor seseorang melakukan sesuatu yang mengerikan...


diff memiliki lebih dari satu opsi yang terkait dengan spasi. Namun, satu kurang berguna untuk tambalan. Halaman manual memberikan petunjuk yang tidak jelas, mengacu pada kedua GNU:

   -B, --ignore-blank-lines
          ignore changes where lines are all blank
   -b, --ignore-space-change
          ignore changes in the amount of white space
   -w, --ignore-all-space
          ignore all white space

dan FreeBSD

   -b     Ignore changes in amount of white space.
   -B     Ignore changes that just insert or delete blank lines.
   -w     Ignore white space when comparing lines.

Biasanya seseorang menggunakan -b , karena kecil kemungkinannya untuk mengabaikan perubahan yang signifikan. Jika yang diubah hanya indentasinya saja, maka keduanya -b dan -w memberikan hasil yang sama. Di sisi lain, jika Anda menyisipkan spasi yang tidak ada, atau menghapus spasi yang ada (tidak menyisakan apa pun), itu bisa menjadi perubahan dalam program Anda. Ini contohnya:

$ diff foo.c foo2.c
4c4
<     setlocale(LC_ALL, "");
---
>     setlocale(LC_ALL, " ");
6,7c6,7
<     printw("\U0001F0A1");
<     getch();
---
>     printw ("\U0001F0A1");
>     getch();  /* comment */
$ diff -b foo.c foo2.c
4c4
<     setlocale(LC_ALL, "");
---
>     setlocale(LC_ALL, " ");
6,7c6,7
<     printw("\U0001F0A1");
<     getch();
---
>     printw ("\U0001F0A1");
>     getch();  /* comment */
$ diff -w foo.c foo2.c
7c7
<     getch();
---
>     getch();  /* comment */

Dalam hal ini, -w opsi memungkinkan Anda untuk mengabaikan perubahan pada setlocale parameter (mungkin bukan yang dimaksud).

Omong-omong, diff POSIX hanya memiliki -b opsi.

Untuk patch , POSIX mendokumentasikan -l opsi:

-l
(Surat ell .) Menyebabkan urutan <blank> karakter dalam skrip perbedaan agar cocok dengan urutan <blank> karakter dalam file masukan. Karakter lain harus dicocokkan persis.


Linux
  1. Cara Membuat Database di MySQL Menggunakan Command Line

  2. Cara Membuat Alias ​​​​dan Menggunakan Perintah Alias ​​​​di Linux

  3. Cara Memasang Editor Kode Kurung di Ubuntu 20.04

  1. Linux – Bagaimana Cara Membuat Patch Mengabaikan Perbedaan Indentasi Dalam Kode?

  2. Bagaimana cara membaca kode sumber perintah shell?

  3. Bagaimana cara mengubah font UI Visual Studio Code?

  1. Bagaimana Cara Membuat Jendela Baru Di Direktori Saat Ini Di Tmux?

  2. Bagaimana Mendapatkan Informasi Lebih Lanjut Tentang Asal Usul Kode Keluar?

  3. Bagaimana cara mengabaikan beberapa perbedaan dalam perintah diff?