untabify на сохранении в Emacs 24 без make-local-hook

Вот немного отличающийся путь, который работает:

setup_ssh() {
  cat ~/.ssh/id_rsa.pub | ssh $1 '
    mkdir .ssh;
    cat >> .ssh/authorized_keys;
    chmod go-w .;
    chmod 700 .ssh;
    chmod 600 .ssh/authorized_keys
  '
}

Вы могли также избавиться от cat и имейте канал оболочки в своем id_rsa.pub файле, но я думаю, что этого достаточно для получения Вас движение.

Править:
Путем это работает
Вы являетесь в основном начинающими новая оболочка на удаленном хосте для выполнения команд, которым Вы передали ssh (в кавычках). Когда это добирается до cat >> .ssh/authorized_keys часть, ничто еще не читало из STDIN, таким образом, данные из cat ~/.ssh/id_rsa.pub все еще находится там. cat считывает данные с STDIN, и затем мы перенаправляем это в новый authorized_keys файл. Затем мы выполняем остающиеся команды.

2
20.01.2013, 06:51
1 ответ

Emacs 24 использует LOCAL параметр add-hook вместо make-local-hook. (Я полагаю, что это было добавлено в Emacs 21.1, но make-local-hook не был удален до Emacs 24.)

Попробуйте это:

(add-hook 'emacs-lisp-mode-hook
    '(lambda ()
       (add-hook 'write-contents-hooks 'untab-all nil t) ))

Ваша другая проблема - это untab-all должен возвратиться nil указать, что это не записало буфер в диск (как объяснено в документах для write-contents-hooks, или поскольку это теперь называют, write-contents-functions):

(defun untab-all ()
  (unless (and (stringp mode-name)
               (string= mode-name "GNUmakefile") )
    (untabify (point-min) (point-max)) )
  nil) ; did not write buffer to disk
2
27.01.2020, 22:14
  • 1
    Это - первая вещь, которую я попробовал, и я говорю так выше.Это не работает: Когда я сохраняю, это застревает, сохраняя. Если бы можно решить это, это был бы спаситель! –  Emanuel Berg 20.01.2013, 01:10
  • 2
    , который Поэтому Вы не должны только говорить, что "он не работает", но вместо этого объясняет, что произошло и что Вы ожидали происходить. Вы спрашивали о make-local-hook, но Ваша настоящая проблема не имела никакого отношения к этому. –  cjm 20.01.2013, 01:29
  • 3
    1. Заголовок читает "untabify на сохранении в Emacs 24 без make-local-hook" - разве не ясно, что я ищу? 2. Я "просто не сказал, что 'это не работает'" 3. В то время как могла бы быть "другая проблема", эта другая проблема связана, поскольку она хорошо работала, пока я не обновил Emacs. –  Emanuel Berg 20.01.2013, 01:35

Теги

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