vim에서 컴파일을 하고 싶은데요....

ferteen의 이미지

vim에서 코드를 작성한다음에 저장해서 터미널에서 컴파일 하는게 불편해서

vim과 gcc를 연동에 대해 kldp를 검색해 봤는데 글이 하나 있더군요..

(http://kldp.org/node/36695)

하지만 전 아무리 읽어보고 해봐도 안되네요..

vim에서 gcc와 연동하는 법은 다른곳을 뒤져도.. wiki를 봐도 없네요..

자세한 답변좀 부탁드립니다...아, 그리고 어떤글에서 오리지널 vim을 사용하지 말라는얘기도 들은것 같은데

오리지널 vim이란 어떤거 말하는건가요..?? 쿠분투 대퍼인데 리눅스 설치할때 자동으로 설치되어있는

vim보다 좋은게 있는건가요.?

환상경의 이미지

전에 제가 질문올린거였군요 >_ 그당시에는 저도 리눅스에서 컴파일하는법을 알려고 무던 애를 썼던때라
KLDP분들덕에 어느정도 익숙하게 되었죠 ^^;;

하는방법은

~/.vimrc 파일을 생성하신뒤에 다음과 같이 작성해주세요

" 컴파일
map <F2> : !gcc % -o %

" 실행
if has("gui_running")

map <F3> : !%

elseif has("unix")

map <F3> : !./%

endif


실행부분은 Gvim일때이냐 아니냐에 따라 다르게 적용되는거지만 뭐 일단은 잘작동되니 ^^;;

컴파일은 F2키를 누르시면 되고 F3키를 누르면 실행이 됩니다 ^^

2006.07.10 수정;;

밑에 마잇님이 지적해주셔서 알게되었네요 -_-
제가 아직 이 게시판 사용법을 몰라서 <F2> 이부분이 HTML로 인식이되어 표현이 제대로 안되었었네요 -_-

젠투여 영원하라......~!
네이버 블로그 : http://blog.naver.com/khmirage.do

==================================================================
정체된 일상.... 계기를 만들어야 하는데........
BLOG : http://khmirage.tistory.com/

등짝을보자의 이미지

저도 해볼라고 했는데 이상하게 안되네요..좀 봐주실래요...?

~/.vimrc

vim .vimrc 해서..

map : !gcc % -o %

if has("gui_running")

map : !%

elseif has("unix")

map : !./%

endif

이렇게 해놓고 저장한다음에
vim test.c 해서 파일생성한후에
명령모드로 갈라고 : 눌렀는데 안먹히더군요..
F2,F3 누르니 마우스커서 한번 사라졌다 다시 나타나는 현상나오던데
제가 설정을 잘못한건가요??

현재 저는 fedora4 을 쓰고있습니다..
---------------------------------------------------------------------
내 머리속에 rm -rf /

[img]http://fedora.redhat.com/images/header-fedora_logo01.png[/img]


감비노도 궁금해하더라구..등짝!..등짝을보자!..

마잇의 이미지

:help usr_30.txt

혹은

:help

하신 후 |usr_30.txt| Editing programs 라는 항목으로 이동하시면 vim에서 프로그래밍을 편하게 해주는 기본적인 내용들이 설명되어 있습니다.

:help C-editing 내용도 살펴보시면 도움이 되실 겁니다.

간단하게 설명드리면,

빌드(컴파일)의 경우는 makeprg 옵션을 원하는 명령으로 바꿔주시고(기본값 make) :make 하시면 됩니다.
환상경님이 올려주신 방법 - 외부 명령어로 직접 컴파일 - 과의 차이점은 컴파일시 에러가 나는 경우 그 내용을 해석해서 에러가 발생한 곳으로 이동시켜 준다는 점입니다. 컴파일러의 에러 메시지를 확인해가면서 해당 위치로 이동해서 수정하는 과정을 좀 더 편하게 할 수 있습니다.

이 때 같이 사용하는 명령어 :cl, :cc, :cn, :cp 같은 것이 있습니다.

:cl - 전체 에러 내용을 보여주고
:cc - 현재 위치의 에러 내용
:cn - 다음 에러 위치로 이동
:cp - 이전 에러 위치로 이동

에러 메시지 해석 방법은 errorformat 옵션에서 지정해주는데 gcc로 C, C++ 소스를 컴파일 하시는 경우라면 기본값 그대로 쓰시면 됩니다.

다양한 언어와 컴파일러에 맞추어 미리 만들어진 컴파일러 플러그인을 사용할 수도 있습니다. makeprg, errorformat 같은 옵션을 한번에 설정해 주는 내용들이 들어 있습니다. :comp 명령으로 설치되어 있는 플러그인 목록을 확인하실 수 있습니다.

컴파일 -> 에러 확인 -> 수정

이 과정을 도와주는 특화된 기능이 :make
관련 옵션은 makeprg, errorformat -> :comp 명령으로 손쉽게 설정 가능

--
마잇


--
마잇

ferteen의 이미지

환상경님이 말씀하신 것처럼 설정을 해줬는데..

명령모드가 작동되지 않습니다.. f3, f4키는 물론 명령모드가 작동되지 않으니

:q도 되지가 않습니다...

제가 뭘 잘 못한건가요...

환상경의 이미지

저는 잘 되는데요;;
F2를 누르면 자동으로 명령모드로 바뀌면서 gcc ~~~~하는 내용이 자동 입력이 됩니다.
그러고나서 바로 엔터를 누르면 컴파일이 진행이 될텐데요;;;;

저 설정내용은 현재 제가 사용하는 .vimrc 파일에서 고대로 복사해온거라서요;;;;

젠투여 영원하라......~!
네이버 블로그 : http://blog.naver.com/khmirage.do

==================================================================
정체된 일상.... 계기를 만들어야 하는데........
BLOG : http://khmirage.tistory.com/

마잇의 이미지

글안에 꺽쇠 기호 처리를 제대로 못하더군요. HTML 태그로 인식해서 먹어버리는 것 같습니다.
올려주신 설정 내용중에 꺽쇠때문에 내용이 잘못 표현됩니다.

다른분들은 그대로 복사 해 넣으셔서 F2 대신 : 키로 지정된 것 같습니다.

--
마잇


--
마잇

환상경의 이미지

마잇님의 글을보고 다시 윗글을 살펴보니 잘못 표현이 되었군요 -_-ㅋ

젠투여 영원하라......~!
네이버 블로그 : http://blog.naver.com/khmirage.do

==================================================================
정체된 일상.... 계기를 만들어야 하는데........
BLOG : http://khmirage.tistory.com/

ferteen의 이미지

정말 감사드립니다...되는군요...........

세이군의 이미지

vimrc파일 복사해서 적으신 부분을 수정하셔서
인용된 부분을 <code*gt;&lt/code>로 묶어주세요.

ferteen의 이미지

저 내용을 안에 넣으란느건가요...

환상경의 이미지

게시판에 저렇게 수정을 해주라는 말씀이셨거든요
제가 코드 올릴적에 F2 F3부분이 HTML태그로 인식이 되어서 표시가 안되는걸 지적하시는거였습니ㅏㄷ. ^^;;

젠투여 영원하라......~! 네이버 블로그 : http://blog.naver.com/khmirage.do

==================================================================
정체된 일상.... 계기를 만들어야 하는데........
BLOG : http://khmirage.tistory.com/

익명 사용자의 이미지

set makeprg=gcc\ -o\ %<\ %
로 세팅한 다음 :make를 해주게 되면

make를 수행하면서 위 세팅된 command가 setting 됩니다.

그뒤에 에러가 나타나게 된다면
:cn을 해주면 다음 error를 자동으로 찾아가게 되어서 빠르게 수정이 가능합니다.

익명 사용자의 이미지

vim 은 IDE 가 아니다 라고 생각했었는데,
이쯤되면 IDE 라고 해도 되겠다는 생각이 듧니다. 괜한 언쟁될까 걱정입니다만..

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.