Vim을 Java IDE로 사용하기위한 팁? [닫은]


195

Vim에 중독되어 이제 텍스트 파일을 편집하는 사실상의 방법입니다.

주로 IDE가 아닌 텍스트 편집기이기 때문에 Java 앱을 개발할 때 더 쉽게 만들 수있는 사람이 있습니까?

내가 가진 몇 가지 질문 :

  • vi를 떠나지 않고 maven 작업을 어떻게 호출합니까?
  • 코드 완성을 할 수 있습니까?
  • 구문은 어떻게 강조됩니까?

내가 알아야 할 다른 것 ( "하지 마십시오!"이외)이 있습니까?


1
직장에서 netbeans를 광범위하게 사용하지만 집에있는 개인 서버의 경우 다른 컴퓨터에서 개발을 수행 한 다음 배포해야하므로 NetBeans를 사용하면 제대로 작동하지 않습니다. 왕복이 너무 깁니다.
Allain Lalonde

1
@AdamC Google에서 인바운드 여기 ... 파이썬에서 온 자체 승인 명령 줄 괴짜로서, Java 개발 환경으로 설정하는 데 대한 진입 장벽은 그러한 프로그램이 필요하여 크게 높아진다고 생각합니다 . 이미 JVM을 설치해야합니다. 안녕하세요 세상을 가기 위해 더 많은 설치를해야하는 이유는 무엇입니까? 스크립팅 언어에서 온 사람들이 자바를 처음 배울 때 가질 수있는 일반적인 성향입니다.
DeaconDesperado

2
VIM에서 편집 할 때. 콘솔로 돌아가려면 ctrl + z를 실행하면 vim을 백그라운드에 놓고 콘솔로 돌아갈 수 있습니다. 그런 다음 fg 명령을 사용하여 vim을 다시 포 그라운드로 가져올 수 있습니다.
Matthew Kirkley

ctrl =
fuzzyTew

3
ctrl + z / fg를 사용할 필요는 없습니다. 그냥 :! command를 입력하면 'command'가 실행됩니다. 빠른 쉘을 원하면 :! bash를 입력하십시오. 그런 다음 종료하면 매달려있는 백그라운드 작업을 남기지 않고 vim으로 돌아갑니다. 플러그인이있는 vim 창에서 쉘을 얻을 수 있습니다.
fuzzyTew

답변:


75

몇 가지 팁 :

  • vim (vi 개선)을 사용해야합니다. Linux 및 일부 버전의 UNIX symlink vi에서 vim.
  • eclim으로 코드 완성을 얻을 수 있습니다
  • 또는 viPlugin을 사용 하여 Eclipse 내에서 vi 기능을 사용할 수 있습니다
  • 구문 강조는 vim에서 훌륭합니다.
  • Vim은 ant / maven 빌드 실행과 같은 작은 매크로 작성을 지원 합니다.

재밌게 :-)


7
Java 구문 강조에 대한 도움말을 볼 수있는 명령입니다. : help java.vim
Michael Ekoka

2
Eclipse 내에서 Vim 기능을 사용하는 또 다른 방법은 Vrapper 입니다. Vim 키 바인딩의 대부분을 가지고 있으며 viPlugin과 달리 무료입니다.
n1te

1
스텝 오버, 스텝 스루 등을 지원하는 디버거는 어떻습니까?
Donato

1
리눅스 ... symlink vi to vim 대응
예제

30

나는 수년간 Vim 사용자였습니다. 나는 때때로 Eclipse를 시작하기 시작했다 (vi 플러그인을 사용하면 여러 가지 문제가 있음). 주된 이유는 Java 빌드가 꽤 오랜 시간이 걸리고 maven과 같이 고도로 구성 요소 화 된 빌드 프레임 워크를 추가함에 따라 점점 느려지고 있습니다. 따라서 변경 사항을 확인하는 데 꽤 오랜 시간이 걸리므로 나중에 해결 해야하는 많은 컴파일 문제가 누적되고 커밋 메시지를 통해 필터링하는 데 시간이 걸립니다.

너무 많은 컴파일 문제가 발생하면 Eclipse를 시작합니다. 그것은 변화의 케이크 작업을 할 수 있습니다. 사용하기가 느리고 잔인하며 Vim만큼 편집기가 좋지 않습니다 (Vim을 거의 10 년 동안 사용해 왔기 때문에 두 번째 특성입니다). 정밀한 편집을 원합니다. 특정 버그를 수정하고 특정 비트의 논리 등을 리팩토링해야 할 필요가 있습니다 ... Vim 에서처럼 Eclipse에서 편집하는 것만 큼 효율적일 수는 없습니다.

또한 팁 :

:set path=**
:chdir your/project/root

이것은 ^wf클래스 이름을 큰 프로젝트를 탐색하는 데 매우 유용한 기능으로 만듭니다 .

어쨌든, 많은 새로운 코드를 추가해야 할 때 Vim은 컴파일 문제와 유사한 것들을 쫓는 데 걸린 시간 때문에 단순히 속도를 늦추는 것 같습니다. 특정 소스를 찾아서 편집해야 할 때 Eclipse는 썰매 망치처럼 느껴집니다. 나는 여전히 Vim을위한 마법의 IDE를 기다리고있다. 내가 아는 세 가지 주요 시도가있었습니다. 많은 기능을 추가하지만 사용할 수없는 것처럼 보이는 순수한 viml IDE 유형 플러그인이 있습니다. eclim이 있는데, 나는 많은 문제를 겪었습니다. 그리고 실제로 Vim을 포함하는 Eclipse 용 플러그인이 있습니다. 마지막은 실제로 진지한 Java EE 작업에 가장 유망한 것으로 보이지만 Eclipse의 모든 기능을 내장 Vim과 완벽하게 통합하거나 실제로 통합하지는 않습니다.

키 입력으로 누락 된 가져 오기 추가, 입력 문제가있는 hilight 코드 등은 대형 Java 프로젝트에서 작업 할 때 IDE에서 귀중한 것으로 보입니다.


5
"^ WF"나는 :) 정력에 그런 일이 있다는 것을 몰랐다 위해 투표
르지 Krasoń

4
^ wf에 대해 더 자세히 설명해 주시겠습니까? 그게 뭐야?
user2427

1
파일 .java을 찾을 수 있으면 새 분할 창에서 커서 아래에 있는 Java 파일 / 클래스 (파일 이름 확장자 는 필요하지 않음)가 열립니다. 그것이 :set path=**도움이되는 이유 입니다.
exic

문자 그대로 두 개의 별표가 있습니까?
taco

1
@lijat- :help ^wf다른 vim 도움말과 마찬가지로
JESii

22
  • vi를 떠나지 않고 maven 작업을 어떻게 호출합니까?

    Maven은 다른 쉘 명령과 다르지 않습니다.

    :!mvn

    :set makeprg=mvn대한 즐겨 찾기 키 매핑이 이미있는 경우 가능합니다 :make.

  • 코드 완성을 할 수 있습니까?

    예, eclim 은 vim의 편집 효율성과 Eclipse의 Java 언어 별 인식 사이의 다리입니다.

    <C-n>그리고 <C-p>그다지 크지 만, 놀랍게도 도움이됩니다.

  • 구문은 어떻게 강조됩니까?

    정규식 기반의 리그 마거에 충분합니다.

코드 템플릿 ( snippetEmu-기본 스 니펫은 빠르지 만 사용자 정의 가능성은 밝음 ), 사용법 검색 및 선언 (eclim, grep, ctags), 게터 및 세터 생성 ( java_getset , 또는 eclim), 자동 수입 (eclim). 빠른 실험을 위해 자바 쉘 ( BeanShell , aka bsh)이 필요할 수도 있습니다 .


1
BeanShell 팁에 ​​감사드립니다. 그 툴에 대해 몰랐습니다
GoingTharn



8

나는 이것이 꽤 몇 년 후인 것을 알고 있지만 여기에 흥미로운 플러그인이 있습니다. 나는 아직 YMMV를 시도하지 않았습니다.

https://github.com/mikelue/vim-maven-plugin

https://github.com/vim-scripts/maven-ide

편집 : 아 BTW, 나는 eclim을 껐다 켰지 만, vim을 좋아하는 이유는 가벼움입니다. 헤드리스 모드에서도 이클립스를 실행하는 것은 나에게 너무 정신적 인 리프팅입니다.

EDIT2 : 최근에 playframework를 사용하고 있으며 아마도 maven 빌드에서도 작동합니다.

  • 컴파일을 위해 VIM의 make를 maven으로 실행하거나 제 경우에는 빌드 스크립트를 실행하여 파일에 구성 할 수 있습니다.

    autocmd Filetype java setl makeprg=play_compile
    autocmd Filetype java setl efm=%A\ %#[error]\ %f:%l:\ %m,%-Z\ %#[error]\ %p^,%-C%.%#

"play_compile"은 컴파일 스크립트 일뿐입니다. 그것은 SBT를 사용하므로 Maven은 여기서 잘 작동합니다. 직접 javac도 작동합니다. 이 방법으로 VIM의 퀵 픽스 버퍼 (: cnext, : clist : cprev 등)를 사용할 수 있습니다.

  • 수업을 뛰어 넘기 위해 ctrl-p를 사용합니다. 합니다. 아름답습니다. 그걸 써. 파일을 뛰어 넘을 때 일식보다 빠릅니다.

  • 방법을 뛰어 넘기 위해 나는 풍부한 c 태그와 함께 tagsearch를 사용합니다. ctrl-]를 사용하여 메소드 선언으로 이동하십시오. Ctrl-o를 사용하여 되돌아갑니다. 일식만큼 잘 작동하지는 않지만 충분히 잘 작동합니다.

  • 코드 완성을 위해 supertab 을 사용 합니다. Javacomplete는 꽤 느리므로 전적으로 완료됩니다. 다시 말하지만, 일식만큼 정확하지는 않지만 빠르며 나에게 충분합니다.


5

vim을 사용하십시오. ^-^ (gVim, 정확해야 함)

모든 것을 가질 수 있습니다 (일부 플러그인 포함).

Btw, snippetsEmu 는 유용한 스 니펫 (TextMate와 같은)으로 코딩하기에 좋은 도구입니다. 사전 제작 된 패키지를 사용 (또는 수정)하거나 직접 만들 수 있습니다.

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