Agar berfungsi, singkatan perlu dipisahkan dengan spasi putih. Misalnya, jika saya memiliki iab fo FOOBAR
mengetik whatfo
maka tidak akan memicu singkatan. Ada beberapa alasan masuk akal yang jelas untuk ini.
Namun, saya ingin singkatan yang dapat digunakan sebagai sufiks tanpa saya harus memicu iab kemudian kembali dan menghapus spasi. Apakah ini mungkin? Misalnya iab fo <backspace>FOOBAR
,.
abbreviations
goldilocks
sumber
sumber
Jawaban:
Anda bisa menulis di dalam vimrc Anda:
iab fo <BS>FOOBAR
<BS>
adalah notasi yang digunakan untuk kunci backspace.Untuk informasi lebih lanjut tentang nama kunci khusus, lihat:
sumber
[7:0]
dan Anda harus bermain-main dengan jumlahb
s, dll untuk menyesuaikan untuk itu, saya pikir.b
dane
denganB
danE
akan cukup. Tapi mungkin ada kasus lain di mana itu akan gagal, saya tidak tahu. Bagaimanapun versi pertama harus, semoga, berfungsi sebagian besar waktu.iab fo <BS>foobar
itu sudah cukup. Maaf atas ketidaknyamanan ini, Anda mungkin harus mencentang jawaban @jjcast sebagai jawaban yang benar. Saat ini saya tidak dapat menghapus jawaban saya, tetapi sekali saya bisa saya akan melakukannya. Sekali lagi maaf, saya tidak terbiasa dengan singkatan.<BS>
itu masalahnya. Saya bersumpah mencoba sesuatu seperti itu, tetapi saya tidak tahu semua karakter kontrol, jadi saya mungkin menggunakan<backspace>
atau sesuatu.:help key-notation
Cukup tekan dalam mode sisipkan Ctrl]. Ini akan memicu singkatan untuk diperluas, tanpa memasuki ruang
sumber
X(FOOBAR)
tidakX( FOOBAR
. Menggunakan Ctrl-] hanya menghilangkan ruang di bagian akhir . Saya harus bisa menggunakan singkatan - yang juga tergantung pada spasi putih di awal untuk memecat - tetapi harus disatukan dengan kata sebelumnya (itulah arti " akhiran ").${1}FOOBAR
- itu jawaban yang bagus. Jika Anda ingin mengubah ini: / atau tambahkan jawaban lain saya akan mencentangnya.Sebagai alternatif, berikut ini cara untuk mendefinisikan dan memperluas singkatan yang berkembang di mana saja:
Cukup tambahkan singkatan yang harus diperluas ke
s:anywhere_abbreviations
kamus mana saja . Thes:MaybeExpandAbbreviation()
pencarian fungsi untuk dan mengembang pertandingan singkatan ketika tombol pemicu ditekan -<Space>
dipetakan untuk memicu perluasan "singkatan di mana saja".Dengan
s:anywhere_abbreviations
kamus di atas , mengetikwhatfo<Space>
akan diperluas kewhatFOOBAR
.sumber
Untuk meringkas dua jawaban paling sederhana yang keluar dari ini:
Anda dapat menggunakan backspace secara langsung dalam singkatan - berbagai karakter khusus didokumentasikan di bawah
:help keycodes
. Jadi, mis:Akan memungkinkan Anda mengetik
trans cdt
dan mendapatkantranscendental
.Satu saya sangat malu sejak saya telah menggunakannya selama bertahun-tahun: Plugin snipMate umum memungkinkan untuk parameter di depan, jadi
Mengizinkan untuk mengetik
cdt
, yang Tabakan diperluas kecendental
dan meletakkan kursor di depan sehingga Anda dapat mengetiktrans
, lalu tekan Tablagi untuk pindah ke awal kata berikutnya.sumber