Emacs cc-mode tab поведение

Нажатие вкладки несколько раз не перемещает текст вправо. Есть ли способ заставить его вести себя как интеллектуальный отступ Visual Studio? Отступ первой вкладки, последующие вкладки перемещают текст к следующей позиции табуляции. Спасибо.

2 ответа

Решение

Что-то вроде этого?

(defun even-more-tabby-indent (&optional arg)
  "This indent function tries to be more like Microsoft's IDEs
than `C-INDENT-COMMAND' and does the following: If we're at the
beginning of the line or `C-TAB-ALWAYS-INDENT' is true or `ARG'
is non-nil, indent like a sensible text editor. Otherwise the
user probably WANTS MOAR TABS. So call `C-INSERT-TAB-FUNCTION'."
  (interactive "P")
  (if (or c-tab-always-indent (bolp) arg)
      (c-indent-command arg)
    (funcall c-insert-tab-function)))

Затем вы захотите связать вставку вкладки с чем-то вроде

(defun setup-tabby-indent ()
  (local-set-key (kbd "<tab>") 'even-more-tabby-indent)
  (setq c-tab-always-indent nil))

(add-hook 'c-mode-hook 'setup-tabby-indent)

Я не использовал MS Visual Studio много лет, поэтому я не уверен, что это именно то, что вам нужно, но, надеюсь, это довольно ясно, как изменить.

Mi (tab-to-tab-stop) переносит вас к следующей остановке табуляции.

Другие вопросы по тегам