Вставить вкладку вкладок в Emacs

У меня очень простая вещь, которую я хочу сделать в Emacs. Я хочу установить его так, чтобы, когда я нажимаю клавишу TAB, он вставляет два пробела. Просто это. Это все, что я прошу. Я пробовал делать это уже пару лет, и это просто невозможно. В каждом типе файла он взрывается по-другому. HTML-файл? Случайный выбор между получением четырех пробелов или табулированием до предыдущего отступа строки. Файл Python? Всего четыре пробела, и я проигнорирую любые настройки, которые у вас есть. Он также случайно перестает работать в зависимости от фазы луны, когда он ранее работал.

В моих .emacs:

(setq indent-tabs-mode nil) (setq tab-width 2) 

Это должно работать, не так ли? Нет. Нет, нет. Кажется, у emacs есть волшебный «файловый режим» для каждого расширения, который полностью переопределяет то, что я ему рассказываю. Так я должен найти эту волшебную конфигурацию феи и переопределить ее для каждого типа файла? Что я могу сделать, чтобы заставить эту простую работу работать. Halp.

  • Курсив в Emacs на текстовом терминале (rxvt-unicode)
  • Как сделать переносное приложение для Linux?
  • Сообщение emacsclient отказано
  • Org-mode: Вставка (продвинутых) уравнений LaTeX для HTML expot
  • Linux VT Emacs в tmux, разбивает цвет и курсор
  • Emacs показывает восьмеричные escape-последовательности для некоторых символов в файле UTF-8
  • Получение emacs для конвертирования латекса на лету?
  • Замена Evernote на Emacs и markdown - .org список файлов
  • One Solution collect form web for “Вставить вкладку вкладок в Emacs”

    Каждый язык имеет свое собственное соглашение об отступлении, поэтому не всегда полезно иметь тот же эффект от легкодоступной клавиши Tab все время. Вот почему многие основные режимы ¹ перекрывают привязку ключа.

    Чтобы переопределить настройку для определенного режима, привяжите его в своей раскладке.

     (defun insert-two-spaces (&optional count) (interactive "*p") (insert (make-string (* 2 count) ?\ ))) (add-hook 'python-mode-hook '(local-set-key "\t" 'insert-two-spaces)) 

    Чтобы переопределить настройку повсюду, вы можете определить постоянный второстепенный режим . См. Руководство Elisp для определения второстепенного режима.

     (define-minor-mode magnus-minor-mode "Override the binding of the TAB key." :keymap '(([?\t] . insert-two-spaces)) :global t) (magnus-minor-mode 1) 

    ¹ То, что вы называете «магическим файловым файловым режимом», является основным режимом. Если вам не нравится редактор, который делает все автоматически, я предлагаю nano .

    Interesting Posts
    Linux и Unix - лучшая ОС в мире.