vim에서 코드 컴파일


18

새로 vim와 나는 내에서 코드를 컴파일 할 수 있도록하려면 vim새로운 터미널을 실행하고 컴파일러를 호출하지 않고.

이 작업은 어떻게합니까? 이 요구 사항 gcc만으로 제한되지는 않으며 때로는 python작업중 인 현재 스크립트 를 호출해야 하므로 아이디어를 얻습니다.

답변:


25

를 작성하면 Makefile다음과 같이 간단하게 할 수 있습니다.

:make

vim 내부에서. 그리고 컴파일이 실패하면 :

:copen

경고와 오류가 표시됩니다. 그것들을 선택하면 적절한 파일과 줄로 이동합니다.


12

정력에, 현재의 파일로 참조 할 수 %있도록,

:!python %

참조 :he cmdline-special(또는 여기 )


6

어떤 이유로 makefile이 마음에 들지 않으면 :!

예를 들어 ":! javac * .java && java Foo"를 사용하여 간단한 Java 프로그램을 컴파일하고 실행할 수 있습니다. 이 방법으로 다른 빌드 시스템 (scons, cmake 등)을 호출 할 수도 있습니다.


3

Vim 용 빠른 실행 플러그인을 사용해보십시오 . 이 페이지에는 최신 버전이며 내가 사용하는 github에 대한 링크가 포함되어 있습니다.

을 수행하는 대신이 플러그인을 사용 :!하면 명령의 출력이 수집되어 분할 창에 표시됩니다.

또한 기본적으로 플러그인은 명령을 실행하도록 요청할 때 vim 인스턴스를 중단하지만 명령을 비동기식으로 실행하도록 구성 할 수 있습니다. 자세한 내용은 설명서를 읽으십시오.


3

파이썬 인터프리터가 컴파일 된 vim을 사용합니다.

이 기능을 가진 파이썬 파일을 제공합니다.

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)

키보드 단축키에 매핑하십시오.

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

gvim을 사용하는 경우 정확한 터미널을 결정하기 위해 일부 환경 변수를 설정했거나 X가 아닌 경우 동일한 터미널에서 이전에 설정했습니다.

그런 다음 일반적으로 Python 버퍼에 '; ri'를 입력하여 실행합니다 (일반적으로 테스트).


2

Vim은 파일에 Makefile이 없더라도 현재 파일에서 gnu make를 사용하여 컴파일하는 데 사용할 수 있습니다 (자세한 내용은 여기 참조 ).

:make %:r

이 방법으로 vim은 컴파일러 ( ) 목록- 다음 오류, 이전 오류, 새 창 목록 오류 에서 quickfix 오류 피드백에 액세스 할 수 있습니다.:help quickfix:cn:cp:cw

gnu make가 없으면 makeprg 변수를 설정할 수 있습니다 (C ++를 컴파일하는 경우 g ++로 변경).

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

vim make 명령을 사용하여 현재 파일을 컴파일하고 vim에서 빠른 오류 목록을 얻습니다 .

:make

편집 : vim 내에서 컴파일 된 실행 파일을 실행하려면 수행 할 수 있습니다 ( '!'실행, '% : r'은 접미사가없는 파일 이름입니다).

:!./%:r

1

gcc, python 등의 경우 콜론 뱅 (:!)으로 호출 할 수 있습니다

예 : :!python something.py


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

이것은 C 파일을 컴파일하고 vim 창 내에서 입력을 요구하는 실행 파일을 실행합니다.


1
보다 완벽한 대답은 ':'을 포함하고보다 다양한 용도로 사용하기 위해 현재 파일 연산자 '%'에 대해 'file.c'를 변경할 수 있습니다.:!gcc % && ./a.out
Pierz

내에서 비슷한 일을하고 있어요 .vimrc, 나는지도 Command + Shift + R:에map <D-R> :exe '!gcc %:p' <bar> exe '!'.getcwd().'/a.out'<cr>
f1lt3r

0

소스 코드를 컴파일하는 특별한 경우와 관련하여.

그리고 파이썬을 컴파일 할 수있는 것이 있다면 makeprg적절하게 설정하십시오 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.