메모장 ++ : 줄 끝 / 가상 공간을지나 커서?


11

TL; DR- 가상 공간이 커서를 텍스트 줄 끝으로 이동하도록하려면 어떻게해야합니까?

긴 버전 -Notepad ++에서 마우스 오른쪽을 지나서 긴 텍스트 행을 선택하려고 할 때 창의 오른쪽 가장자리를 넘어 가로로 스크롤하면 마우스가 커서를 움직일 수있을 정도로 약간 위 또는 아래로 이동합니다 인접한 (보통 훨씬 짧은) 선에 커서가 해당 선이 끝나는 왼쪽으로 다시 스냅됩니다. 결과적으로 창을 가로로 다시 왼쪽으로 스크롤하여 선택 항목을 신속하게 다시 조정하고 끌기가 어렵습니다.

일부 텍스트 편집기에는 "가상 공간"또는 EOL을 지나서 커서를 사용하여 기존 텍스트 / 공백에 제한되지 않고 마우스 / 화살표를 훨씬 쉽게 사용할 수있는 옵션이 있습니다.

Notepad ++에서 소스를 해킹하지 않고 어떻게 할 수 있습니까?


1
줄의 시작, SHIFT + END를 누르고 전체 줄을 선택 했습니까? 나는 그것이 당신이 원하는 것과 같지 않다는 것을 알고 있지만 그것은 내가하는 일입니다.
Rob

1
당신이 묻는 것은 아니지만 문제는 줄 바꿈으로 사라질 것입니다.
Eroen

@Rob : 이것은 매우 긴 코드 줄의 특정 긴 청크를 선택하려고 할 때 일반적으로 문제가되지만 그 줄은 훨씬 짧은 다른 줄과 섞여 있습니다. SHIFT + CTRL + RIGHTARROW를 사용하여 한 번에 한 단어 씩 시작 지점에서 오른쪽으로 빠르게 선택할 수 있습니다. 메모장 ++는 실제 공백이없는 경우 마침표, 괄호 등의 단어 구분 문자를 감지하는 데 매우 적합합니다. 단어 (예 : 긴 객체 참조) 예 : (자바 스크립트) :someObjectName.subObject.property['index'](parameter)
acatalept

@Eroen : 당신이 이것을 제안하게 된 것을 기쁘게 생각합니다 .N ++에서 오랫동안 단어 줄 바꿈을 사용하지 않았습니다. 프로그램이 큰 파일로 무릎을 꿇는 데 사용되었지만 실제로는 더 큰 20k에서도 매우 잘 작동합니다. 줄 파일, 심지어 줄 바꿈 줄 들여 쓰기;)
acatalept

답변:


14

해킹의 종류 (시작시 신 틸라 편집 컨트롤에 직접 창 메시지를 보냅니다), 그러나 잘 작동합니다 :

  1. NppExec 플러그인 설치

  2. 로 이동 플러그인 -> NppExec -> 실행

  3. 다음 코드를 입력하십시오 :

    // ensure console stays hidden
    NPP_CONSOLE 0
    
    // enable virtual spaces (cursor past end of line) outside column edit mode
    SCI_SENDMSG 2596 3 0
    
    // SCI_SENDMSG == send message to Scintilla edit control
    // 2596 == the message we're sending is SCI_SETVIRTUALSPACEOPTIONS
    // 3 == send the value (SCVS_RECTANGULARSELECTION | SCVS_USERACCESSIBLE)
    // the default value is 1 (just SCVS_RECTANGULARSELECTION) for
    //   virtual spaces in column select mode only
    // you can find these values by poking around the source code a bit, or
    // see http://www.scintilla.org/ScintillaDoc.html
    
  4. 하단 의 저장 버튼을 클릭하고 스크립트 이름을 지정하십시오.

  5. 이제 플러그인-> NppExec-> 고급 옵션으로 이동하십시오.

  6. 오른쪽의 "Notepad ++가 시작될 때이 스크립트 실행"에서 방금 저장 한 스크립트 이름을 선택하십시오.

  7. 확인을 클릭하고 메모장 ++를 닫거나 다시 열고 즐기십시오.)


2596다른 신 틸라 명령에 대한 메시지 코드는 어디에 기록되어 있습니까? Scintilla.h 만 파고? 현재 tortoisesvn.googlecode.com/svn/trunk/ext/scintilla/include/… ?
n611x007

무엇 0SCI_SENDMSG 2596 3 0?
n611x007

@naxa 다음 메시지 코드에 대한 불꽃 문서, 예를 들어, 참조 scintilla.org/ScintillaDoc.html#SCI_SETVIRTUALSPACEOPTIONS를 (필자는 3 매개 변수이 대부분 사용되지 않는다 생각하지만, 생략하는 대신 0으로 설정해야합니다)
acatalept

"해킹의 종류"-해킹은 소프트웨어가하지 말아야 할 것에 액세스하는 것을 의미합니다. 이것은 나에게 기능처럼 보입니다.
Natalie Adams

@Nathan : 의미론은 재미있다;) 본질적으로 NppExec 플러그인을 사용하여 창 메시지를 컨트롤에 직접 보내는 것은 메모장 + +가 특별히 설계된 것이 아니라 일종의 해킹이라는 것을 의미했습니다. wheels)
acatalept

0

관리자 권한이 없으면 dll을 다운로드하고 npp의 플러그인 o / s 디렉토리 / 폴더에 설치하여 NppExec을 설치하십시오. npp를 닫거나 다시 엽니 다.

편집 (+ 2 년) : 이것이 변경되었는지는 모르지만 NppExec 폴더 에 npp의 플러그인 폴더에 NppExec 폴더 를 넣습니다 (원래가 아닌 경우) .

또한 버전이 일치하는지 확인하고 (32 비트 또는 64 비트인지 여부를 스스로 알리십시오) 최신 버전 (2019)이있는 경우 NppExec의 _PA 버전이 필요할 수 있습니다.

메모장 ++ 용 NppExec 플러그인을 설치할 수없는 이유는 무엇입니까?


메모장 ++에서 변경된 사항이 있습니다. 실행은 더 이상 존재하지 않습니다. 이것에 대한 수정이 있습니까?
user215779
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.