Asas Editor Vim di Linux

Asas Editor Vim di Linux

Vim tidak memerlukan persembahan: mungkin editor teks yang paling disayangi oleh pentadbir sistem, juga disebabkan oleh fakta bahawa ia adalah klon dan peningkatan VI asal, yang dimasukkan secara lalai dalam praktikal semua sistem operasi Linux dan Unix berasaskan. Vim boleh agak menakutkan pada mulanya, dan ia mempunyai lengkung pembelajaran yang curam; Belajar cara menggunakannya, bagaimanapun, dapat meningkatkan produktiviti kami. Dalam artikel ini kita akan mempelajari asas -asas vim.

Dalam tutorial ini anda akan belajar:

  • Cara memasang vim
  • Mengapa Vim adalah editor teks "modal" dan apakah mod vim
  • Bagaimana tweak melihat vim dan merasa menggunakan ~/.vimrc fail konfigurasi

Keperluan perisian dan konvensyen yang digunakan

Keperluan Perisian dan Konvensyen Talian Perintah Linux
Kategori Keperluan, konvensyen atau versi perisian yang digunakan
Sistem Pengedaran bebas
Perisian vim
Yang lain Tiada keperluan lain yang diperlukan
Konvensyen # - Memerlukan komando linux yang diberikan untuk dilaksanakan dengan keistimewaan akar sama ada secara langsung sebagai pengguna root atau dengan menggunakan sudo perintah
$-memerlukan komando Linux yang diberikan sebagai pengguna yang tidak berkadar biasa

Pemasangan

Anda boleh yakin bahawa vim, jika tidak dipasang secara lalai, boleh didapati di repositori pengedaran kegemaran anda, oleh itu, untuk memasangnya, yang perlu anda lakukan adalah menggunakan pengurus pakej kegemaran anda. Mengenai Debian dan Debian yang berpangkalan
pengagihan, antara yang lain, kita boleh menggunakan apt-get:

$ sudo apt-get kemas kini && sudo apt-get install vim 

Di fedora, dan lebih umum pada semua keluarga red hat pengagihan, kita boleh menggunakan DNF Pengurus Pakej untuk melaksanakan tugas:

$ sudo dnf memasang vim 

Berlari di Arch Linux? Dalam hal ini, sejak Vim dimasukkan ke dalam Tambahan repositori, memasangnya hanyalah masalah menjalankan arahan berikut:

$ sudo pacman -s vim 

Editor teks "modal"

Anda akan mendapati bahawa Vim agak berbeza dari editor teks yang mungkin anda terbiasa; Ini kerana ia adalah modal editor teks. Apakah maksudnya? Vim mempunyai sekumpulan mod kerja yang berbeza:

  • Mod biasa
  • Mod Masukkan
  • Mod visual
  • Mod arahan

Mari lihat mereka secara ringkas.

Mod biasa

The biasa mod adalah lalai. Bila masuk biasa mod, kita boleh menavigasi dengan mudah dan membuat perubahan pada dokumen. Mari lihat beberapa contoh. Katakan kami mempunyai teks berikut yang dibuka dalam editor:

Seperti yang anda lihat, kursor diposisikan pada permulaan baris pertama. Katakan kita mahu memindahkannya pada permulaan perkataan kedua ("cincin" dalam kes ini). Yang harus kita lakukan, adalah untuk menekan w kunci (pendek untuk perkataan); Ini akan bergerak ke hadapan (ke kanan) ke permulaan perkataan:



Pergerakan "songsang" diperoleh dengan menekan b Kunci - Tindakan ini akan menggerakkan kursor ke permulaan perkataan sebelumnya.

Bagaimana jika kita mahu mengulangi pergerakan itu x Beberapa kali? Yang harus kita lakukan ialah memasukkan bilangan pergerakan yang ingin kita lakukan, sebelum menekan kekunci yang sepadan dengan pergerakan yang kita ingin buat. Contohnya, untuk memindahkan kursor dua perkataan ke hadapan, kami akan menekan 2w. Menganggap kursor pada masa ini pada perkataan "cincin" pada baris pertama, kami akan memperoleh hasil ini:

Untuk menggerakkan kursor ke permulaan garis semasa, kita boleh menekan 0 kunci; The $ Kunci akan membolehkan kita memperoleh kesan yang bertentangan, jadi kursor akan dipindahkan ke hujung garisan.

Untuk berpindah ke barisan terakhir dokumen yang dibuka, kami boleh menekan G, Semasa bergerak ke baris pertama, kita boleh menekan gg.

Yang di atas hanya beberapa contoh bagaimana kita dapat dengan mudah menavigasi dokumen ketika masuk biasa mod. Dalam jadual di bawah kita dapat melihat sebilangan kecil kunci yang mungkin kita ingat dan kesannya:

Kunci KESAN
h Gerakkan kursor kiri
j Gerakkan kursor ke bawah
k Gerakkan kursor
L Gerakkan kursor dengan betul
w Bergerak maju ke permulaan perkataan
W Bergerak maju ke permulaan perkataan (tanda baca dianggap sebagai sebahagian daripada perkataan)
b Bergerak ke belakang ke permulaan perkataan
B Bergerak ke belakang ke permulaan perkataan (tanda baca dianggap sebagai sebahagian daripada perkataan)
e Bergerak maju ke akhir perkataan
E Bergerak maju ke akhir perkataan (tanda baca dianggap sebagai sebahagian daripada perkataan)
0 Bergerak ke permulaan garis
$ Bergerak ke hujung garisan
gg Pindah ke baris pertama dokumen
G Pindah ke baris terakhir dokumen
f char Pergi ke kejadian pertama watak yang ditentukan
A Bergerak melepasi hujung baris dan masukkan "Mod Masukkan"

Bila masuk biasa mod kita tidak terhad untuk melakukan pergerakan sahaja, ada juga pengendali yang membolehkan kita melakukan beberapa tindakan, sebagai contoh d (padam) atau c (ubah). Pengendali ini, digabungkan dengan usul, marilah kita melakukan tindakan besar -besaran.

Mari kita lihat contoh: kita tahu bahawa w Kunci bergerak kursor ke hadapan untuk permulaan perkataan seterusnya; Sekiranya kita menggabungkannya dengan d pengendali, kita boleh memadam keseluruhan perkataan dengan hanya satu arahan. Menganggap kursor adalah pada permulaan baris pertama teks kami, jika kami menekan DW Kami akan mendapat hasil berikut:

Seperti yang anda lihat, perkataan pertama garis ("tiga") telah dikeluarkan. Dengan cara yang sama kita dapat memadam teks dari kedudukan kursor semasa hingga akhir garis dengan menekan d $, dan sebagainya.

Mod "memasukkan" (dan "menggantikan")

The masukkan mod adalah praktikal mod kerja standard semua editor teks yang paling biasa. Apabila dalam mod ini kita boleh memasukkan teks seperti biasanya kita lakukan dengan editor lain. Bagaimana kita memasukkan mod ini? Semasa bekerja di biasa Mod, kita boleh, sebagai contoh, tekan salah satu kunci berikut:

Kunci KESAN
i Masukkan teks sebelum kursor
I Masukkan teks pada permulaan garis
a Masukkan teks selepas kursor
A Tambahkan teks pada akhir garis


Cara melaksanakan proses songsang, dan beralih dari masukkan ke biasa mod? Yang harus kita lakukan hanyalah menekan kunci atau .

The menggantikan mod sangat serupa dengan masukkan mod, satu -satunya perbezaan adalah bahawa teks yang kami masukan menimpa yang ada dan bukannya memanjangkan panjang garis. Kita boleh masuk menggantikan mod dengan menggunakan R Bila masuk
biasa mod.

Mod "visual"

Apabila dalam mod "visual", kita boleh memilih sebahagian teks dan melaksanakan beberapa operasi di atasnya. Mod visual boleh berfungsi pada tiga tahap yang berbeza:

  • Watak
  • Garis
  • Blok

Untuk memasukkan "seluruh watak" visual mod, ketika masuk biasa mod kita boleh menekan v kunci; Untuk membolehkan mod maya "line-wise", sebaliknya, kita boleh menggunakan V (huruf besar). Akhirnya, untuk memasukkan mod visual "blok-bijak", kita boleh menekan .

VIM Visual Line

Dalam gambar di atas, anda dapat melihat bagaimana editor kelihatan, apabila mod visual "line-wise" diaktifkan. Kekunci yang sama yang dibincangkan di atas, boleh digunakan untuk beralih antara mod visual; Tambahan pula, jika kita sudah berada dalam mod visual tertentu, dan kita menekan kekunci yang mengaktifkannya, kita akan beralih ke biasa Mod:

Mod visual semasa Kunci Kesan
watak yang bijak v Beralih ke mod biasa
watak yang bijak V Beralih ke mod visual yang bijak
watak yang bijak \ Beralih ke mod visual yang bijak blok
line-wise v Beralih ke mod visual yang bijak watak
line-wise V Beralih ke mod biasa
line-wise \ Beralih ke mod visual yang bijak blok
blok-bijak v Beralih ke mod visual yang bijak watak
blok-bijak V Beralih ke mod visual yang bijak
blok-bijak \ Beralih ke mod biasa

Kekunci pergerakan yang kita lihat dalam mod biasa, juga boleh digunakan dalam mod visual. Contohnya, ketika kita bekerja dalam mod visual yang bijak, dan kita ingin memilih dari titik tertentu ke kejadian pertama surat yang dapat kita gunakan
f char.

Apabila sebahagian teks dipilih, kita boleh, sebagai contoh, memotongnya dengan menekan d kata kunci, atau menyalinnya dengan menggunakan y.

"Mod baris arahan"

Untuk memasuki mod baris arahan kita boleh menekan : kunci atau / Untuk memulakan carian teks ketika berada dalam mod biasa. Apabila kita berada dalam mod ini, kita boleh memasukkan arahan untuk dilaksanakan setelah kita menekan (kekunci 'kembali'). Salah satu arahan paling mudah yang dapat kita jalankan ketika masuk mod baris arahan adalah:

: Bantuan 

Apabila arahan dilaksanakan, penampan baru akan dibuka menunjukkan halaman bantuan utama VIM:

Halaman bantuan vim dalam versi VIM baru -baru ini, kita boleh menggunakan terminal Perintah untuk membuka emulator terminal ke dalam editor teks:
: terminal 

Hasil pelaksanaan perintah adalah:

Terminal vim vim

Seperti yang telah kita katakan, untuk melakukan carian teks yang boleh kita tekan / dan taipkan teks yang ingin kami cari dalam dokumen. Secara lalai carian itu sensitif kes (ini boleh diubah suai melalui fail konfigurasi VIM menggunakan Tetapkan ignorecase arahan). Sebagai contoh, katakan kami ingin mencari perkataan "cincin" dalam teks contoh kami. Kami menulis arahan berikut dengan menekan "Enter":

/Cincin 

Untuk menembusi hasil yang diserlahkan, kita boleh menekan n, dan untuk menghapuskan penonjolan kata -kata yang dapat kita laksanakan Noh Perintah:

: Noh 

Kita boleh guna mod baris arahan juga untuk melakukan penggantian teks. Katakan sebagai contoh kita mahu menggantikan semua kejadian "cincin" dengan "Jewel". Apa yang akan kita lakukan, dalam kes ini adalah menggunakan pengganti Perintah: s. The
Perintah yang perlu kita jalankan ialah:

:%s/cincin/permata/g 

The % simbol yang kami gunakan sebelum arahan dibuat supaya operasi dilakukan di seluruh dokumen, sementara g dilampirkan selepas penggantian digunakan untuk melaksanakan penggantian pada semua kejadian yang terdapat pada baris (vs hanya yang pertama).

Apabila kita menggunakan pengganti Perintah kita juga boleh menggunakan "pengubah" yang lain. Contohnya, jika kita menambah a c Selepas corak penggantian kami akan diminta untuk mengesahkan setiap penggantian; i, sebaliknya akan membuat pengganti kes-insensitif.

Pelbagai tindakan arahan boleh dihadkan kepada beberapa baris tertentu. Untuk melaksanakan penggantian teks hanya pada baris dari yang pertama ke keenam (inklusif) dokumen, kami akan menulis:

: 1,6s/cincin/permata/g 

Julat yang sama boleh digunakan, sebagai contoh, dengan d (Padam) Perintah, untuk memadamkan garis yang disebutkan di atas:

: 1,6d 

Bila masuk perintah mod talian, kita juga boleh memohon luaran program dalam shell: yang perlu kita lakukan adalah untuk menyediakan arahan tersebut dengan ! simbol. Sebagai contoh, untuk melihat fail (tidak tersembunyi) dalam direktori kerja semasa, kami boleh menggunakan ls -l Perintah:

:!ls -l 

Kami akan mendapat hasil berikut:

Jumlah 36 DRWXR-XR-X. 2 EGDOC EGDOC 4096 OCT 31 12:45 Desktop DRWXR-XR-X. 2 EGDOC EGDOC 4096 31 Okt 12:45 Dokumen DRWXR-XR-X. 2 EGDOC EGDOC 4096 2 Nov 10:37 Muat turun -RW-R---. 1 EGDOC EGDOC 373 3 Nov 11:30 LOTR.TXT DRWXR-XR-X. 2 EGDOC EGDOC 4096 OCT 31 12:45 MUSIK DRWXR-XR-X. 2 EGDOC EGDOC 4096 4 Nov 08:19 Gambar DRWXR-XR-X. 2 EGDOC EGDOC 4096 OCT 31 12:45 AWAM DRWXR-XR-X. 2 EGDOC EGDOC 4096 31 Okt 12:45 Templat DRWXR-XR-X. 2 EGDOC EGDOC 4096 OCT 31 12:45 Video Tekan Enter atau Taip Perintah untuk Teruskan 

Seperti yang dicadangkan oleh mesej, untuk kembali ke editor, kita mesti menekan Masukkan. Ini hanya sedikit, contoh asas arahan yang boleh kita gunakan di Vim.

Menyesuaikan Vim

Rupa dan rasa Vim boleh disesuaikan melalui fail konfigurasinya: ~/.vimrc. Secara lalai antara muka editor adalah sangat minimum: bahkan nombor baris dipaparkan! Biarkan ini menjadi perkara pertama yang akan kita ubah.

Memaparkan nombor talian

Kami membuka fail konfigurasi dan tampal arahan berikut di dalamnya:

Tetapkan nombor 

Biasanya, untuk melihat kesan perubahan yang kita buat, kita harus menutup dan membuka semula VIM; Walau bagaimanapun, kita boleh mengeluarkan : jadi ~/.vimrc perintah untuk membiayai fail konfigurasi dan membuat perubahan dengan segera berkesan. Disebabkan oleh
Arahan yang kami gunakan, nombor baris kini dipaparkan:

Sorot panjang lajur dan had panjang

Satu lagi ciri biasa yang ingin kami gunakan, terutamanya semasa menulis kod, adalah untuk menyerlahkan lajur tertentu. Semasa menulis program python atau skrip shell, sebagai contoh, kami biasanya tidak mahu melebihi 80 kolum; Untuk menyerlahkan lajur, kita mesti menambah arahan berikut ke dalam fail konfigurasi:

Tetapkan ColorColumn = 80 

Dalam gambar di bawah, anda dapat melihat hasil perubahan. Lajur yang kami tentukan kini diketengahkan:

Sekiranya kita benar -benar mahu menguatkuasakan peraturan mengenai bilangan maksimum watak yang boleh dimasukkan pada baris, kita harus menggunakan TextWidth Arahan sebaliknya:

Tetapkan TextWidth = 79 

Oleh kerana perubahan di atas, jika perkataan baru tidak sesuai dengan bilangan aksara yang ditentukan, ia akan dimasukkan secara automatik dalam barisan baru.

Gunakan ruang dan bukannya tab

Satu lagi perubahan biasa yang mungkin kita mahu lakukan ialah menggunakan beberapa ruang tertentu di tempat a Tab watak apabila kekunci yang sepadan ditekan pada papan kekunci. Untuk mencapai persediaan yang dikehendaki, kami ingin menggunakan arahan berikut:

Tetapkan TabStop = 2 Set SoftTabStop = 2 Set ExpenTab Set ShiftWidth = 2 

Dalam persediaan di atas, kami menetapkan Tabstop Arahan untuk menetapkan saiz "sebenar" Tab watak. The Softtabstop, Arahan, sebaliknya, digunakan untuk menentukan bilangan ruang yang harus digunakan untuk menggantikan a Tab apabila memperluas Arahan digunakan. Dalam kes itu, setiap kali kita menekan Tab Kunci pada papan kekunci, vim akan memasukkan jumlah ruang yang kami tentukan Softtabstop. Akhirnya, shiftwidth Pilihan digunakan untuk menentukan tahap lekukan yang digunakan untuk perintah auto dan untuk perintah shift.

Tetapan khusus fileType

Bagaimana jika kita mahu menentukan beberapa tetapan untuk digunakan hanya untuk jenis fail tertentu? Dalam hal ini kita mesti mengaktifkan terbina dalam plugin fileType. Untuk berbuat demikian, kami menambahkan baris berikut ke fail konfigurasi:

Plugin FileType dihidupkan 

Pada ketika ini, di dalam ~/.vim/selepas/ftplugin Direktori (kita perlu menciptanya jika tidak wujud), kita mesti membuat fail yang dinamakan selepas filetype yang kita mahu menentukan tetapan untuk, dan menggunakan ".vim "sambungan.

Sebagai contoh, untuk menentukan tetapan untuk fail python, kami akan membuat ~/.vim/selepas/ftplugin/python.vim fail dan masukkan arahan kami di dalamnya. Satu -satunya perkara yang disyorkan ialah menggunakan setlocal arahan dalam fail dan bukannya Tetapkan, Untuk membuat perubahan hanya sah untuk penampan yang dibuka, dan bukan global. Katakan sebagai contoh kita mahu menggantikan a Tab watak dengan 4 ruang hanya dalam skrip python. Di dalam ~/.vim/selepas/ftplugin/python.vim fail yang akan kami tulis:

setLocal softTabStop = 4 setlocal shiftWidth = 4 

Apa yang kita gunakan di sini hanya subset yang sangat kecil dari pilihan yang boleh kita gunakan dalam fail konfigurasi VIM untuk mengubahsuai rupa dan nuansa editor; Apa yang ingin kita tunjukkan di sini adalah mekanisme asas.

Kesimpulan

Dalam artikel ini, kami memulakan pendekatan pertama kami dengan apa yang mungkin editor teks yang paling terkenal dan disayangi di platform Linux dan Unix berasaskan: Vim. Kami melihat bagaimana Vim dicipta sebagai klon asal Vi Editor, yang dipasang secara lalai pada hampir semua pengagihan, kami melihat mengapa ia dipanggil modal editor teks, dan apakah mod yang boleh kita gunakan.

Akhirnya, kita melihat bagaimana untuk mengubah rupa dan rasa editor dengan menulis arahan di ~/.vimrc fail konfigurasi. Kami hampir tidak menggaru permukaan apa yang dapat kami capai dengan menggunakan Vim, kerana ini dimaksudkan sebagai panduan langkah pertama ke dunia vim. Kami akan membincangkan ciri -ciri tertentu yang lebih mendalam dalam tutorial masa depan. Tinggal!

Tutorial Linux Berkaitan:

  • Perkara yang hendak dipasang di Ubuntu 20.04
  • Pengenalan kepada Automasi, Alat dan Teknik Linux
  • Cara mengklon sistem linux
  • Perkara yang perlu dilakukan setelah memasang ubuntu 20.04 Focal Fossa Linux
  • Menguasai Gelung Skrip Bash
  • Mint 20: Lebih baik daripada Ubuntu dan Microsoft Windows?
  • Partition klon di linux
  • Muat turun linux
  • Pembalakan Lanjutan dan Pengauditan di Linux
  • Cara Dual Boot Kali Linux dan Windows 10