Panduan untuk Mengurutkan Garis di Vim

Panduan Untuk Mengurutkan Garis Di Vim



Untuk mengurutkan baris di Vim, Anda dapat menggunakan bawaan menyortir perintah yang mengurutkan garis berdasarkan rentang yang ditentukan. Biasanya, semua baris dalam dokumen diurutkan jika tidak ada rentang yang diberikan.

Misalnya, jika Anda ingin mengurutkan seluruh dokumen, gunakan :menyortir perintah dalam mode NORMAL. Sebaliknya, jika Anda hanya ingin mengurutkan baris tertentu, gunakan :x,y urutkan perintah, di mana X Dan Dan tentukan rentang dari nomor baris X ke Dan .







Penyortiran adalah salah satu fungsi penting yang diperlukan saat mengedit dokumen. Vim tidak kalah dengan editor tingkat lanjut mana pun dalam hal menyediakan fitur unik seperti pengurutan. Oleh karena itu, dalam panduan ini, saya akan menjelaskan bawaan Vim menyortir perintah, dan cara menggunakannya dengan berbagai cara untuk mengurutkan baris.



Catatan: Instruksi dan perintah yang disebutkan dalam panduan ini dijalankan di Linux (Ubuntu 22.04). Vim adalah editor teks lintas platform, dan perintah ini juga akan berfungsi tanpa kesalahan apa pun di macOS dan Windows.



Urutkan Semua Garis





Untuk mengurutkan semua baris dalam dokumen, jalankan menyortir perintah dalam mode NORMAL.

:menyortir



Secara default, menyortir perintah akan mengurutkan baris dalam urutan leksikografis.

Perhatikan bahwa jika file Anda memiliki baris kosong, maka perintah sortir akan menempatkan baris kosong tersebut di bagian atas pengurutan teks sebenarnya.

Urutkan Garis yang Dipilih

Untuk mengurutkan garis yang dipilih, pertama-tama kita harus memilihnya dalam mode pemilihan. Dan untuk mengaktifkan mode pemilihan, tekan di dalam , dan pilih garis menggunakan H , J , k, Dan aku tombol atau tombol arah.

Vim juga memiliki mode pemilihan baris tertentu yang disebut GARIS VISUAL mode. Tekan V (pergeseran+v) untuk mengaktifkan GARIS VISUAL mode untuk memilih garis.

Setelah memilih garis, Anda akan melihat ' <, ' > di baris perintah, yang mewakili rentang pilihan. ' < menunjukkan baris pertama seleksi visual, sedangkan ' > menunjukkan yang terakhir.

Sekarang, ketikkan saja menyortir perintah, dan tekan tombol kembali untuk menerapkan pengurutan pada baris yang dipilih seperti yang ditunjukkan dalam GIF berikut.

Urutkan Garis Berjarak

Rentang garis dapat dilewati sebelum menyortir perintah untuk mengurutkan garis. Itu : tetapkan nomor perintah dapat digunakan untuk mengaktifkan nomor baris di Vim, sehingga memudahkan untuk mengidentifikasi nomor baris.

Misalnya untuk mengurutkan baris dari baris nomor 1 ke baris nomor 4, gunakan :1,4 urutkan memerintah.

: 1 , 4 menyortir

Seperti dapat dilihat pada keluaran di atas bahwa hanya baris tertentu yang diurutkan.

Urutkan secara Terbalik

Seperti disebutkan sebelumnya, perilaku default dari menyortir perintahnya adalah mengurutkan baris dalam urutan leksikografis. Untuk mengurutkan baris secara non-leksikal, tambahkan tanda seru ( ! ) setelah menyortir memerintah.

:menyortir !

Urutkan berdasarkan Lokal

Komputer dioperasikan di seluruh dunia, memiliki bahasa berbeda dengan rangkaian karakter dan aturan berbeda. Saat menyortir susunan berdasarkan masalah lokal. Misalnya, jika Anda tinggal di Jepang dan ingin mengurutkan garis berdasarkan lokasi tersebut, maka Anda harus menentukannya. Itu menyortir perintah juga menyediakan untuk mengatur opsi lokal dengan aku bendera.

Untuk memeriksa lokal pemeriksaan saat ini, gunakan :bahasa memerintah.

:bahasa

Untuk mengurutkan berdasarkan penggunaan lokal saat ini:

: keberuntungan l

Catatan: Opsi ini mungkin tidak berfungsi dengan baik pada sistem berbasis macOS.

Urutkan berdasarkan Nomor

Untuk mengurutkan baris berdasarkan angka desimal pertama dalam sebuah baris, gunakan N bendera dengan menyortir memerintah. Penyortiran akan dilanjutkan dalam urutan menaik secara default.

: urutkan n

Untuk mengurutkan dalam urutan menurun, gunakan ! simbol setelah perintah.

:menyortir ! N

Perbedaan antara menyortir Dan urutkan n adalah perintah sortir mengurutkan baris secara leksikal, mengabaikan angka di dalamnya. Jika Anda ingin mengurutkan berdasarkan angka, tambahkan N tandai dengan perintah sortir.

Misalnya, baris pada file berikut juga memiliki huruf dan angka. Saat kita mengurutkannya dengan menerapkan menyortir perintah saja, baris-baris ini akan diurutkan berdasarkan abjad. Di sisi lain, menerapkan urutkan n perintah urutkan baris berdasarkan nomor seperti yang ditunjukkan pada gambar berikut.

Beberapa opsi lain untuk pengurutan numerik disebutkan dalam tabel berikut.

F Penyortiran nomor mengambang
B Penyortiran bilangan biner
HAI Penyortiran bilangan oktal
H Penyortiran angka heksadesimal

Urutkan berdasarkan Tanda

Di Vim, tanda digunakan untuk mengatur posisi tertentu dalam file untuk memudahkan navigasi file dengan ratusan baris. Tanda dapat digunakan untuk melakukan operasi pengurutan menggunakan menyortir memerintah.

Misalkan Anda telah menetapkan dua tanda A Dan B .

Jadi, untuk mengurutkan semua baris dari tanda A untuk menandai B , gunakan perintah berikut.

: 'A,' B menyortir

Kutipan tunggal ( ' ) digunakan untuk mengakses tanda.

Urutkan berdasarkan Ekspresi Reguler (RegEx)

Ekspresi reguler (RegEx) adalah salah satu cara umum untuk mengurutkan garis dengan mendefinisikan pola menggunakan menyortir memerintah.

Misalnya, untuk mengurutkan baris berdasarkan kolom yang memiliki huruf dan angka, gunakan /[a-z]*[0-9]+/ pola dengan menyortir memerintah. Itu R bendera setelah menyortir perintah digunakan untuk menginstruksikan perintah untuk mengurutkan berdasarkan pola yang disebutkan.

: urutkan r / [ az ] * [ 0 - 9 ] + /

Seperti yang Anda lihat pada gambar di atas, kolom terakhir diurutkan berdasarkan abjad. Untuk mengurutkan kolom secara numerik, cukup masukkan N bendera.

Catatan: Saya melewatkan baris pertama dengan menentukan rentang dari baris 2,5.

Itu R flag memungkinkan Anda mengurutkan file berdasarkan pola yang diberikan. Tanpa R flag, perintah sort akan mengurutkan semua baris yang tidak sesuai pola.

Hapus Garis Duplikat

Cara tercepat untuk menghapus baris duplikat dalam sebuah file adalah dengan menggunakan menyortir perintah dengan di dalam bendera, yang melambangkan keunikan.

:variasi kamu

Perhatikan bahwa menggunakan metode ini untuk menghapus garis duplikat juga akan mengurutkan garis, yang mungkin tidak diinginkan dalam banyak situasi. Gunakan metode alternatif, seperti regex, untuk menghapus baris duplikat dalam file tanpa perlu menyortir.

Urutkan Garis Berdasarkan Kolom

Ada dua metode untuk mengurutkan baris di Vim berdasarkan kolom. Metode pertama menggunakan perintah sortir Linux eksternal, sedangkan metode kedua menggunakan perintah sortir bawaan.

Perintah eksternal mudah diterapkan dibandingkan dengan perintah sortir default. Perhatikan bahwa perintah eksternal bukanlah perintah default Vim. Artinya perintah apa pun yang didukung oleh sistem operasi.

Mari kita pahami cara kerjanya di Vim.

Untuk menggunakan perintah eksternal apa pun di Vim, ! simbol digunakan sebelum perintah itu. Asumsikan kita memiliki file yang dipisahkan koma (CSV) dan ingin mengurutkan file berdasarkan kolom ketiga. Perintahnya adalah

: %! menyortir -T ',' -k3

Itu % menunjukkan seluruh buffer sebagai pilihan. Itu -T bendera digunakan untuk mendefinisikan pemisah bidang, yang dapat berupa koma, titik dua, atau bahkan spasi. Itu -k bendera adalah kunci yang menunjukkan posisi di garis, dan k2 berarti bidang kedua setelah pembatas yang ditentukan.

Dalam contoh, saya telah menyebutkan rentangnya % untuk melewati baris pertama.

: 2 , 5 ! menyortir -T ',' -k3

Eksternal menyortir Perintah juga dapat berguna dalam banyak hal karena ia menawarkan berbagai opsi pengurutan seperti pengacakan, pengurutan acak, dan penggabungan. Untuk mempelajari lebih lanjut tentang perintah pengurutan Linux, gunakan bantuan manusia memerintah.

Di sisi lain, untuk menggunakan bawaan Vim menyortir perintah, pola ekspresi reguler akan digunakan dengan perintah sortir.

:menyortir / \v^ ( . { - } , ) { 2 } /

Dalam perintah di atas:

  • \di dalam mewakili tab vertikal
  • ^ menunjukkan awal baris
  • (.{-},) adalah kelompok yang akan di mana .{-} adalah versi yang tidak serakah .* Dan , adalah bidang pemisahan
  • {2} mewakili 2 kolom pertama yang dilewati

Dapat dilihat bahwa R bendera tidak digunakan dengan pola, yang berarti pola akan melewati kolom mana pun yang cocok dan mengurutkan kolom setelah pola. Dalam hal ini, file akan diurutkan berdasarkan kolom ketiga. Sekali lagi pada contoh berikut, untuk melewati baris pertama, saya menggunakan rentang 2,5.

Perbedaan mendasar antara .* Dan .{-} Apakah itu .{-} akan memproses algoritma shortest match first, sedangkan .* akan cocok sebanyak mungkin. Misalnya pada string wxyz tersebut x.*y akan cocok dengan seluruh string sementara x.{-}y hanya akan cocok dengan xy.

Urutkan Garis Tidak Peka Huruf Besar-kecil

Jika Anda mengurutkan baris yang dimulai dengan huruf besar dan kecil, maka perintah sortir akan mengurutkan baris yang menggunakan huruf besar terlebih dahulu. Nah, untuk mengabaikan sensitivitas huruf besar-kecil, gunakan Saya bendera.

Seperti yang Anda lihat pada gambar berikut, garis yang tidak disortir dan diurutkan dengan keduanya :menyortir Dan : urutkan saya perintah.

Kesimpulan

Penyortiran di Vim dapat dengan mudah dilakukan menggunakan Vim bawaan menyortir memerintah. Secara default, baris diurutkan berdasarkan abjad, namun jika Anda ingin mengurutkan secara terbalik maka gunakan ! tanda tangan setelah perintah. Perintah sortir biasanya mengurutkan seluruh buffer; suatu rentang juga dapat ditentukan dengan pemisah koma. Itu N flag digunakan untuk pengurutan numerik, sedangkan untuk menghapus baris duplikat di dalam bendera digunakan. Selain itu, untuk meningkatkan proses penyortiran, eksternal menyortir perintah juga dapat digunakan di Vim.

Untuk mempelajari lebih lanjut tentang pengurutan di Vim, jalankan :membantu menyortir memerintah.