Eclipse에서 자동 완성을 트리거하지 않도록 스페이스 바 키 누르기 중지


86

최신 정보

이것은 Eclipse 2018-12 에서 수정되었습니다 . 이 동작은 여전히 ​​기본값이지만 해제로 구성 할 수 있습니다. 방법 은 허용 된 답변 을 참조하십시오 .

나는 이클립스의 이전 버전과 후손에 대한 질문을 남겨 둘 것이다.


Eclipse에서 Java에 대한 인텔리 센스 스타일 제안을 활성화했습니다.

Window -> Preferences -> Java/Editor/Content Assist

다음 설정

Auto activation delay (ms) -> 0
Auto activation triggers for Java -> .(abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ

출처 = Eclipse Intellisense?

이것은 하나의 성가신 문제를 제외하고 훌륭하게 작동합니다. 을 누르면 spacebar입력되는 토큰이 제안 목록의 맨 위에있는 항목으로 자동 완성됩니다. 가끔 내가 정확히 일치하는 클래스 / 변수 이름을 입력하는 것을 제외하고는 충분하지만 이것이 최고의 제안으로 나타나지 는 않습니다 . 그래서 자연스럽게 spacebarEclipse를 치면 완전히 잘못된 것을 삽입합니다.

EG는 입력 한 후 Cookie나는 명중 것이다 spacebar얻을 CookieMonster.

이것은 버그처럼 보이며 성 가실 정도로 자주 발생하지만 이것에도 불구하고 일반적으로 자동 완성을 트리거 하고 싶지 않습니다spacebar . 아직 선언되지 않은 변수 이름이나 비슷한 이름을 입력하고 싶을 수 있습니다. 자동 완성을 도우미 도구로 사용하고 싶지만 내 자연스러운 타이핑이 항상 우선권을 가져야 합니다.

spacebar자동 완성 트리거 를 중지 하고을 사용하여 돌아가 enter거나 custom일반 입력에 사용되지 않는 키로 자동 완성을 트리거하는 것이 좋습니다 . 이것이 가능합니까?

Content Assist의 모든 설정을 사용 하여 아무 소용이 없습니다. 질문을 인터넷 검색하면 자동 완성 기능 비활성화에 대한 많은 결과가 반환됩니다.


이 문제는 Eclipse 2018-12 [4.10]에서 수정되었습니다 . 승인 된 답변 참조

모든 이전 버전 (예 : 2018-09 [4.9], Photon [4.8], Oxygen [4.7], Neon [4.6] 등)에 있습니다.


+1 나는 그저 똑같은 문제로 싸우고 있었는데 ...이 문제를 해결하는 데 행운이 있습니까? 스페이스를 누르고 원하지 않는 것을 얻는 것은 매우 성가신 일입니다 (선택하지 않았습니다!). 이것은 "유형 선언"에 적합 할 수 있지만 "변수 이름"에 대해서는 합리적이지 않습니다.
emgsilva

불행히도. 최신 버전의 Kepler (4.3)에 동일한 문제가 있는지 알고 있습니까? 아직 업그레이드하지 않은 경우 질문을 업데이트하겠습니다
davnicwil 2013-08-15

3
불행히도 Kepler (4.3)에서도 똑같은 동작이 발생합니다. 정말 유감입니다. 나는 자동 활성화를 많이 좋아하지만 여러 상황에서 그러한 선택을하는 것이 정말 짜증납니다. 내 임시 해결책은 활성화 시간을 약간 늘려서 대부분의 새 변수 이름을 작성하는 것입니다 ...하지만 항상 작동하지는 않습니다. 나는이 문제를 좀 더 연구 할 것이고, 아마 기능이 아닌 버그라고 생각하기 때문에 이것을 Eclipse에보고 할 것이다.
emgsilva

stackoverflow.com/questions/7371618/…의 중복 가능성 (Indigo도 이미 이와 같이 작동했음을 나타냄)
herman aug

6
이 질문에 대한 찬성표의 수와 답변에 대한 찬성표의 부족으로 판단하면 Eclipse가이 문제를 해결해야하는 것 같습니다!
andrewb 2014 년

답변:


20

Eclipse 2018-12는 이미 패치되었습니다!

Bug 348857 에 대한 패치 는 최근 Eclipse 프로젝트에 병합되었으며 Eclipse 2018-12의 일부로 릴리스되었습니다 . 여기에서 해당 버전을 다운로드 할 수 있습니다 .

이제 자동 완성 enter을 방지하는을 제외한 모든 삽입 트리거를 비활성화하는 새로운 옵션이 spacebar있습니다.

간단히 이동 환경 설정 ... -> 자바 -> 편집기 -> 콘텐츠 지원 (또는 -> 환경 설정 -> 자바 -> 편집기 -> 콘텐츠 지원 Windows에서) 선택 '입력'을 제외하고 해제 삽입 트리거를 같이, 아래 스크린 샷 : 삽입 트리거 기본 설정 비활성화


1
훌륭합니다. 감사합니다. 사람들이 현재 버전에 대한 것임을 분명히 알 수 있도록 답변에 제목을 추가했습니다. 다른 답변은 구식입니다.
callmebob

1
@Pyves이 새로운 답변, 사과를 받아들이는 데 시간이 좀 걸렸지 만 더 이상 이클립스를 사용하지 않으며 확인하지 못했습니다. 어쨌든, 네, 같은이 모습은 확실히 문제를 해결하고 난 정말 기뻐요 되었다 에 6 년 이상 해결!
davnicwil

디버그 셸보기 내에서 트리거 억제가 작동하지 않는 문제가있는 사람이 있습니까? 나를 위해 스페이스 바가 자동 완성을 트리거합니다. (나는 2019 년 6 월에 있습니다)
William Dutton

@William Dutton은 별도의 버그 보고서에서 플래그를 지정할 수 있습니다.
Pyves

26

이에 대한 문제 추적기에 대한 해결책 이 있습니다. eclipse / dropins 폴더에 항아리 를 복사하십시오 . 다음 다시 시작시 공간은 자동 완성 트리거로 비활성화됩니다.

https://bugs.eclipse.org/bugs/show_bug.cgi?id=348857

Eclipse 12-2018 이상 : 이것은 기본적으로 작동하며 Pyves 답변을 확인하십시오.


2
멋져 보이지만 .. Eclipse Juno에서는 작동하지 않습니다. 동작에 변화가 없으며 스페이스 바는 여전히 자동 완성을 활성화합니다. 이게 Kepler에서 효과가 있습니까? 버그 스레드에 언급 된 도구 토글을위한 도구 모음 버튼 / 메뉴 항목은 어디에 있습니까?
davnicwil

1
예, Kepler 서비스 릴리스 1에서 저에게 적합합니다. 그러나 도구 모음 항목도 표시되지 않습니다.
Pascalius

Eclipse Luna SR2 (4.4.2-빌드 ID : 20150219-0600)에서는 작동하지 않습니다.
BrainSlugs83

저는 이클립스 Luna의 동작을 인텔리 센스 완성 키로 만 받아들이도록 Eclipse Luna의 동작을 변경하는 플러그인을 진짜 빠르게 만들었습니다.
BrainSlugs83

1
@Pascalius는 오랫동안 최고의 답변을 제공 해주셔서 감사합니다.하지만 이제 Eclipse는이 문제를 해결하고 기본적으로 구성 할 수 있도록했습니다. 이것은 새로운 답변에서 지적되었으므로 이제는 문제를 해결하는 가장 좋은 방법이므로 대신 수락했습니다.
davnicwil

7

Eclipse의 SDK 버전 사용

1. 플러그인보기를 열고 org.eclipse.jface.text를 찾은 다음 마우스 오른쪽 버튼을 클릭하고 소스 프로젝트로 가져 오기를 선택합니다. 가져온 후 작업 공간에서 찾을 수 있습니다.

2. src / org / eclipse / jface / text / contentassist / CompletionProposalPopup.java에서

char[] triggers = t.getTriggerCharacter();
if(contains(triggers,key))

로 변경

if(key!='='&&key!=0x20&&contains(triggers,key))

3. org.eclipse.jface.text 내보내기

org.eclipse.jface.text의 프로젝트 폴더를 마우스 오른쪽 버튼으로 클릭하고 내보내기-> 배포 가능한 플러그인 및 조각을 선택하고 다음으로 대상 아카이브 파일을 선택하고 완료합니다. eclipse / plugins에서 생성 한 것으로 교체하십시오.


2
이보기를 여는 방법을 궁금해하는 경우 "창"-> "보기 표시"-> "기타 ..."로 이동하여 필터 텍스트 상자에 "plug"를 입력 한 다음 상자에서 "플러그인"을 선택합니다. 아래에 "확인"을 누르십시오.
BrainSlugs83

또한 Visual Studio와 같은 경험이 더 필요한 경우 해당 블록 (기본 블록)을 완전히 주석 처리하고 '\ t'블록을 주석 처리 한 다음 '\ r'을 처리하는 블록을 찾는 것이 좋습니다. '\ n'(이 두 개 바로 위에), '\ t'를 추가합니다. -이렇게하면 탭 완성이 제공됩니다. :-)
BrainSlugs83

(이 모든 문제를 겪고 싶지 않은 사람들을 위해 64 비트 버전의 Eclipse Luna SR2 4.4.2 : 1drv.ms/1GZhJPq- 위에서 언급 한 변경 사항을 염두에 두십시오.)
BrainSlugs83

@ BrainSlugs83 가능하다면 a) 코드를 github에 게시하거나 b) "."를 추가하세요. 완료 트리거에 이르기까지 굉장 할 것입니다.
lakemalcom 2015

0x20대신 왜 사용 했 ' '습니까?
기금 모니카의 소송

3

스페이스 바는 Indigo에서도 자동 완성을 선택하는 열쇠였습니다. 내 지식으로는 구성 할 수 없습니다. 사실 이것이 지연이 존재하는 이유 일 것입니다.

및에 private void ...대한 제안을 트리거하지 않고 편안하게 입력 할 수 있도록 지연을 최적의 값으로 설정하는 것이 좋습니다 . 그런 다음 너무 오래 기다렸다가 제안을받은 경우 Esc를 눌러 Content Assist를 중단하십시오.privatevoid


나는 지연을 늘려서 제한적인 성공을 거두었습니다.
Raedwald 2010 년

0

davnicwil과 동일한 구성, 동일한 문제, 여전히 Eclipse 4.4에 있습니다.

솔루션 : (편집기 창) 일식에서 가로 채기 (후크) SHIFT + SPACE (누르고 있기)하고 ESC, SPACE (시퀀스)로 바꿉니다. 이제 너는 내 결정

  • 자동 완성 + 스페이스 : 자동 제안이있을 때 스페이스 바를 누릅니다.
  • 스페이스 바 : 미리 정의 된 키 조합 또는 시퀀스 누르기 (예 : SHIFT + SPACE)

Windows에서는 http://www.heise.de/download/activaid.html을 사용할 수 있습니다 (AutoHotkey, Java 기본 후크 등을 사용할 수도 있습니다.).

ActivAid 사용 방법 :

  1. Ac'tivAid를 열고 "UserHotkeys"를 선택하십시오.
  2. "+"를 클릭하고 설명을 설정합니다.
  3. "바로 가기"를 클릭하고 예를 들어 SHIFT + SPACE를 누릅니다.
  4. 명령 : "{ESC} {SPACE}"(따옴표 제외)
  5. "+"를 클릭하고 이클립스 편집기 프레임을 선택한 다음 Enter 키를 누릅니다.
  6. Ac'tivAid에서 확인, 확인을 클릭하십시오.

내 구성 파일 : activAid / settings / ac'tivAid.ini : [UserHotkeys]

Hotkey11=+Space
Path11=<Send>{ESC}{SPACE}
Description11=Eclipse Shift+Space -> Esc,Space
Category11=
Application11=ahk_class SWT_Window0

영어가 아닌 키보드에서 "HotStrings"(예 : ö-> {, ä->} 등)를 사용하여 키를 다시 매핑 할 수도 있습니다.


0

마침내 해결되었습니다.

org.eclipse.jface.text.jar를 다운로드 하여 플러그인 폴더 (일반적으로 eclipse / plugin)에 복사하십시오. 자신의 것을 백업하는 것을 잊지 마십시오.

Eclipse Juno에서 작동합니다.

링크가 작동하지 않으면 이것에 대해 의견을 말하십시오.


MARS1 Eclipse를 시작할 수 없습니다. java.lang.RuntimeException : 레지스트리에서 "org.eclipse.ui.ide.workbench"애플리케이션을 찾을 수 없습니다.
Tiina

-3

의 확인란을 통해 자동 활성화를 비활성화 할 수 있습니다.

Window -> Preferences -> Java/Editor/Content Assist

필요에 따라 자동 완성 기능을 활성화합니다. 이에 대한 기본 단축키는 다음과 같습니다.

CTRL+Space


3
전체 문제는 내가 있다는 것입니다 원하는 바로 자동 완성을하고 스페이스 바를없이 자동 활성화 동작을
davnicwil

-3

Eclipse에서 창-> 환경 설정-> 일반-> 키로 이동하여 Content Assist 명령에 대한 바인딩을 제거하십시오.


1
그러면 ctrl + Space를 사용하여 제안을 가져올 가능성이 제거됩니다. OP가 원하는 것은 스페이스 바를 사용하여 제안 선택을 비활성화하는 방법입니다. 이에 대한 키 바인딩이 없습니다.
herman
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.