Я использовал emacs для программирования на c, и теперь, когда я хочу написать некоторый код Assmebly, когда я нажимаю tab, emacs просто вставляет пробелы. Как заставить его идентифицировать текущую строку клавишей Tab?
3 ответа
Используя el-patch
:
(el-patch-defun asm-calculate-indentation ()
(or
;; Flush labels to the left margin.
(and (looking-at "\\(\\sw\\|\\s_\\)+:") 0)
;; Same thing for `;;;' comments.
(and (looking-at "\\s<\\s<\\s<") 0)
(el-patch-remove
;; Simple `;' comments go to the comment-column.
(and (looking-at "\\s<\\(\\S<\\|\\'\\)") comment-column))
;; The rest goes at the first tab stop.
(or (indent-next-tab-stop 0))))
(defun my--indent-asm-setup ()
"Set up indentation variables.
Indent with tabs, and make the TAB key behave like it's supposed
to."
(setq-local indent-tabs-mode t)
(setq-local tab-always-indent (default-value 'tab-always-indent)))
(add-hook 'asm-mode-hook #'my--indent-asm-setup)
Попробуйте газовый режим вместо встроенного asm-режима.
Оставь это так. Большинство редакторов имеют возможность преобразовать табуляцию в пробелы. Почему вы хотите, чтобы редактор преобразовывал вкладки в пробелы? Вы можете взять свой код (либо в виде сохраненного файла, либо скопировать в буфер обмена) и использовать его в любом редакторе, и он будет выглядеть одинаково. Если вы заставите его использовать вкладки и вставите его здесь, или (мы) откроем его в нашем редакторе, это, скорее всего, будет выглядеть как дерьмо, потому что у нас может быть настроена вкладка определенного размера.
Если вы действительно должны использовать вкладки вместо пробелов, просто сделайте нам одолжение и преобразуйте вкладки в пробелы, прежде чем размещать здесь сообщения или передавать их кому-то еще.