GNU/Linux >> Belajar Linux >  >> Linux

Lima plugin Vim teratas untuk sysadmin

Tahun lalu saya menulis artikel 5 plugin Vim yang berguna untuk pengembang untuk Opensource.com. Artikel ini mengikuti ide serupa tetapi berfokus pada plugin yang membuat sysadmin lebih produktif, terlepas dari skrip, bahasa pemrograman, atau kerangka kerja apa yang mereka gunakan. Ada kelas lain dari plugin Vim yang berfokus pada penyelesaian kode dan pemeriksaan sintaks yang sengaja tidak dibahas dalam artikel ini. Mereka akan menjadi topik untuk posting lain.

Juga, artikel ini tidak memberikan petunjuk penginstalan untuk plugin ini. Anda dapat menggunakan pengelola paket asli Vim 8 atau pengelola plugin favorit Anda. Jika Anda menginginkan pengelola plugin tanpa embel-embel untuk Vim, lihat Pathogen. Ini menyediakan cara standar untuk menginstal plugin dengan mengkloning repositori mereka langsung di bawah .vim/bundle direktori dengan pembuatan bantuan otomatis.

1. Maskapai Vim

Vim Airline adalah plugin yang menggantikan baris status Vim standar dengan bilah status yang mewah dan berguna. Vim Airline nyaman dan menyajikan informasi bermanfaat tentang file yang sedang Anda kerjakan, termasuk nama file dan status penyimpanan, mode Vim, jenis file, penyandian, posisi, jumlah kata, dan banyak lagi.

Vim Airline cepat dan ringan. Ini menampilkan informasi yang relevan tanpa mengorbankan kinerja Vim. Menggunakan Vim Airline meningkatkan produktivitas Anda dengan memberikan informasi yang memerlukan waktu tambahan untuk mendapatkannya secara sekilas.

Setelah instalasi, Vim Airline mengaktifkan konfigurasi dasar yang tidak memerlukan perubahan apa pun pada file konfigurasi Vim. Berikut adalah bilah status standar dengan Maskapai:

Ini terintegrasi dengan plugin lain secara asli untuk menyajikan informasi tambahan. Misalnya, jika Anda memiliki Vim Gitgutter (lihat #4 Vim Gitgutter di bawah) atau Vim Fugitive (lihat #5 Vim Fugitive di bawah), Maskapai juga menampilkan informasi terkait Git, seperti nama cabang dan status perbedaan.

Untuk menggunakan ikon khusus, seperti ikon cabang Git, instal paket font Powerline dan aktifkan dengan Vim Airline. Kemudian tambahkan baris ini ke .vimrc . Anda file konfigurasi:

let g:airline_powerline_fonts=1

Selain bilah status, Vim Airline secara opsional menampilkan baris tab di bagian atas yang berisi nama semua tab atau buffer yang terbuka:

Untuk mengaktifkan fitur ini, tambahkan baris ini ke .vimrc :

let g:airline#extensions#tabline#enabled = 1

Terakhir, Vim Airline menyediakan tema untuk memberikan fleksibilitas tambahan pada fungsionalitas dan tampilan bilah status. Untuk informasi lebih lanjut, periksa repositori vim-airline-theme.

Untuk informasi lebih lanjut tentang plugin ini dan opsi tambahan yang mungkin berguna untuk kasus penggunaan Anda, lihat repositori resmi.

2. NERDTree

NERDTree adalah penjelajah sistem file untuk Vim yang memungkinkan Anda menelusuri struktur direktori, membantu Anda menemukan dan mengelola file dan direktori langsung di dalam antarmuka Vim. NERDTree adalah pengganti file explorer asli Vim netrw. NERDTree menyertakan fitur tambahan dan default yang masuk akal, membuatnya lebih mudah untuk memulai tanpa menambahkan konfigurasi apa pun ke .vimrc Anda berkas.

Setelah menginstal, Anda dapat menggunakan NERDTree dengan mengetikkan perintah :NERDTree . Ini terbuka sebagai jendela samping dengan direktori saat ini dipilih. Untuk menutupnya, Anda bisa mengetikkan perintah :NERDTreeClose . Anda juga dapat menggunakan :NERDTreeToggle untuk beralih antara jendela terbuka dan tertutup. Anda bahkan dapat memetakan perintah ini ke kunci lain untuk mempermudah membuka dan menutup NERDTree. Misalnya, untuk menggunakan tombol fungsi F5 untuk mengontrol NERDTree, tambahkan pemetaan ini ke file konfigurasi Anda:

map <F5> :NERDTreeToggle<CR>

Sekarang tekan F5 untuk membuka NERDTree:

Dengan NERDTree terbuka, Anda dapat menavigasi struktur direktori menggunakan tombol navigasi Vim j dan k . Tekan Enter pada direktori untuk memperluas atau menciutkannya. Secara default, NERDTree menampilkan direktori dalam format pohon. Tekan Enter pada file biasa untuk membukanya menggunakan jendela asli. Anda juga dapat menekan i untuk membuka file menggunakan pemisahan horizontal atau s untuk pemisahan vertikal. Tekan ? untuk melihat bantuan dengan daftar perintah lengkap.

Fungsi berguna lainnya adalah menekan m untuk melihat menunya. Anda kemudian dapat menggunakan NERDTree untuk menjalankan operasi sistem file seperti membuat, mengganti nama, menyalin, dan memindahkan file dan direktori:

NERDTree Menu. Use j/k/enter, or the shortcuts indicated
=========================================================
> (a)dd a childnode
  (m)ove the current node
  (d)elete the current node
  (r)eveal the current node in file manager
  (o)pen the current node with system editor
  (c)opy the current node
  print (p)ath to screen
  (l)ist the current node

NERDTree meningkatkan produktivitas Anda dengan memungkinkan Anda menemukan dan mengelola file dalam Vim tanpa memerlukan akses ke baris perintah atau aplikasi penjelajah sistem file lainnya.

[ Anda mungkin juga menikmati dasar-dasar Linux:Panduan pemula untuk mengedit teks dengan vim ]

3. Fzf Vim

NERDTree adalah plugin yang bagus untuk membantu Anda menavigasi struktur direktori dan menemukan file untuk bekerja di Vim. Namun, itu tidak membantu jika Anda memiliki struktur direktori yang besar atau jika Anda sedang mencari file tanpa mengetahui persis di mana itu berada. Untuk kasus seperti itu, pencari fuzzy sangat berguna.

fzf.vim adalah plugin yang membungkus program pencari fuzzy baris perintah fzf, memungkinkan Anda untuk menggunakannya langsung di dalam Vim. Fzf adalah aplikasi pencari fuzzy cepat dan portabel yang ditulis dalam Go. Ini adalah persyaratan untuk plugin Vim, jadi pastikan Anda menginstalnya terlebih dahulu.

Selain Fzf, Anda dapat menginstal program bat untuk mengaktifkan penyorotan sintaks di jendela pratinjau yang ditampilkan oleh Fzf.

Secara default, fzf.vim membuka jendela pencarian di bagian bawah layar. Untuk mengubah ini dan memindahkan jendela ke tengah, meningkatkan ukuran jendela pratinjau, tambahkan dua baris ini ke .vimrc Anda file konfigurasi:

let g:fzf_preview_window = 'right:50%'
let g:fzf_layout = { 'window': { 'width': 0.9, 'height': 0.6  }  }

Sekarang, jalankan pencarian fuzzy dengan semua file di direktori saat ini dengan mengetikkan perintah :Files . fzf.vim membuka jendela yang mencantumkan semua file yang tersedia:

Untuk memfilter opsi yang tersedia, mulailah mengetik karakter apa pun dari bagian mana pun dari nama file, ekstensi, atau direktori. Fzf secara otomatis menyaring hasil untuk Anda. Misalnya, jika Anda ingat file yang Anda inginkan adalah file "YAML", mulailah mengetik y lalu m dan lihat bagaimana hasilnya berubah:

Perhatikan bahwa itu tidak mengharuskan karakter untuk bersama-sama atau dalam urutan yang sama yang Anda ketik. Ini adalah tujuan dengan temuan fuzzy. Bila Anda puas dengan filter, Anda dapat menggunakan tombol panah untuk memilih dan melihat pratinjau entri yang tersisa dan tekan Enter untuk membuka yang diinginkan. Anda juga dapat menggunakan Ctrl+T , Ctrl+X , atau Ctrl+V untuk membuka file masing-masing di tab baru, split, atau vertikal.

Menggunakan fzf.vim untuk mencari file sangat membantu. Namun, fzf.vim dapat melakukan lebih dari sekadar mencari file. Itu membungkus fzf perintah dengan fitur Vim lain atau perintah eksternal lainnya, memungkinkan Anda untuk mencari lebih dari file dalam struktur direktori saat ini.

Misalnya, gunakan perintah :Buffers untuk mencari daftar buffer terbuka saat ini. Dengan :GFiles, fzf.vim memungkinkan Anda mencari semua file yang dikelola oleh repositori Git saat ini. Perintah :Lines memungkinkan Anda untuk menjalankan pencarian fuzzy di semua baris dari setiap buffer yang dimuat. Menekan Enter membawa Anda ke baris tertentu di buffer yang benar:

fzf.vim bahkan memungkinkan Anda untuk mencari ikatan kunci Vim dengan perintah :Maps . Jika Anda lupa pada keybinding mana Anda memetakan perintah tertentu, mulai fzf.vim, ketik beberapa huruf dari perintah tersebut, dan itu menunjukkan kepada Anda keybinding yang dipetakan. Menekan Enter pada entri menjalankan perintah. Misalnya, untuk menemukan kunci mana yang kami petakan untuk Vim NERDTree di Vim NERDTree (lihat #2 NERDTree di atas):

Fzf cepat, dan integrasi plugin fzf.vim dengan Vim menjadikannya alat yang sangat baik untuk membantu menemukan file dan item lainnya. Plugin ini memiliki banyak fitur lainnya. Pastikan untuk berkonsultasi dengan bantuan dengan mengetikkan perintah :h fzf untuk daftar lengkap.

4. Vim Gittalang

Plugin Vim Gitgutter berguna bagi mereka yang menggunakan Git sebagai sistem kontrol versi. Ini menunjukkan output dari Git diff sebagai simbol di "talang"—kolom tanda tempat Vim menyajikan informasi tambahan, seperti nomor baris. Misalnya, pertimbangkan file tugas Ansible ini sebagai versi komitmen saat ini di Git:

  1 ---
  2 # tasks file for mywebapp
  3 
  4 - name: Include OS-specific variables.
  5   include_vars: "{{ ansible_os_family }}.yaml"
  6  
  7 - name: Install http package
  8   yum:
  9     name: "{{ httpd_package }}"
 10 
 11 - name: Ensure httpd svc started
 12   service:
 13     name: "{{ httpd_service }}"
 14     state: started
 15     enabled: yes

Setelah membuat beberapa perubahan, Vim Gitgutter menampilkan simbol berikut di selokan:

    1 ---
    2 # tasks file for mywebapp
    3 
    4 - name: Include OS-specific variables.
    5   include_vars: "{{ ansible_os_family }}.yaml"
    6 
~   7 - name: Ensure httpd package installed
    8   yum:
    9     name: "{{ httpd_package }}"
+  10     state: present
   11 
   12 - name: Ensure httpd svc started
   13   service:
   14     name: "{{ httpd_service }}"
_  15     state: started

- simbol menunjukkan bahwa baris telah dihapus setelah baris 15. ~ karakter menunjukkan bahwa baris tujuh telah dimodifikasi, dan + tanda menunjukkan bahwa baris sepuluh telah ditambahkan.

Selain itu, Vim Gitgutter memungkinkan Anda untuk menavigasi antara "bakukan"—perubahan individual yang dibuat dalam file—dengan [c dan ]c , atau bahkan menampilkan bingkah individu untuk komit dengan menekan Leader+hs .

Vim Gitgutter juga terintegrasi secara otomatis dengan Vim-Airline, memberikan ringkasan perubahan pada baris status:

Vim-Airline mengaktifkan konfigurasi ini secara default, dan Anda tidak perlu menambahkan apa pun ke .vimrc Anda file untuk membuatnya bekerja.

Vim Gitgutter memberikan umpan balik visual langsung untuk perubahan, dan ini merupakan tambahan yang bagus untuk kotak peralatan Anda jika Anda menggunakan Git.

5. Vim Buronan

Vim Fugitive adalah plugin hebat lainnya bagi mereka yang mencoba memasukkan Git ke dalam alur kerja Vim. Plugin ini adalah pembungkus Git yang memungkinkan Anda untuk mengeksekusi perintah Git langsung dari antarmuka Vim. Plugin ini memiliki banyak fitur, jadi pastikan untuk memeriksa halaman Github untuk informasi tambahan.

Berikut adalah contoh alur kerja Git dasar menggunakan Vim Fugitive. Pertimbangkan file tugas Ansible yang kami gunakan sebagai contoh di Vim Gitgutter (lihat #4 Vim Gitgutter di atas). Anda dapat menggunakan git blame di Vim dengan mengetikkan perintah :Gblame :

7d960351 (Ricardo Gerardi   2020-09-29 14:09:59 -0400)|    1 ---
7d960351 (Ricardo Gerardi   2020-09-29 14:09:59 -0400)|    2 # tasks file for mywebapp
7d960351 (Ricardo Gerardi   2020-09-29 14:09:59 -0400)|    3
7d960351 (Ricardo Gerardi   2020-09-29 14:09:59 -0400)|    4 - name: Include OS-specific variables.
7d960351 (Ricardo Gerardi   2020-09-29 14:09:59 -0400)|    5   include_vars: "{{ ansible_os_family }}.yaml"
7d960351 (Ricardo Gerardi   2020-09-29 14:09:59 -0400)|    6
00000000 (Not Committed Yet 2020-09-29 17:40:03 -0400)|~   7 - name: Ensure httpd package installed
7d960351 (Ricardo Gerardi   2020-09-29 14:09:59 -0400)|    8   yum:
7d960351 (Ricardo Gerardi   2020-09-29 14:09:59 -0400)|    9     name: "{{ httpd_package }}"
00000000 (Not Committed Yet 2020-09-29 17:40:03 -0400)|+  10     state: present
7d960351 (Ricardo Gerardi   2020-09-29 14:09:59 -0400)|   11
7d960351 (Ricardo Gerardi   2020-09-29 14:09:59 -0400)|   12 - name: Ensure httpd svc started
7d960351 (Ricardo Gerardi   2020-09-29 14:09:59 -0400)|   13   service:
7d960351 (Ricardo Gerardi   2020-09-29 14:09:59 -0400)|   14     name: "{{ httpd_service }}"
7d960351 (Ricardo Gerardi   2020-09-29 14:09:59 -0400)|_  15     state: started

Anda dapat melihat siapa yang melakukan semua baris, kecuali baris tujuh dan sepuluh, yang belum dilakukan. Sekarang, periksa status repositori dengan mengetik :Gstatus :

  1 Head: master
  2 Push: origin/master
  3 
  4 Unstaged (1)
  5 M main.yaml
~
___________________________________________________________________________________________
~   7 - name: Ensure httpd package installed
    8   yum:
    9     name: "{{ httpd_package }}"
+  10     state: present
   11 
   12 - name: Ensure httpd svc started
   13   service:
   14     name: "{{ httpd_service }}"
_  15     state: started

Vim Fugitive membuka jendela split dengan hasil git status . Anda dapat mengatur file untuk dikomit dengan menekan tombol - kunci pada baris dengan nama file. Anda dapat mengatur ulang status dengan menekan - lagi. Pesan diperbarui untuk mencerminkan status baru:

  1 Head: master
  2 Push: origin/master
  3 
  4 Staged (1)
  5 M main.yaml

Perhatikan bahwa status pada baris empat berubah dari Tidak Dipentaskan untuk Dipentaskan . Sekarang Anda dapat menggunakan perintah :Gcommit untuk melakukan perubahan. Vim Fugitive membuka pemisahan lain yang memungkinkan Anda memasukkan pesan komit:

  1 Update Ansible tasks file
  2 # Please enter the commit message for your changes. Lines starting
  3 # with '#' will be ignored, and an empty message aborts the commit.
  4 #
  5 # On branch master
  6 # Changes to be committed:
  7 #       modified:   main.yaml
  8 #

Simpan file dengan :wq untuk menyelesaikan komit. Buronan menampilkan pesan konfirmasi dengan hash komit baru:

[master f7908cf] Update Ansible tasks file
 1 file changed, 2 insertions(+), 2 deletions(-)
Press ENTER or type command to continue

Anda dapat menggunakan :Gstatus lagi untuk melihat hasilnya dan :Gpush untuk memperbarui repositori jarak jauh dengan komit baru:

  1 Head: master
  2 Push: origin/master
  3
  4 Unpushed to origin/master (1)
  5 f7908cf Update Ansible tasks file

Jika Anda menyukai Vim Fugitive dan ingin mempelajari lebih lanjut, repositori resmi memiliki tautan ke screencast yang menunjukkan fungsionalitas dan alur kerja tambahan.

Bonus:Vim Floaterm

Vim Floaterm adalah plugin yang memungkinkan Anda untuk menggunakan fitur terminal Vim 8 sebagai jendela popup.

Terkadang Anda harus mengetikkan perintah di terminal untuk menyelesaikan tugas Anda. Sebelum Vim 8 menyediakan :terminal fitur, solusinya beralih ke layar lain atau keluar dari Vim untuk menggunakan baris perintah. Dengan terminal Vim bawaan, Anda dapat membuka jendela terminal langsung dari Vim. Namun, jendela ini mengambil bagian dari area pengeditan Anda atau terlalu kecil, dan Anda perlu mengubahnya terus-menerus.

Vim Floaterm memecahkan masalah ini dengan membuat terminal sebagai jendela mengambang yang dapat Anda tampilkan atau sembunyikan kapan pun Anda perlu menggunakannya. Gunakan perintah :FloatermNew untuk membuat terminal mengambang baru dan :FloatermHide untuk menyembunyikannya. Anda juga dapat menggunakan :FloatermToggle untuk beralih di antara negara bagian. Terminal terapung terlihat seperti ini:

Untuk mempermudah menampilkan dan menyembunyikan terminal mengambang, Anda dapat memetakan perintah ke kunci lain. Misalnya, untuk menggunakan tombol fungsi F12 untuk mengontrol Floaterm, tambahkan konfigurasi ini ke .vimrc your Anda berkas:

let g:floaterm_keymap_toggle = '<F12>'

Anda juga dapat meningkatkan ukuran terminal mengambang dengan memberikan lebar dan tinggi sebagai persentase dari ukuran layar Vim dengan dua baris konfigurasi ini:

let g:floaterm_width = 0.9
let g:floaterm_height = 0.9

Konfigurasi ini membuat terminal mengambang yang mengambil 90% dari ukuran layar Vim. Floaterm menyediakan banyak fitur tambahan dan integrasi dengan plugin dan alat baris perintah lainnya. Konsultasikan bantuan dengan :h floaterm-contents atau repositori resmi untuk informasi lebih lanjut.

[ Ingin menguji kemampuan sysadmin Anda? Ikuti penilaian keterampilan hari ini. ] 

Apa selanjutnya?

Dalam artikel ini, kami meninjau lima plugin—ditambah bonus—yang membantu sysadmin meningkatkan alur kerja mereka dan meningkatkan produktivitas mereka saat menggunakan Vim.

Vim adalah editor luar biasa yang menyediakan sejumlah fitur di luar kotak. Menggunakan plugin menambahkan fitur baru, membuatnya lebih mudah untuk menyesuaikan Vim dengan alur kerja tertentu.

Plugin dalam artikel ini berfokus pada fungsionalitas umum, seperti mencari file, menyediakan informasi, dan menangani file yang dikontrol versi di Git. Ada kelas plugin lain untuk mengelola berbagai aspek konfigurasi Vim. Di artikel berikutnya, kita akan membahas tentang penyelesaian kode dan pemeriksaan sintaks.

Terima kasih khusus kepada rekan saya David Ward karena telah memperkenalkan plugin fzf.vim dan Vim Floaterm kepada saya.


Linux
  1. 10 panduan kontainer untuk sysadmin

  2. Demystifying Memungkinkan untuk sysadmin Linux

  3. Perintah Linux satu baris teratas, sesuaikan gambar VM, dan tips lainnya untuk sysadmin

  1. 15 artikel teratas yang berterima kasih kepada sysadmin

  2. 10 tutorial teratas untuk administrator Linux

  3. 80 Alat Pemantauan Linux untuk SysAdmins

  1. Alat Linux teratas untuk penulis

  2. 3 tips ulasan diri yang solid untuk sysadmin

  3. Alternatif yang Valid Ke Atas Untuk Openbsd?