Linux — автоформатирование кода C ++

После многих лет использования Visual Studio для программирования на C ++ я только сейчас переключаюсь на Linux для работы. Пока все идет отлично, за одним небольшим исключением — gedit. После написания некоторого кода в простом текстовом редакторе я действительно начинаю скучать по функциям автоматического форматирования, к которым я привык.

Есть ли какой-нибудь «блокнот программиста», который бы помог с автоматическим форматированием на лету, или мне пришлось бы использовать стандартную IDE для этой функции? Большинство разработчиков Linux форматируют свой код вручную с помощью основного текстового редактора?

Я не ищу полноценную IDE, просто что-то, что автоматически форматирует мой код C ++ при вводе.

1

Решение

Существует довольно широкий спектр текстовых редакторов для IDE в Linux. Вот некоторые из них, которые приходят на ум, от большинства «подобных блокнотам» до самых «похожих на VS».

В отделе «текстовый редактор» (имеется в виду отсутствие встроенной компиляции, конфигураций сборки, отладчика и т. Д. Просто редактирование текста / кода):

  • Gedit (самое основное приложение, похожее на блокнот, IMO)
  • Кейт (улучшенный блокнот, но без «команд» и с хорошим автоформатированием и подсветкой)
  • Emacs (расширенный блокнот, с командами и дополнительными параметрами, может быть трудно использовать)
  • VIM (та же категория, что и в emacs, может быть сложно использовать, мне не нравится)
  • Sublime-текст (крутой улучшенный текстовый редактор, много полезных функций, но также немного сложный в освоении)

В отделе IDE (имеется в виду интеграция с некоторыми инструментами сборки, и, как правило, некоторый код завершения и анализ семантики кода (обнаружение переменных, классов и т. Д., Может ссылаться на dox для них)):

  • Geany (облегченная IDE, не намного больше, чем расширенный текстовый редактор с кнопкой «build»)
  • NetBeans (среднего размера IDE, качество так себе, IMO)
  • Затмение (Среднего размера IDE, прост в использовании, т.е. подходит для небольших проектов, например, школьных заданий)
  • Qt Creator (средне-большая IDE, в основном для работы с Qt)
  • Code :: Blocks (Среднего размера IDE, качество так себе, но хорошо, IMO)
  • KDevelop (IDE немного сложнее, но в целом имеет отличные возможности и имеет лучшее завершение кода, которое я когда-либо видел, превосходит Intellisense для C ++ как арендованный мул)

Конечно, это лишь частичный список, включающий только те, с которыми я сталкивался или о которых много слышал. Там, наверное, много других.

Есть ли какой-нибудь «блокнот программиста», который бы помог с автоматическим форматированием на лету, или мне пришлось бы использовать стандартную IDE для этой функции?

Все приложения, которые я перечислил выше в отделе «текстового редактора», поддерживают такую ​​функцию (но я не уверен на 100% в Gedit, потому что она довольно проста, и я не очень часто ее использую, потому что я не не нравится) Единственный основной переход, который вы получаете, когда пишете код из текстового редактора в IDE, — это код завершения / фонового синтаксического анализатора, то есть функции типа «Intellisense», включая документацию всплывающей подсказки о классах или функциях. Вы не можете получить это в текстовом редакторе, потому что он должен был бы знать о вашей конфигурации сборки (например, ваши файлы cmake или эквивалентные), чтобы знать, откуда извлекать заголовки, чтобы иметь возможность «понять» ваш код за пределами тривиальных правил синтаксиса, ключевых слов. и отступ.

Большинство разработчиков Linux форматируют свой код вручную с помощью основного текстового редактора?

Нет. Но это разнообразный мир. Некоторым нравятся базовые текстовые редакторы, где автоматическое отступление — примерно столько же, сколько вы получаете, в то время как другие предпочитают многофункциональные IDE, а затем есть те, кто выбирает свой текстовый редактор по тому, насколько круто выглядят цветовые темы. 😉

И, между прочим, есть также довольно мощные средства форматирования кода командной строки, такие как лязг-формат, который может переформатировать ваш код намного более умным способом, потому что он имеет полноценный внешний интерфейс компилятора C ++, анализирующий ваш код.

1

Другие решения

Насколько я знаю, Gedit есть поддержка автоматического отступа, попробуйте Редактировать -> Настройки -> Редактор и установите флажок «Включить автоматический отступ».

Однако лично я рекомендую вам использовать VIM, профессиональный текстовый редактор, хотя и не для всех. Vim не IDE, просто текстовый редактор, но он очень мощный.

Если напор кажется слишком много на данный момент, я думаю, что Кейт лучше, чем Gedit.

0

По вопросам рекламы [email protected]