2016-03-31 36 views
0

Vim'de düzenlediğim C dosyasını derlemek ve yürütmek için bir komuta sahip olmak istiyorum. Nasıl yapabilirim? Aşağıdaki, dosya adında .c nedeniyle çalışmıyor.Vim'de nasıl derlenir ve yürütülür?

:map <leader>m :!make && ./% 

Ben :!make && ./filename kullanırsanız o kadar ben de dikey bölünmüş pencere ile bir çözüm görmek istiyorum çıkışı ilerlemek için nasıl bilmiyorum.

cevap

0

:map <leader>m :!make && ./% adresindeki kabuk çıkmanız, bir Makefile işlemek için arama yapan make programını çağırır. Makefile'deki tarifler, programınızın nasıl derlendiğini ve son yürütülebilir dosyanın nasıl adlandırıldığını açıklar (ya da atlanmışsa, varsayılan olarak a.out). Düzenlediğiniz dosyanın adı (% tarafından başvurulan) istediğiniz yürütülebilir dosya adıyla aynı ön eke sahip olsa da, bu garanti edilemez.

.PHONY: all 

all: executablename runlog 

executablename: executablename.c 
     cc -o executablename executablename.c 

runlog: executablename 
     ./executablename >runlog 
:

otomatik derleme sonra çalıştırın ve geçici dosyasında yürütülebilir çıktısını yönlendirir bir Makefile tarifi, örneğin yazma çalıştırın derlemek ve bölünmüş penceresinde programın çıktısını düzenlemek için

Makefile'nin çalışması için bir sekme ile 8 boşluk alanının değiştirilmesi gerektiğini unutmayın.

Referans eşlemenizde geçici dosya: ^MCtrl + Return yazarak kaynaklanıyor :map <leader>m :!make^M:sp runlog^M.

+0

Lider kısayoluyla kaydedilen zaman, fazladan dosyaları silmek için harcanacak. –

+0

Bunun için herhangi bir dosyayı silmeniz gerekmez, çünkü Makefile içindeki _> runlog_ kabuk yeniden yönlendirmesi her zaman _runlog_ üzerine yazılır. Dosya için endişeleniyorsanız, _/tmp/runlog_cleaned_up_by_system_ adresine yönlendirin veya kaldırmayı Makefile'nizdeki temiz bir tarife ekleyin. Ayrıca bir lider haritalama (düzenli haritalama ile karşılaştırıldığında) ile zaman kazanmayla ilgili niyetinizi anlamamış olmakla birlikte, anlayış liderime kendi haritalarınız için uygun bir ad alanıdır. – 149

+0

Aynı Makefile'de derlemek için farklı programlara sahip olsaydım bunu nasıl yaparım? .filetype eksi dosyasının adını kullanmak için bir yolu yok mu? –