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

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

В моих .emacs:

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

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

  • emacsclient -t висит
  • Некоторые клавиши недействительны на emacs при использовании немецкой клавиатуры
  • В Gnu Emacs как настроить глобальный ключ для переключения панели меню?
  • Есть ли удобный общий способ «захватить» эхо-результат команды в Emacs (из M-: или M-!)?
  • Проблема с мета-ключом на Emacs
  • Emacs Mx query-replace обертывает документ?
  • Как использовать один и тот же демон emacs для пользовательских и корневых учетных записей?
  • Emacs не будет прокручивать колесико мыши на Ubuntu 15.10 с Cinnamon
  • 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

    Получение 2 мониторов для работы в Debian

    Тип файловой системы и параметры монтирования для Archlinux на накопителе SSD NVMe

    Как узнать, сколько процессов переключается в контекст?

    Как копать найти мой WAN-IP-адрес? Что такое «myip.opendns.com»?

    Как запустить мою собственную программу без указания ее пути

    Установка MTP для Android в Linux Mint 17.1

    Файл ISO только для чтения?

    Split Terminator с внешней командой?

    Нет встроенного звука на Dell Optiplex SX-280 после установки Linux Mint Petra

    Почему uniq может игнорировать ведущие символы, но не заканчивать символы?

    Centos 6.3 принудительно вводит пароль при нажатии кнопки nm-applet tray?

    Связывание двух широкополосных соединений для обслуживания LAN в качестве шлюза

    Как принудительно удалить все разделы и удалить диск из терминала?

    Создание пользователя linux с ограниченными привилегиями для ssh-туннелирования

    имя сетевого устройства само по себе

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