Saya membuat beberapa tambahan ke runtime biasa dalam konfigurasi vim saya. Saya menambahkan ke rtp
direktori di mana ada ftplugin
direktori, di mana saya memiliki dua file: c.vim
dan cpp.vim
. Dalam file-file ini saya menentukan beberapa perintah dengan nama yang sama tetapi konten berbeda yang tergantung pada file, apakah itu file c dan cpp.
Di c.vim:
execute "nnoremap <silent> ".g:formatterTrigger." :call Formatters#Uncrustify#C()<Cr>"
Di cpp.vim:
execute "nnoremap <silent> ".g:formatterTrigger." :call Formatters#Uncrustify#Cpp()<Cr>"
Tapi saya melihat dengan scriptnames
perintah bahwa kedua file ft ini dimuat. Dan c.vim dimuat pertama jadi dalam file cpp saya punya perintah c. Bagaimana cara mengatasinya?
g:formatterTrigger
), pemetaan cpp menimpa pemetaan c sehingga Anda hanya mendapatkan pemetaan cpp di cpp dan hanya pemetaan c di c.Karena kesamaan mereka, filetype cpp didasarkan pada yang c . Karena itu, kedua file tersebut bersumber, seperti yang telah Anda catat. Tapi itu tidak masalah, karena cpp yang datang terakhir, dan akan menimpa c satu; Anda bisa memeriksanya
Secara umum, ini tidak perlu dikhawatirkan (kecuali Anda mendefinisikan
:map <unique>
, yang akan mengeluh dalam kasus itu), dan Anda sudah tahu perintah ingin:scriptnames
memecahkan masalah ini.sumber