GNU/Linux >> Belajar Linux >  >> Linux

Cara mengakses shell atau menjalankan perintah eksternal dari dalam Vim

Vim, seperti yang mungkin sudah Anda ketahui, adalah editor yang penuh fitur dan kuat. Di sini, di HowtoForge, kami telah menulis beberapa tutorial tentang Vim, yang mencakup penggunaan dasar, plugin, serta beberapa fitur berguna lainnya. Namun mengingat banyaknya fitur yang ditawarkan Vim, kami selalu menemukan sesuatu yang berguna untuk dibagikan kepada pembaca kami.

Dalam tutorial ini, kami akan fokus pada bagaimana Anda dapat menjalankan perintah eksternal serta mengakses shell baris perintah dari dalam jendela editor.

But before we start doing that, it's worth mentioning that all the examples, commands, and instructions mentioned in this tutorial have been tested on Ubuntu 14.04, and the Vim version we've used is 7.4.

Jalankan perintah eksternal di Vim

Terkadang Anda mungkin ingin menjalankan perintah eksternal dari dalam jendela editor Vim. Misalnya, pertimbangkan situasi saat Anda membuka file di Vim, membuat beberapa perubahan, lalu saat mencoba menyimpan perubahan tersebut, Vim menampilkan kesalahan yang mengatakan bahwa Anda tidak memiliki izin yang memadai.

Sekarang, keluar dari sesi vim saat ini dan kembali membuka file dengan hak istimewa yang memadai akan berarti hilangnya semua perubahan yang telah Anda lakukan, sehingga, Anda akan setuju, tidak menjadi opsi di sebagian besar kasus. Dalam situasi seperti inilah kemampuan untuk menjalankan perintah eksternal dari dalam editor sangat berguna.

Kita akan kembali ke kasus penggunaan di atas nanti(**), tetapi untuk saat ini, mari kita pahami bagaimana Anda dapat menjalankan perintah dasar dari dalam vim.

Misalkan saat mengedit file, Anda ingin mengetahui jumlah baris, kata, dan karakter yang ada di file tersebut. Untuk melakukan ini, dalam mode perintah Vim, cukup masukkan titik dua (:) diikuti dengan bunyi (!) dan terakhir perintah ('wc' dalam kasus ini) diikuti dengan nama file (gunakan % untuk file saat ini).

:! wc %

Ini contohnya:

File dengan perintah di atas siap dieksekusi:

dan inilah output di terminal:

Setelah Anda selesai melihat hasilnya, tekan tombol Enter dan Anda akan dibawa kembali ke sesi Vim Anda.

Fitur ini dapat sangat berguna dalam situasi di mana, katakanlah, Anda sedang menulis kode atau skrip, dan ingin mengetahui dengan cepat apakah kode/skrip tersebut mengandung kesalahan waktu kompilasi atau sintaksis atau tidak.

Selanjutnya, jika persyaratannya adalah menambahkan output ke file, gunakan ':read !' memerintah. Ini contohnya:

:read ! wc %

Perintah 'read' menyisipkan output dari perintah eksternal pada baris baru di bawah baris saat ini dalam file yang sedang diedit. Jika mau, Anda juga dapat menentukan nomor baris tertentu - output akan ditambahkan setelah baris tertentu.

Misalnya, perintah berikut akan menambahkan output 'wc' setelah baris kedua file.

:2read ! wc %

Catatan :Gunakan '$' untuk menyisipkan setelah baris terakhir dan '0' untuk menyisipkan sebelum baris pertama.

Sekarang, kembali ke usecase yang kita bahas di awal (**), inilah perintah yang akan membantu Anda menyimpan file tanpa perlu menutupnya terlebih dahulu (yang berarti tidak ada perubahan yang belum disimpan) dan kemudian membukanya dengan, katakanlah , sudo.

:w ! sudo tee %

Akses Shell di Vim

Selain menjalankan perintah individual, Anda juga dapat memasukkan diri Anda ke dalam shell yang baru diluncurkan dari dalam Vim. Untuk ini, yang harus Anda lakukan adalah menjalankan perintah berikut dari editor:

:shell

atau

:sh

dan ketik 'exit' ketika Anda selesai dengan pekerjaan shell - ini akan membawa Anda kembali ke sesi Vim dari tempat Anda meninggalkan awalnya.

Celah yang perlu diingat

Sementara kemampuan untuk mengakses shell pasti memiliki kegunaannya sendiri di dunia nyata, itu juga dapat digunakan sebagai teknik eskalasi hak istimewa. Seperti yang telah kami jelaskan di salah satu tutorial kami sebelumnya (di sudoedit), bahkan jika Anda memberikan akses sudo kepada pengguna untuk hanya mengedit satu file melalui Vim, mereka dapat meluncurkan shell baru dari dalam editor menggunakan teknik ini, dan kemudian akan dapat untuk melakukan apa saja sebagai 'root' atau superuser.

Kemampuan untuk menjalankan perintah eksternal dari dalam Vim adalah fitur penting yang dapat berguna dalam banyak situasi (beberapa di antaranya telah kami sebutkan dalam tutorial ini). Kurva pembelajaran untuk fitur ini tidak curam, sehingga baik pemula maupun pengguna berpengalaman dapat memanfaatkannya.

Apakah Anda sudah cukup lama menggunakan fitur ini? Apakah Anda memiliki sesuatu untuk dibagikan? Silakan tinggalkan pendapat Anda di komentar di bawah.


Linux
  1. Bagaimana cara mengekstrak satu potongan byte dari dalam file?

  2. Buka Vim dari dalam skrip Bash Shell

  3. Cara menjalankan file sh dari file sh lain

  1. Cara menjalankan skrip shell saat startup

  2. Bagaimana cara menjalankan perintah shell eksternal dari pengontrol laravel?

  3. Bagaimana install -c berbeda dari cp

  1. Bagaimana cara menjalankan perintah Vim dari shell?

  2. Bagaimana cara menghapus string apa pun dari file melalui skrip Shell?

  3. Bagaimana cara memblokir akses ke file agar tidak dilayani oleh Tomcat?