2014-10-23 9 views
1

괄호가있는 영역을 둘러싸 기위한 내장 된 emacs 함수가 있습니다 (여기서는 https://stackoverflow.com/a/2952021/1635919입니다). 달러 ($)로 지역을 둘러 쌀 유사한 방법이 있습니까?

C-h f insert-pair은이 기능이 sexp를 모든 문자로 둘러싸는 것을 나타냅니다. 따라서 연결된 answer 에서처럼 $로 주변을 $ M-$에 묶는 방법은 무엇입니까?

내 이맥스 : GNU 이맥스 24.3.1 (는 i686-PC-리눅스 GNU, GTK + 버전 3.10.7)

답변

3

당신은 M-이 (삽입 - 괄호 기능을보고 무엇을 복제 할 수는 않는 모든 통화 삽입-쌍이다 하드 코딩 된 매개 변수이므로 다음 함수에 M- $을 동등하게 바인딩 할 수 있습니다.

(defun insert-dolla-dolla-bills-yall (&optional arg) 
     (interactive "P") 
     (insert-pair arg ?\$ ?\$)) 
+0

그래, 그게 다! :)하지만 어떻게 함수 코드를 찾았습니까? [이 팁] (https://www.gnu.org/software/emacs/manual/html_node/eintr/Finding-More.html)을 모두 시도했지만 소스가 포함 된'.el '또는 다른 파일을 찾지 못했습니다. . 'C-h f 인서트 - 괄호'는 어디를 보지 않을지를 알려주지 않습니다. – danek

+0

흥미 롭습니다 - 리눅스 배포판이 기본적으로 elisp 소스를 설치하지 않을 수도 있습니다. 바이트 컴파일 된 버전 만 가능합니다. 당신이 elisp 소스를 가지고 있다면, M-x describe-function을 할 때, 도움말 버퍼는 소스 코드 위치에 대한 링크를 가지고 있는데, 이것은 삽입 쌍을위한 소스를 찾은 곳입니다. 배포판의 패키지 저장소를 검색하여 Emacs elisp 소스 코드 패키지가 있는지 확인할 수 있습니다. – neal

0

관련된 하나의 무리와 함께이 제공하는 툴킷이 있습니다.

가 그것은 여기 오기

ar-dollar-region-atpt를 불렀다 :.

https://launchpad.net/s-x-emacs-werkstatt/

+0

패키지가 예상되는 ** sh-beg-end.el ** 파일에 대해 '평가 중'(thing-at-point-utils 필요) '이맥스에서'로드 할 수 없습니다. 파일 : sh-beg-end '). 내가 [여기] (https://raw.githubusercontent.com/pdee/pdee/master/sh-beg-end.el)에서 sh-beg-end를 다운로드 한 후 모든 것이 잘 작동했다. ar-region-dollar-atpt를 호출하면 고맙습니다. :) – danek

+0

@danek 죄송합니다. 버그입니다. "(~ 필요합니다 ..."라고 주석을 달아도 sh 스크립트 모드의 편집에만 영향을 미칠 수 있습니다. 다음 릴리스의 수정판을 최대한 빨리 업로드합니다 –

+0

@danek 버그가 없어야하는 새 버전 출시 : https : //launchpad.net/sx-emacs-werkstatt/+download –

1

변수 세트,는 (?\$ ?\$)을 포함합니다 :

(add-to-list 'insert-pair-alist (list ?\$ ?\$)) 

그런 다음 당신이 원하는 것을 할, insert-pair에 키를 바인딩 : 라이브러리 yasnippet (https://github.com/capitaomorte/yasnippet)를 사용하는 경우

(global-set-key (kbd "M-$") 'insert-pair) 
+0

시도 :이 두 줄을 * 스크래치 *에 붙여 넣은 다음 'M-x eval-current-buffer'를 실행했습니다.결과 : 'M- $'는 표시된 영역 뒤에 $ 문자 하나만 생성합니다. 내가 뭔가 잘못 했니? – danek

+1

미안하지만, 어떻게 든'? \ $'을 타이프 할 때'? \? '을 타이프했습니다. 위의 수정. – Drew

1

, 그것은 내장 된 포장에 대한 지원 선택한 영역의 양쪽 끝에 맞춤 코드가있는 서라운드 영역 :

참고 : yasnippet의 최신 버전이 기능 이름을 yas/selected-text ~ yas-selected-text. 그러나 역방향 버전 호환 지원 buit-in이있는 것으로 보입니다.

# -*- mode: snippet -*- 
# name: dollar-surround 
# key: dollar-surround 
# binding: C-I $ 
# -- 
$`yas/selected-text`$ 
+0

yasnippet 버전 20141017.736 사용 - 잘라낸 기능이 올바르게 작동합니다. 감사 :) – danek