문제

VIM 호출 플러그인을 보았습니다 autoclose (발견 된 이것 Post) 입력 할 때 닫는 브레이스를 자동으로 추가합니다. '(', '{'등.

예를 들어; 다음을 입력 할 때 ( | 커서입니다) :

int main(|

마감을 원합니다 ) 나를 위해 자동으로 삽입하려면 :

int main(|)

누구든지 EMACS와 비슷한 기능을 알고 있습니까? Google은 이번에 저를 실패했습니다!

도움이 되었습니까?

해결책

또한 있습니다 'paredit. 그만큼 컨닝 지 사용 가능한 모든 명령을 보여줍니다. 다른 답변에서 제안 된 전기 모드보다 더 좋아합니다. 페더 디지는 ()에만 적용되지만, 당신의 요구를 저를 나에게 적용 할 수는 없습니다.

그러나 솔직히 말해서 괄호 주변의 패키지가 많이 있습니다. 위키에는 그들 모두가 있습니다 여기에 나열되어 있습니다. 귀하의 질문을 다루는 모드는 다음과 같습니다.

다른 팁

예, 이 모드를 전기라고합니다. 이 간단한 매크로와 전기 거동을 결합하여 최대의 모습을 제공 할 수 있습니다.

(defun electric-pair ()
  "If at end of line, insert character pair without surrounding spaces.
   Otherwise, just insert the typed character."
  (interactive)
  (if (eolp) (let (parens-require-spaces) (insert-pair)) 
    (self-insert-command 1)))

그런 다음 좋아하는 프로그래밍 모드에서 적절한 문자를 바인딩하여 활성화하십시오. 예를 들어, PythonMode의 경우 :

(add-hook 'python-mode-hook
          (lambda ()
            (define-key python-mode-map "\"" 'electric-pair)
            (define-key python-mode-map "\'" 'electric-pair)
            (define-key python-mode-map "(" 'electric-pair)
            (define-key python-mode-map "[" 'electric-pair)
            (define-key python-mode-map "{" 'electric-pair)))

CPERL 모드는 이것을 내장으로 제공합니다.

;; from my .emacs
(add-hook 'cperl-mode-hook
  (lambda ()
    (setq cperl-hairy nil
      abbrev-mode t     ;; automatic keyword expansion
      cperl-highlight-variables-indiscriminately t
      cperl-auto-newline t
      cperl-auto-newline-after-colon t
      cperl-regexp-scan nil
      cperl-electric-keywords t 
      cperl-electric-linefeed t  
      cperl-electric-parens nil) ;; <------ electric parens!

다른 모드는 비슷한 것을 제공 할 수 있습니다.

CMARCELO가 있습니다 이것에 대한 멋진 게시물을 썼습니다 골격 모드 사용. 또한 오프닝 브래킷을 삭제하면 균형 잡힌 브래킷을 제거하는 방법과 실수로 닫는 브래킷을 입력하는 경우를 처리하는 방법을 보여줍니다. (우연히 두 행동은 텍스트 메이트를 복사합니다).

업데이트:

이 답변을 게시 한 이후로 발견했습니다 autopair 이 사용 사례에 대한 완벽한 시스템입니다. 나는 그것을 많이 사용하고 그것을 좋아했습니다.

나는이 스레드를 Necro하고 다른 대안을 제공 할 것입니다. 최근에 시작된 새로운 프로젝트가 있습니다. 쌍의 자동 변환, 지역 포장, 균형 잡힌 표현을 중심으로 내비게이션 등을 다루는 새로운 프로젝트가 있습니다. 기능 목록이 여기에 제공하기에는 너무 길어서 SmartParens Github Repo 자세한 readme를 읽을 수있는 곳.

그것은 앞서 언급 한 AutoPAir의 대체 세트이며, Paredit의 대부분의 핵심 특징을 제공합니다 (및 EMACS Syntax-Tables에 의해 인식 된 것뿐만 아니라 모든 종류의 다른 쌍으로 확장).

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top