emacs / elisp : 해시 (파운드, 숫자 기호, 옥토 토르 프) 기호는 무엇에 사용됩니까?


102

이것은 무엇을합니까?

(add-hook 'compilation-mode-hook #'my-setup-compile-mode)

... 그리고 그것은

(add-hook 'compilation-mode-hook 'my-setup-compile-mode)

답변:


98

다른 점이 없다:

(eq 'my-add #'my-add)

수확량 t

#(A)의 전면에 사용될 수 lambda는 다음 식 바이트 컴파일 될 수있는 바이트 컴파일러에 나타내는 식에 대한 문서 참조 익명 기능 . 그러나 심볼의 경우 컴파일 할 것이 없습니다.

일반적으로 왼쪽 꺾쇠 괄호 (<)와 함께 인쇄 된 표현에 사용되어 인쇄 된 개체가 설명 (그러나 읽을 수 없음)임을 나타냅니다. 예를 들면 :

#<buffer foo.txt>

또한 독자가 원형 구조를 표현하기 위해 구성에 사용합니다. 원형 객체에 대한 읽기 구문 문서를 참조하십시오 .

그리고 당신은 나타내는에 대한 사용이 정수에 대한 기본 예를 #x2c -> 44.

게다가 더 확신합니다.


12
이 기사 에 따르면 #, 단일 심볼 에 적용 하는 한 가지 좋은 이유 는 해당 심볼이 정의되지 않은 경우 컴파일 타임에 진단을받는 것입니다.
ajk 2014

3
"심볼의 경우 컴파일 할 것이 없다"는 것은 사실이 아닙니다. 바이트 컴파일러는 # 'car를 "나는 항상 기호 foo가 아니라'foo '함수를 참조한다"는 의미로 해석합니다. 그런 다음 실제로 바이트 컴파일 된 출력에서 ​​foo의 정의를 인라인 할 수 있습니다. (편집 : 아니요, 그건 사실이 아닙니다. # 'symbol은'symbol '과 다르게 바이트 컴파일되지 않습니다. 의도의 표시 일뿐입니다.)
Jonathan Tomer dec

11
아마도 그것은 구문 적으로 'symbol표현 (quote symbol)하고 #'symbol표현 하는 것을 여전히 언급 할 것 (function symbol)입니다.
tripleee 2015 년

27

포괄적이어야하는 목록은 Emacs lisp 참조 색인 상단에서 찾을 수 있습니다 .

편집 : 또는 Emacs 자체에서 더 편리하게 :

  • M-x info RET (정보 브라우저 열기)

  • d m elisp RET (elisp 매뉴얼 열기)

  • I # RET( #색인 의 항목 나열 )


25

해킹 중에 찾은 해시의 의미를 검색하는 동안이 질문을 발견했습니다 mode-line-format.

#("-%-" 0 3
  (help-echo "Display as tooltip when mouse hovers or with display-local-help."))

문자열의 텍스트 속성에 사용되는 형식입니다 .

  • "-%-", 속성 화할 텍스트 : 대시 1 개와 % -construct 가 "모드 라인의 나머지 부분을 채우기에 충분한 대시"를 생성하여 유명한 Emacs가 ------됩니다.
  • 0, 텍스트 속성이 적용되는 첫 번째 문자입니다.
  • 3, 텍스트 속성이 적용되는 마지막 문자, 전체 "-%-".
  • (help-echo "..."), 속성 및 문자열을 인수로 사용합니다.

다음 propertize함수 로 만들 수 있습니다 .

(propertize "Hover over me!" 'help-echo '"congratulations!")

(삽입 ( "Hover over me!" 'help-echo' "Congratulations!"))

다음과 같습니다 #("Hover over me!" 0 14 (help-echo "Congratulations!")).

작은 예.

글꼴 잠금 모드를 사용하는 경우 buffer-substring명령을 사용하면 다음과 같은 결과를 얻을 수 있습니다.

(buffer-substring 1 28) ; First 27 characters in the current buffer
  #(";; This buffer is for notes"
     0 3
     (fontified t face font-lock-comment-delimiter-face)
     3 27
     (fontified t face font-lock-comment-face))

따라서 다음과 같이 만들 수 있습니다.

여러 속성에 대한 해당 속성 화 기능을 표시합니다.

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