VIM'den kod derleme


18

Yeni vimve ben vimyeni bir terminal çalıştırmadan ve derleyiciyi çağırmadan içeriden kod derlemek istiyorum .

Bunu nasıl yapabilirim? Bu gereksinimin gccsadece sınırlı olmadığını unutmayın, bazen pythonüzerinde çalıştığım mevcut komut dosyasını da çağırmam gerekiyor , bu yüzden fikri anlıyorsunuz ...

Yanıtlar:


25

Bir yazın Makefile, sonra şunları yapabilirsiniz:

:make

vim içinden. Ve derleme başarısız olursa:

:copen

size uyarı ve hataları gösterecektir. Bunları seçtiğinizde uygun dosya ve satıra yönlendirilirsiniz.



6

Herhangi bir nedenden ötürü makefiles'i sevmiyorsanız şu komutları arayabilirsiniz:!

Örneğin basit bir java programı derlemek ve çalıştırmak için ":! Javac * .java && java Foo" kullanabilirsiniz. Ayrıca diğer yapı sistemlerini (scons, cmake, ...) bu şekilde çağırabilirsiniz.


3

Vim için quickrun eklentisini deneyin . Sayfada en son sürüm olan ve kullandığım github bağlantısı var.

Bu eklentiyi yapmanın aksine kullanmanın avantajı :!, komuttan elde edilen çıktı toplanacak ve bölünmüş bir pencerede gösterilecektir.

Ayrıca, varsayılan olarak bu eklenti, bir komut yürütmesini istediğinde vim örneğinizi asacaktır, ancak komutu eşzamansız olarak çalıştıracak şekilde yapılandırılabilir. Daha fazla bilgi için belgeleri okuyun.


3

Python yorumlayıcısı derlenmiş bir vim kullanıyorum.

Bu işlevi olan bir python dosyası kaynak:

def pyterm(filename="", interactive=1):
    cmd = "%s %s %s " % (PYTHON, "-i" if interactive else "", filename)
    if "DISPLAY" in os.environ:
        return run_config(os.environ.get("XTERM"), cmd)
    else:
        return os.system(cmd)

Ve bir klavye kısayoluyla eşleyin:

nmap ;ru :update<CR>:python pyterm(vim.current.buffer.name, 0)<CR>
nmap ;ri :update<CR>:python pyterm(vim.current.buffer.name, 1)<CR>

Daha önce gvim kullanılıyorsa çalıştırılacak terminali veya X'te değilse aynı terminalde belirlemek için bazı ortam değişkenleri ayarlamıştım.

Sonra genellikle çalıştırmak için bir Python tamponuna '; ri' yazıyorum (genellikle test etmek için).


2

Vim, geçerli dosyada gnu make kullanarak derlemek için kullanılabilir - dosya için Makefile olmasa bile (daha fazla ayrıntı için buraya bakın ):

:make %:r

Bu şekilde vim , derleyici ( ) listesinden quickfix hata geri bildirimlerine erişim sağlar :help quickfix- :cnSonraki hata, :cpÖnceki hata, :cwYeni pencere listeleme hataları.

Gnu make'iniz yoksa makeprg değişkenini ayarlayabilirsiniz (C ++ derliyorsanız g ++ olarak değiştirin):

:se makeprg=gcc\ -o\ %<\ %

ve geçerli dosyayı derlemek ve vim'deki hataların hızlı bir listesini almak için vim make komutunu kullanın :

:make

DÜZENLEME: Derlenmiş yürütülebilir dosyayı vim içinden de çalıştırmak istiyorsanız ('!' Yürütür, '%: r' soneki olmayan dosya adıdır):

:!./%:r

1

Gcc, python vb. Durumunda iki nokta üst üste (:!)

Örneğin. :!python something.py


0
!gcc file.c && ./a.out

Bu, C dosyanızı derlemenin yanı sıra, tüm vim pencerenizdeki girişi isteyen yürütülebilir dosyayı çalıştıracaktır.


1
Daha eksiksiz bir cevap ':' içerir ve daha çok yönlü hale getirmek için mevcut dosya operatörü '%' için 'file.c' 'yi değiştirebilirsiniz::!gcc % && ./a.out
Pierz

Ben de benzer bir şey yapıyorum .vimrc, harita Command + Shift + R:map <D-R> :exe '!gcc %:p' <bar> exe '!'.getcwd().'/a.out'<cr>
f1lt3r

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.