Di XCode, ada add-on yang disebut vvdocument, yang dapat mendeteksi tiga /
hit, dan mentransfer ///
ke:
/*!
* @author Robbie Yi JIANG, 29-Jan-2016 14:01:45
*
*
*/
Bagaimana saya bisa melakukan ini di Vim.
sumber
Di XCode, ada add-on yang disebut vvdocument, yang dapat mendeteksi tiga /
hit, dan mentransfer ///
ke:
/*!
* @author Robbie Yi JIANG, 29-Jan-2016 14:01:45
*
*
*/
Bagaimana saya bisa melakukan ini di Vim.
Metode dalam jawaban saya sebelumnya tidak bertransformasi dengan baik ke konten dinamis. Di sinilah plugin potongan seperti UltiSnips dan SnipMate masuk. Saya akan memberikan demo UltiSnips di sini. Instal menggunakan metode favorit Anda dari Bagaimana cara menginstal plugin di vim / vi?
Sekarang, buat UltiSnips
direktori di direktori .vim
atau Anda _vimfiles
. Di dalamnya, letakkan c.snippet
file yang berisi:
snippet /// "My header" A
/*!
* @author Robbie Yi JIANG, `date +'%d-%b-%Y %T'`
*
*
*/
endsnippet
Sekarang, jika Anda membuka file C dan mengetik ///
, itu akan secara otomatis diganti dengan header, termasuk tanggal dan waktu saat ini. Itu dia!
Biasanya, UltiSnips menyisipkan potongan ketika Anda menekan Tab. Di sini, kami telah menetapkan bahwa cuplikan harus dimasukkan secara otomatis - itulah yang A
ditunjukkan pada akhir baris pertama. Lihat :help UltiSnips-syntax
informasi lebih lanjut tentang cara menulis cuplikan.
Namun, kebanyakan orang memulai dengan koleksi cuplikan, seperti vim-snippets
. Ada terlalu banyak untuk dijelaskan di sini, tetapi Anda mungkin beberapa di antaranya sangat berguna.
Salah satu caranya adalah dengan membuat file yang berisi potongan ini, dan membacanya saat Anda mengetik
///
.Misalnya, buat yang
~/.vim/snippets/my_header.snip
berisi tajuk ini. Kemudian tentukan pemetaan ini:Atau:
Dalam pemetaan pertama, kursor Anda akan ditempatkan pada baris pertama dari teks yang disisipkan; dan yang kedua, kursor akan ditempatkan di bawah teks yang disisipkan.
Mungkin pemetaan paling sederhana, dalam hal melompati mode, adalah:
Untuk penggunaan yang lebih umum, Anda mungkin ingin melihat plugin snippet. UltiSnips dan SnipMate adalah dua yang populer. Saya juga tidak menggunakan, jadi saya tidak akan merekomendasikan satu.
sumber
Tulis fungsi yang mengembalikan string dan menyebutnya.
Rincian
strftime
ketergantungan pada platform Anda, jika Anda tidak menggunakan Windows dan itu tidak berfungsi maka Anda perluman strftime
memikirkan argumennya.Ini berfungsi dalam mode penyisipan tetapi melakukan hal-hal aneh untuk pemrosesan garis miring. Jika Anda melakukan
//
komentar gaya C ++ , garis miring kedua tidak akan keluar sampai Anda mengetik spasi atau sesuatu setelahnya.The
<C-R>=
menyisipkan ekspresi pada posisi kursor. TheInsertHeader()<Enter>
bit adalah ekspresi yang akan dievaluasi. Saya membangun garis string demi baris dalam fungsi,.
adalah penggabungan string dan\
merupakan karakter kelanjutan garis (di mana kelanjutan mengatakan "menggabungkan ini dengan baris sebelumnya," berbeda dengan bagaimana C dan keluarganya melakukannya). Akhirnya, dua<C-O>
operasi, satu untuk naik dua baris dan satu untuk pindah ke akhir baris di mana mungkin sebuah komentar file akan dimasukkan; perhatikan spasi di akhir string di baris keempatl:header
.sumber