Bagaimana cara menambahkan perintah di vim editor?

87

Jika misalkan nama file kode sumber saya adalah "foo.c". Saat mengedit dan men-debug saya selalu menjalankan perintah ini: -

:! gcc -g foo.c -o foo; gdb foo

Bisakah saya menambahkan perintah kustom ke Vim sehingga jika saya mengetik ": debug" maka perintah di atas dijalankan? Bagaimana saya mencapainya?

Abhijeet Rastogi
sumber

Jawaban:

103

Iya. Dokumentasi Vim, bagian 40.2, pemetaan baris perintah :

Editor Vim memungkinkan Anda untuk menentukan perintah Anda sendiri. Anda menjalankan perintah ini sama seperti perintah mode baris perintah lainnya. Untuk mendefinisikan suatu perintah, gunakan perintah ": command", sebagai berikut:

: perintah DeleteFirst 1delete

Sekarang ketika Anda menjalankan perintah ": DeleteFirst" Vim mengeksekusi ": 1delete", yang menghapus baris pertama.

Catatan: Perintah yang ditentukan pengguna harus dimulai dengan huruf kapital. Anda tidak dapat menggunakan ": X", ": Next" dan ": Print". Garis bawah tidak dapat digunakan! Anda dapat menggunakan angka, tetapi ini tidak disarankan.

Letakkan baris itu di ~/.vimrc(minus inital Anda :tentu saja) dan itu akan ditentukan setiap kali Anda memulai vim. Juga, gunakan %:tuntuk membuat referensi ke file yang sedang diedit (tulisan ! gcc %:takan diganti dengan ! gcc foo.c).

Jika Anda hanya menginginkannya ditentukan untuk satu file, atau untuk file tertentu, Anda ingin autocommand.

James Polley
sumber
4
jika Anda mengganti perintah yang ada, Anda harus menggunakan command!.
phyatt
14

Vim sudah memiliki dukungan untuk Makefiles (: make). Jika Anda membuat satu untuk sumber Anda, Anda dapat menentukan di dalamnya apa yang ingin Anda lakukan. Juga, melalui ctags, Vim akan dapat beralih melalui kesalahan yang ditemukan selama kompilasi.

Jeremy L
sumber
5

Tambahkan perintah editor vi yang ditentukan pengguna:

Ini akan membuatnya sehingga ketika pengguna mengetik :Legenddalam mode normal, blok teks ditambahkan di bawah kursor.

Langkah 1: Masukkan baris ini ke file bernama ~ / legend_header.txt`

this text will be added

Langkah 2: Masukkan perintah ini ke file ~ / .vimrc Anda (jika file tidak ada, buatlah):

"The following command puts the contents of ~/legend_header.txt 
"under the cursor when the user types ":Legend" in normal mode.
command Legend :r ~/legend_header.txt

Langkah 3: Mulai ulang vi agar perubahan diterapkan. Kamu sudah selesai.

Menguji

Langkah 1: Buka file baru di vi. Berada dalam "mode normal" default di vi. Tipe:Legend

Langkah 2: Isi ~/legend_header.txtharus ditambahkan di mana kursor berada.

Eric Leschinski
sumber
0

Saya menggunakan perintah ini di .vimrc saya untuk mengkompilasi dan mengeksekusi kode c:

:command Gcc !set $1 `echo "%" | sed 's/\.c//g'` ;gcc -o $1 "%" ; chmod o+x $1; $1

, tetapi untuk kebutuhan Anda, Anda dapat menempatkan:

:command Gdb !set $1 `echo "%" | sed 's/\.c//g'` ;gcc -o $1 "%" ; gdb $1

Anda dapat yakin nama file exec akan menjadi nama sumber tanpa ekstensi .c.

Juan Miguel AR
sumber