GNU/Linux >> Belajar Linux >  >> Linux

Vi dan Vim Autocommand:3 Langkah untuk Menambahkan Header Kustom ke File Anda Secara Otomatis

Ini adalah kiriman tamu yang ditulis oleh Lakshmanan G.

Artikel ini adalah bagian dari seri Tips &Trik Vi / Vim yang sedang berlangsung. Dengan menggunakan fitur autocommand di Vi / Vim, Anda dapat menentukan beberapa perintah Vim untuk dijalankan secara otomatis saat membaca atau menulis file, atau saat memasuki/keluar buffer/jendela, atau saat keluar dari Vim.

Dalam artikel ini, dengan menggunakan 3 langkah sederhana, mari kita tinjau cara menggunakan fitur autocmd yang kuat dari Vim ini untuk membuat bagian header di dalam file (misalnya, header dalam kode pemrograman C) dengan nama file, tanggal pembuatan , tanggal/waktu modifikasi terakhir secara otomatis terisi saat Anda membuka file di vi.

Sintaks vim autocmd:

autocmd  {event} {pattern} {cmd}


Acara: Ada lebih dari 40 acara autocmd. Berikut adalah beberapa contoh peristiwa autocmd.

BufNewFile	- Starting to edit a file that doesn't exist.
FileReadPre	- Before reading a file with a ":read" command.
BufWritePre	- Starting to write the whole buffer to a file.
FileWritePre	- Starting to write part of a buffer to a file.
BufDelete	- Before deleting a buffer from the buffer list.
BufWipeout	- Before completely deleting a buffer.
BufNew	- Just after creating a new buffer.
BufEnter	- After entering a buffer.
BufLeave	- Before leaving to another buffer.
SwapExists	- Detected an existing swap file.


Sebagian besar pengembang menginginkan header default untuk program mereka. Mari kita ambil contoh. Saat membuka file ".c", Anda memerlukan header file yang memiliki penulis, nama file, dll. Pertimbangkan bahwa saya memerlukan template berikut untuk dimuat secara otomatis saat membuka file ".c" baru. Anda dapat mencapainya dalam tiga langkah seperti yang disebutkan di bawah ini.

/* -.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.

* File Name : 1.c

* Purpose :

* Creation Date : 22-12-2008

* Last Modified : Mon 22 Dec 2008 10:36:49 PM PST

* Created By :  

_._._._._._._._._._._._._._._._._._._._._.*/

Langkah 1:Buat file template

Simpan template di atas dalam file teks dengan “:insert” di baris pertama, diikuti oleh template dan “.”(dot) di baris terakhir seperti yang ditunjukkan di bawah ini.

$ cat c_header.txt
:insert
/* -.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.

* File Name :

* Purpose :

* Creation Date :

* Last Modified :

* Created By :  

_._._._._._._._._._._._._._._._._._._._._.*/
.

Langkah 2:Tambahkan perintah autocmd ke ~/.vimrc

Tambahkan baris berikut di file ~/.vimrc.

$ cat ~/.vimrc
autocmd bufnewfile *.c so /home/jsmith/c_header.txt
autocmd bufnewfile *.c exe "1," . 10 . "g/File Name :.*/s//File Name : " .expand("%")
autocmd bufnewfile *.c exe "1," . 10 . "g/Creation Date :.*/s//Creation Date : " .strftime("%d-%m-%Y")
autocmd Bufwritepre,filewritepre *.c execute "normal ma"
autocmd Bufwritepre,filewritepre *.c exe "1," . 10 . "g/Last Modified :.*/s/Last Modified :.*/Last Modified : " .strftime("%c")
autocmd bufwritepost,filewritepost *.c execute "normal `a"

Langkah 3:Buat file *.c baru dengan header otomatis

Sekarang, ketika Anda membuat file *.c baru menggunakan vim, ini akan secara otomatis menambahkan header yang ditentukan di Langkah1 dan mengisi Nama File dan Tanggal Pembuatan secara otomatis seperti yang ditunjukkan di bawah ini.

$ vi myfile.c
/* -.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.

* File Name : myfile.c

* Purpose :

* Creation Date : 20-12-2008

* Last Modified :

* Created By :

_._._._._._._._._._._._._._._._._._._._._.*/


Saat Anda menyimpan file myfile.c, maka secara otomatis akan memperbarui field Last Modified seperti yang ditunjukkan di bawah ini.

$ vi myfile.c
/* -.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.

* File Name : myfile.c

* Purpose :

* Creation Date : 20-12-2008

* Last Modified : Sat 20 Dec 2008 09:37:30 AM PST

* Created By :

_._._._._._._._._._._._._._._._._._._._._.*/

Penjelasan perintah autocmd di dalam ~/.vimrc

$ cat -n ~/.vimrc
     1  autocmd bufnewfile *.c so /home/jsmith/c_header.txt
     2  autocmd bufnewfile *.c exe "1," . 10 . "g/File Name :.*/s//File Name : " .expand("%")
     3  autocmd bufnewfile *.c exe "1," . 10 . "g/Creation Date :.*/s//Creation Date : " .strftime("%d-%m-%Y")
     4  autocmd Bufwritepre,filewritepre *.c execute "normal ma"

     5  autocmd Bufwritepre,filewritepre *.c exe "1," . 10 . "g/Last Modified :.*/s/Last Modified :.*/Last Modified : " .strftime("%c")
     6  autocmd bufwritepost,filewritepost *.c execute "normal `a"

  • Baris 1 mendefinisikan file template. Ini menunjukkan bahwa untuk file *.c, file template /home/jsmith/c_header.txt harus digunakan.
  • Baris 2 akan mencari pola “Nama File :” dari baris ke-1 sampai ke baris ke-10. Jika ditemukan, itu akan menulis nama file saat ini di baris itu.
  • Baris 3 akan memperbarui bidang Tanggal Pembuatan.
  • Baris 5 akan memperbarui bidang Terakhir Dimodifikasi dengan tanggal dan waktu saat ini saat Anda menyimpan file.
  • Baris 4 &6:Saat menyimpan file, kursor akan berpindah ke “Terakhir diubah :” (karena operasi penulisan terakhir). Jika Anda ingin kursor kembali ke posisi sebelumnya, Anda perlu menambahkan Baris 4 dan 6 ke file .vimrc.
  • Baris 4 akan menandai posisi kursor saat ini sebelum memperbarui.
  • Baris 6 akan mengembalikan posisi kursor kembali ke posisi sebelumnya.

Catatan Akhir:

  • Verifikasi apakah autocmd diaktifkan di Vi / Vim – Jalankan :versi dari vi / vim. Jika fitur autocommand diaktifkan, itu akan menampilkan +autocmd.
  • Bantuan perintah otomatis – Jalankan :help au from vi / vim, untuk mendapatkan bantuan cepat pada fitur autocmd vim.

Bacaan yang Disarankan

Mempelajari Editor Vi dan Vim , oleh Arnold Robbins . Saya seorang pecandu baris perintah. Jadi, tentu saja saya penggemar berat editor Vi dan Vim. Beberapa tahun yang lalu, ketika saya menulis banyak kode C di Linux, saya selalu membawa referensi saku editor Vi. Bahkan jika Anda telah menggunakan Editor Vi dan Vim selama beberapa tahun dan belum membaca buku ini, bantulah diri Anda sendiri dan baca buku ini. Anda akan kagum dengan kemampuan editor Vim.

 


Artikel ini adalah bagian dari seri Tips dan Trik Vi / Vim yang sedang berlangsung. Silakan berlangganan TheGeekStuff dan jangan lewatkan tips dan trik editor Vi dan Vim di masa mendatang.


Artikel ini ditulis oleh Lakshmanan G. Dia bekerja di bk Systems (p) Ltd, dan tertarik untuk berkontribusi pada open source. The Geek Stuff menyambut tips dan artikel tamu Anda.


Linux
  1. Tambahkan File Audio Ke Dan Video Mkv?

  2. Bagaimana cara menambahkan akun pengguna DAN kata sandi secara otomatis dengan skrip Bash?

  3. Tambahkan header ke file yang dibatasi tab

  1. Bagaimana cara menambahkan ekstensi file kustom Anda sendiri ke PhotoRec untuk pemulihan data?

  2. Bagaimana cara menambahkan Domain, membuat server nama khusus, dan mengarahkan domain Anda ke VPS?

  3. Metamorphose 2 – Batch Ganti Nama File dan Folder Anda di Linux

  1. Editor Vi dan Vim:3 Langkah Untuk Mengaktifkan Opsi Tesaurus

  2. Dasar-dasar Format File Objek ELF Linux (dan Struktur Header ELF)

  3. Bagaimana cara menambahkan baris header dan trailer ke file di Linux