Автоматически закрывающие фигурные скобки в Emacs?

Попробуйте использовать:

test -x filename

или

[ -x filename ]

Из справочной страницы bash в разделе Условные выражения :

 -x file
          True if file exists and is executable.

29
задан Community 23 May 2017 в 11:46
поделиться

3 ответа

Также есть 'paredit . В шпаргалке показаны все доступные команды. Мне это нравится больше, чем электрический режим, предложенный в другом ответе. Хотя paredit применяется только к (), поэтому он может не соответствовать вашим потребностям.

Но, честно говоря, есть несколько пакетов, окружающих скобки. В вики они все перечислены здесь . Режимы, в которых рассматривается ваш вопрос:

16
ответ дан 28 November 2019 в 01:48
поделиться

да, этот режим называется электрическим . Вы можете комбинировать электрическое поведение с этим простым макросом для максимального комфорта:

(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!

Другие режимы могут предоставлять нечто подобное.

16
ответ дан 28 November 2019 в 01:48
поделиться

cmarcelo has written a wonderful post about this using skeleton mode. He also shows how to remove the balanced bracket if you delete the opening bracket and how to deal with the case that you accidentally type the closing bracket. (Incidentally both behaviors copy TextMate).

Update:

Since I posted this answer, I've discovered Autopair which is a pretty much perfect system for this use case. I've been using it a lot and loving it.

5
ответ дан 28 November 2019 в 01:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: