Затмение С ++ симпатичная печать? - PullRequest
3 голосов
/ 29 сентября 2008

Вывод, который мы получаем при печати источников C ++ из Eclipse, довольно уродлив.

Есть ли способ / плагин для красивой печати исходного кода C ++, например, с a2ps (который, вероятно, использует еще один фильтр для исходного кода C)?

Ответы [ 3 ]

2 голосов
/ 29 сентября 2008

Я также использую enscript для этого. Вот псевдоним, который я часто использую:

alias cpp2ps='enscript --color --pretty-print=cpp --language=PostScript'

и я использую это так:

cpp2ps -P main.ps main.cpp

В enscript есть несколько других замечательных опций, включая вращение, вывод в 2 столбца, номера строк, верхние и нижние колонтитулы и т. Д. Проверьте справочную страницу enscript .

Кроме того, на Mac XCode очень хорошо печатает код C ++.

2 голосов
/ 29 сентября 2008

См. Статью DDJ , в которой enscript используется в качестве симпатичного механизма печати. ​​

0 голосов
/ 11 января 2013

Я хотел бы расширить ответ Windows 7, потому что некоторые ключевые шаги опущены:

Это для пользователей MinGW с Eclipse CDT

0) Если у вас нет Python GDB, откройте оболочку / команду и используйте MinGW-get.exe для «установки» GDB с поддержкой Python, например

   MinGw-get.exe install gdb-python

1a) Получите Python 2.7.x из http://python.org/download/ и установите

1b) Убедитесь, что PYTHONPATH и PYTHONHOME установлены в вашей среде:

 PYTHONPATH should be C:\Python27\Lib   (or similar)
 PYTHONHOME should be C:\Python27

1c) Добавьте PYTHONHOME в свой PATH

 %PYTHONHOME%;...

2a) Откройте текстовый ввод, введите следующие инструкции. Обратите внимание, что 3-я строка указывая на то, где находятся скрипты Python. См. Примечания ниже об этом!

python
import sys
sys.path.insert(0, 'C:/MinGW/share/gcc-4.6.1/python')         
from libstdcxx.v6.printers import register_libstdcxx_printers
register_libstdcxx_printers (None)
end

2b) Сохранить как «.gdbinit» ПРИМЕЧАНИЕ. Проводник Windows не позволит вам назвать файл, который начинается с с периодом от исследователя. Большинство текстовых правок (включая Блокнот) позволит вам. GDB init файлы похожи на «сценарии» команд GDB, которые GBD будет выполнять при загрузке.

2c) Файл '.gdbinit' должен находиться в рабочем каталоге GDB (скорее всего, это корневая директория ваших проектов, но ваша IDE может сказать вам.

3) Откройте диалоговое окно настроек Eclipse (или другой IDE). Перейдите в подменю C ++ Debugger.

4) Настройте Eclipse для использования C:\MinGW\bin\gdb-python27.exe в качестве отладчика, а .gdbinit в качестве файла конфигурации.

5a) Повторно создайте все свои конфигурации запуска отладки (удалите старую и создайте новую с нуля).

--OR--

5b) Отредактируйте каждую конфигурацию отладки и укажите ее на новый gdb-python.exe И укажите на.

Если у вас возникнут проблемы:

- Не забудьте изменить местоположение на каталог python в приведенном выше коде python! Этот каталог создан MinGW, так что не пытайтесь скачать красивые принтеры, MinGW сделал это для вас на нулевом этапе. Просто зайдите в директорию установки MinGW, в общую папку, папка GCC (имеет номер версии), и вы найдете папку Python. Это то, что должен быть в скрипте Python, загруженном GDB.

- Также .gdbinit - это PITA, убедитесь, что он правильно назван и находится в рабочей папке GDB. что не обязательно, где находится gdb-python.exe! Посмотрите на ваш вывод GDB при загрузке GDB, чтобы увидеть, появляется ли a) «python-enabled» во время загрузки и появляются ли операторы в .gdbinit.

- Наконец, у меня было много проблем с системными переменными. Если python дает вам «ImportError», то, скорее всего, вы не установили PYTHONPATH или PYTHONHOME.

- Каталог с 'gdb-python27' (например, C: \ MinGW \ bin ') также должен находиться на вашем пути, и если это так, настройка затмения становится немного приятнее, потому что вам не нужно помещать в абсолютных путях. Но все же иногда .gbdinit нужен абсолютный путь. если это работает, вы увидите вывод из gbd (console-> gdb traces), как это при запуске отладчика:

835,059 4^done
835,059 (gdb) 
835,059 5-enable-pretty-printing
835,069 5^done
....
835,129 12^done
835,129 (gdb) 
835,129 13source C:\MinGW\bin\.gdbinit
835,139 &"source C:\\MinGW\\bin\\.gdbinit\n"
835,142 13^done
835,142 (gdb) 
...