Когда я пишу фрагмент кода, затем откройте его визуальной студией или возвышенным текстом 3. Код потеряет исходный формат.
Кроме того, когда я копирую форматирование из других источников и вставляю в emacs, формат будет сломан. То же самое происходит при вставке кода в другие источники из emacs.
Как его решить?код в emacs теряет формат
ответ
Трудно сказать, что происходит окончательно без конкретного примера, но похоже, что в игре может быть несколько факторов.
В этом случае, Emacs - это просто редактор, который манипулирует текстовыми файлами. Что касается исходного кода, который по-разному отображается в буферах по сравнению с другими редакторами и IDE для одного и того же текстового содержимого: это форматирование в основном зависит от файла, контролируемого основным и одним или несколькими второстепенными режимами.
Вы можете просмотреть текущие режимы, введя C-h m
. В этих режимах есть переменные, которые вы можете настроить, в качестве одного из которых можно указать уровни отступов. Возможно, ваши настройки конфигурации не совпадают с настройками других редакторов.
Если это так, когда вы вводите, скажем, новую строку, Emacs может менять пробелы вложения блоков кода на лету. Это было бы более выраженным, если бы ваши Emacs могли конвертировать пробелы в вкладки или наоборот. Вы можете избавиться от вкладок с помощью (setq-default indent-tabs-mode nil)
, что должно помочь с interop, поскольку большинство редакторов обычно конвертируют вкладки в пробелы.
Недостаточно информации, чтобы понять, что вы подразумеваете под «теряет формат», но вероятным подозреваемым являются символы табуляции. Убедитесь, что у вас есть соответствующие определения символов табуляции на исходной и целевой стороне - сохраняются ли символы табуляции, а если нет, сколько пробелов заменяет символ табуляции. –
Что сказал @YuriSteinschreiber. И покажите или опишите, что вы подразумеваете под сломанным форматом, в обоих направлениях. Предоставьте пошаговый рецепт для воспроизведения эффекта, начиная с 'emacs -Q' (нет файла инициализации). – Drew