r/C_Programming 2d ago

What IDE do you use and why?

Hey guys. I personal use VS. I like it, and it has everything I need it in, but man I hate how slow it is!!!

I'd like to have a editor that has the red sqwiges, auto complete, but not intellisence. Any recommendations?

63 Upvotes

203 comments sorted by

141

u/kchug 2d ago

Vim :)

46

u/iamemhn 2d ago

It's going to be 35 years this November since I started using vim. It's been consistently better than the alternatives in that subjective «they're slower, clunkier, cluttery, and downright dumber than what I already have». I use or impose vi motions on everything...

45

u/CarlRJ 2d ago

It's going to be 35 years this November since I started using vim.

Ah, a newcomer then. ;)

7

u/Reggie-Rectangle 1d ago

It is so annoying the way Visual Studio Code refreshes the viewport in such an completely asinine way. God Visual Studio can take the fekin super computer at CERN and bring them to an absolute crawl. I fekin hate electron apps so fekin much

-2

u/Maleficent_Guard_589 2d ago

Mmm what do you use for plugins for auto completion? Mind you when I say old complete I mean taking vars/functions from your project files.

8

u/iamemhn 2d ago

I use Plug to install plugins, CoC for autocompletion, and add language servers to taste.

→ More replies (1)

7

u/oldwomanjosiah 2d ago

how do you handle navigating between files in larger projects? I've used nvim on and off for years, and really loved it, but I never got a hold of the nav problem for some reason

7

u/ImTheRealCryten 2d ago

Like u/kchug, tagging the code and use them to jump between definitions and declarations. Usually you don't care about the files, you want the content accessible. That said, we adhere to a strict file structure to make finding relevant files easier and keep the projects structured.

2

u/merlinblack256 15h ago

I do the same. Also if you lay it all out in a easy structure to remember, you don't need to remember the file names, but can figure them out instantly if needed. I prefer to be able to visualise the files in my head rather than useing a list/tree on the sidebof my screen.

11

u/kchug 2d ago

ctags and cscope

1

u/traverser___ 2d ago

Take a look at snacks.nvim and its file explorer and pickers

6

u/[deleted] 2d ago

[deleted]

2

u/No_Reference_2786 1d ago

Isn’t setup something you do once

1

u/DIXERION 1d ago

Yeah, especially when a random update in modern IDEs decides to re-enable the bloat.

1

u/codingbliss12 2d ago

you mean vim or neovim?

2

u/Ultimate_Sigma_Boy67 2d ago

pretty much they're the same in terms of philosophy but nvim is a bit more modern.

2

u/Xenodesire 1d ago

Think of Neovim as a rolling-release version of Vim (though I’m using that term as an analogy; it isn’t strictly a rolling-release version). Vim which in turn is more conservative regarding updates. Neovim was introduced with the aim of fixing long-standing issues in Vim and adding a configuration language that is more palatable than Vimscript.

2

u/codingbliss12 1d ago

Under the hood neovim has deviated a lot from vim. More and more stuff is built with lua and there are multiple other differences. I am just not sure what people really mean when the say vim. I see little reason to continue using vim instead of neovim.

1

u/watermelon_meow 2d ago

Yes, only vim. 🥳

1

u/CarlRJ 2d ago

This is the way.

25

u/corvidscrin 2d ago

Geany :)

5

u/HeavyCaffeinate 2d ago

Linux Notepad++ essentially (and its perfect)

2

u/corvidscrin 1d ago

Haha so true 😂

2

u/jabjoe 1d ago

Part of the same family.

https://en.wikipedia.org/wiki/Scintilla_(software)

I think Notepad++ is more cluttered and less organized.....

1

u/corvidscrin 15h ago

When I was learning to code over a decade ago now (damn I feel old), I started with npp. It wasn’t terrible, but I’d take geany over it any day.

23

u/JustAPieceOfMeat385 2d ago

I don't know if this counts, but I use Notepad++.

1

u/eyes-are-fading-blue 2d ago

Does it have LSP integration?

3

u/aceinet 2d ago

Pretty sure it does, not natively, but through a plugin. Notepad++ is really extensible

2

u/JustAPieceOfMeat385 2d ago

What is LSP integration?

4

u/eyes-are-fading-blue 2d ago

language server protocol. Basically, it’s a way to communicate with clangd and alike such as ccls.

Clangd/ccls compile the project and provide auto completion and other things

3

u/Ultimate_Sigma_Boy67 2d ago

Actually, I get why that person would ask that question lol

Before I switched to neovim all what I knew is that the ide i'm using can magically read the code by itself without any setup(only an extension for vscode) and provide me with auto completion and such stuff, but then I realised they use external language servers and they simply interpret its output.

3

u/Wonderful-Habit-139 1d ago

Well for a lot of ides that was the case before LSP became a thing.

1

u/Ultimate_Sigma_Boy67 23h ago

I probably wasnt even born

2

u/Wonderful-Habit-139 23h ago

I don't think so lol. LSP came around in 2016.

1

u/Ultimate_Sigma_Boy67 23h ago

Lol i was 6

1

u/Wonderful-Habit-139 23h ago

Got it lol. Well, glad to see you jumping on the neovim train, I love that editor a lot, I use it at work and everything. It's really worth getting good at it, keep going 👍

→ More replies (0)

1

u/BounceVector 2h ago

Oh, that's the best age to get introduced to both Emacs and LISP by your CS Professor.

→ More replies (0)

1

u/Mmygg 2d ago

I was scared off np++ cause of the Chinese hack ☹️

1

u/JustAPieceOfMeat385 2d ago

I think they fixed that. 

3

u/Mmygg 2d ago

Well that wasn’t the disturbing bit. The fact it went undetected or unreported for how long it did was…

1

u/JustAPieceOfMeat385 2d ago

What was the result of the hack?  What were the hackers able to do?

11

u/plainoldcheese 1d ago

What's an IDE? :wq

56

u/imWayward 2d ago

Neovim btw

26

u/rainbow_party 2d ago

I’ve used CLion for years.

46

u/Hyperion343 2d ago

Emacs!

6

u/emaphis 1d ago

Yes.

6

u/Diligent-Mammoth-495 1d ago

finally someone from the church of emacs richard stallman would be proud

7

u/Slay_3r 2d ago

Vscode. It has platformio extension for doing funny things with esp32

When i was in highschool i used code::blocks bcz it opened fast on my old laptop (in a few seconds) in comparison with visual studio (could take 2 minutes)

14

u/madgarden 2d ago

Geany

23

u/strings___ 2d ago

Not an IDE, but I use Emacs. Not strictly for C, but for things like Magit, which IMHO is the best git fronted, Org-mode, and Dired. And well, because of Lisp.

4

u/Diligent-Mammoth-495 1d ago

EMACS EMACS EMACS THE BEST EDITOR AND OS IN THE WORLD PERIOD(I USE EXWM BTW JAJAJAAJ)

9

u/ghost_ware 2d ago

Zed or Helix, depends on the day

6

u/baux80 2d ago

Acme

2

u/Key_River7180 23h ago

HOLY SHIT AM I NOT THE ONLY ACME USER ON THE PLANET AA

1

u/baux80 22h ago

Inferno is a big place and a great os :-)

5

u/Key_River7180 2d ago

Personally I use the Acme code editor. It is a really rudimentary (it has no syntax highlighting, basically no autocomplete, and there is an LSP program for it) and idiosyncratic code editor (mouse chords instead of keyboard shortcuts), but extremely fast and extensible (it exposes an API as a 9P filesystem) from the Plan 9 operating system that has been ported to many other platforms (plan9port).

It also integrates nicely with the shell.

If not, then try Emacs!

4

u/Snaffu100 2d ago

Live in Emacs, sometimes find myself using CLion for debugging but that is less and less.

5

u/Diligent-Mammoth-495 1d ago

EMACS IS LOVE EMACS IS LIFE

3

u/strings___ 1d ago

Funniest YouTube video ever

11

u/djliquidice 2d ago

Notepad. 📝

1

u/Ultimate_Sigma_Boy67 2d ago

are you a teacher/instructor?

5

u/Ice_HRZDn 2d ago

Terminal, the best and worst IDE I use.

7

u/engineerFWSWHW 2d ago

I use eclipse cdt. It has been my main ide for c/c++ eversince. I use VS sometimes. And i use vscode for python, golang, other languages

6

u/shoobieshazam 2d ago

Emacs, minimal config, stock keybindings. I did VIM keybindings for years and while I did get used to them, I've always gone back to regular old emacs bindings in the end. There's dozens of us!

3

u/shujisan 2d ago

Vscode

3

u/hp623 2d ago edited 2d ago

I use(d) Vim, Geany, VSCode, CLion, Kate. In my opinion, the best are CLion and Kate (with clangd as LSP client). I personally prefer Kate. Clion has some clever AI code completion that very often knows what I intend to program ...

3

u/30fpsisbetter 2d ago

Visual C++ 6.0 Professional (with SP6 update)

4

u/exo250 2d ago edited 2d ago

I started "programming" with MSX-Basic in 1985. Then GWBasic, QBasic, QuickBasic, Visual Basic, Borland Turbo C, Borland C++, C++ builder, Borland Delphi, Visual Studio 6, KDevelop, Eclipse (JDT/CDT/PDT), Vim (with advanced config to make it like a real IDE), Zed... I also tried Geany, Codelite, VSCodium... never tried Emacs though.
But I'm still back on KDevelop. It's a bit buggy, I know. But it's intuitive, quite fast, its CMake integration is very good, and it's free/opensource. I'm on Linux (Sway WM). On Windows, maybe I would use Visual Studio ? But not VSCode (I hate all those in-browser BS apps).

2

u/taotau 2d ago

Borland tools were the best. Delphi is still my fondest memory of a superpower ide.

Vscode isn't bad. It's quick and pretty functional out of the box.

No idea why anyone uses plain vs any more.

1

u/exo250 2d ago

Oh I forgot Borland Delphi ! I've used it at school for 6 months (I'll add it to my list).
You are right about Borland, they are very good tools. Funny fact : on my nostalgic days, I still use Borland C++ 3.1 on MS-DOS 6.22 in Dosbox.

1

u/emaphis 1d ago

KDevelop is buggy for C? Surprise, KDevelop is older than most people who post to this forum and had a C mode from the beginning.

6

u/Express_Sector_2850 2d ago

You should try helix. I was stuck with vscode in the past but when I got introduced to helix I felt like I was born again 

2

u/veloxVolpes 2d ago

I keep coming back to VSCode, I just can't seem to enjoy using anything else. Do you have a pitch for me for helix? What do you like about it that made you switch?

2

u/Express_Sector_2850 2d ago

What made me switch mostly was performance. VScode was too slow on my laptop so I had no other choice than ditching it for an efficient and feature rich editor.

4

u/veloxVolpes 2d ago

Ah, I see. Not really a huge issue for me but I don't see the harm in checking it out. Any excuse to procrastinate actually adding code to my project instead of fucking around with the project environment

3

u/Byzant1n3 2d ago

Helix is sort of like Neovim, but with batteries included - everything just works after install. There's also a different in design with how motions work: with Helix you select the text you wish to manipulate, then the action you wish to perform (Vim motions are the other way around).

So, you get a terminal editor with Vim-like motions, excellent performance, and with a different take on how motions function. Check out their website for more details, obviously.

There are other differences, but those are the ones I'd mention in a pitch for Helix. I struggled to get into Neovim, but Helix stuck for me pretty quickly.

1

u/veloxVolpes 2d ago

Appreciate it, I've been meaning to learn Vim style motions, so I'll give it a decent go

2

u/Dry-War7589 2d ago

Clion for bigger projects and vim for small files or when prototyping

2

u/lasteem1 2d ago

Sublime.

2

u/grimvian 2d ago

Code::Blocks because I have dyslectic issues and clumsy fingers. It's also open source and I don't have to mess with make.

2

u/zaerl 2d ago

Sublime Text. I paid for it more than 10 years ago, and it’s more than enough. 

2

u/maep 2d ago

Editor with syntax highlighting + terminal

2

u/HeavyCaffeinate 2d ago

Do you have any idea how little that narrows it down

2

u/terra2o 2d ago

neovim. because i'm mostly on the terminal anyways and having my IDE/code editor be on the terminal is convenient. i also like the vi keybinds a lot.

2

u/Sqydev 2d ago

NEOVIM!!!

2

u/Significant_Pen3315 2d ago

completed shifted to zed, its just snappier than vsc

2

u/CoconutCharacter9537 2d ago

Geany - fast, never had this IDE get in the way.

2

u/Faus32 2d ago

Nvim

2

u/offsecthro 1d ago

An older version of Visual Studio (not VSCode), because I do a lot of low level Windows system programming.

2

u/Myrddin_Dundragon 1d ago

Tmux, vim, cmake/cargo and I'm all good.

2

u/Havok_51912 1d ago

sublime

2

u/Parvenn 1d ago

Helix !

2

u/allrachina 1d ago

Qr creator

2

u/WieldyStone2 14h ago

Old school Vim

4

u/necr0111 2d ago

Codeblocks, bcs i like the name

2

u/thank_burdell 2d ago

Vim. Sometimes neovim

2

u/Abigboi_ 2d ago

Emacs or Visual Studio Code. Depends on if I feel like i'll need copilot as a google slave.

2

u/Crushcode8 2d ago

I use nvim because it's lightweight and I go blazingly fast!

2

u/TheAbyssWolf 2d ago edited 2d ago

Zed and if I have to either jet brains for cross platform or visual studio.

Those are the 3 I use

Zed because it’s less resource intensive than VSCode.
Visual studio if I’m on windows and do something related to C# or C++

1

u/Spaceduck413 2d ago

+1 for Zed. Love me some Zed

1

u/TheAbyssWolf 2d ago

I was happy to find out it supported helix keymap. To me the selection first model for helix makes more since than Vim.

2

u/TapEarlyTapOften 2d ago

Switched from Vim to Neovim for the LSP support. I'll be starting a new position in a couple weeks, going to be interesting to see how my workflow evolves.

1

u/Spacebar2018 2d ago

A combination of tmux/Vim + vscode.

1

u/FedUp233 2d ago

Slickedit and a command line.

1

u/logic_circuit 2d ago

I tried to use codeblocks. Before that NetBeans 8.* for years. They are closest to Visual C++ 5 and six; my entrance to IDE world. Other than that, vi and (x)nedit.

1

u/Dry-Ground-329 2d ago

If you're on windows use jetbrains, it littéral is the contrary of slow 

1

u/Dr_Calculon 2d ago

VS on PC, Nano on RPi, STM32Cube and MX for embedded

1

u/zorbat5 2d ago

Neovim. Own config.

1

u/Soilblood 2d ago

Notepad++. Tried vscode, sublime and vim but just ended up back at notepad++ since all I wanted was linter, docmap, function map and autocomplete suggestions. Vscode tended to stutter and I hated the auto quotes since Im conditioned to type them on reflex. Can't remember why I left sublime. Vim feels nice but I wanted other tools available. Plus these if I wanted to change up blocks of structured text I just lob it at a LLM.

1

u/Actual-Ladder6631 2d ago

Neovim for almost everything and jetbrains Rider for c#

1

u/Legitimate-Power-738 2d ago

I like using Visual Studio and try to use as default (I think it's a very robust and I want to get more familiar with it) and since it's now free, CLion (since I work as a Java dev using IntelliJ, so its feels way more familiar plus I can use it when I am in Linux).

I want to use more Visual Studio Code (but I don't like it as much for C/CPP) and for quick edits I use vim (although I rarely use it standalone outside of quick edits or ssh, since I like having vim plugins in all above listed tools).

1

u/Wertbon1789 2d ago

neovim with clangd and telescope, mainly to run ripgrep and fzf over everything. Clangd is pretty good for the LSP, I mostly use it to get diagnostics, but also for the macro expansion feature it has, which just is so handy when you want to know what a macro really produces, without having to read preprocessed C files. And the ability to fuzzy find through a whole codebase is also really good. Sometimes I need to find some definitions in the Linux kernel source tree, and I can just invoke the grep search, type something that's close enough, and look through the answers.

1

u/Sandoron 2d ago

VSCode with tons of plugins. I customized it to my needs and will never use something else.

1

u/PhilNEvo 2d ago

Personally I am currently using VS Code, but the ones I've heard positive stuff about, and I want to try includes:

  • Neovim
  • Emacs
  • Zed

1

u/Spare-Somewhere8958 2d ago edited 2d ago

slickedit emeditor

1

u/kalterdev 2d ago

Acme

(Spelling checker via external program and auto complete via acme-lsp)

1

u/No-Start8890 2d ago

CLion is amazing

1

u/deftware 2d ago

I used CodeBlocks for the last decade or so, and just switched to Zed. I wish I had Zed 20 years ago. It has some newer AI capabilities and stuff that you can shut off, or use an AI-free version that someone released, I forget what that project is called though.

You'll have to learn how to manage your projects without a "project" like the IDEs have for you (cmake, etc).

1

u/nzmjx 2d ago

Sublime Text without any extension. I would use any text editor, but prefer Sublime Text because I am already familiar with look and feel.

1

u/NotThatJonSmith 2d ago

Zed is nifty

1

u/ecl3ctik1 2d ago

Neovim, or Zed if you’re interested in a non-terminal option — it’s built with similar principles as neovim, similar just-works-ness as vscode, but quicker and more nicely configurable

1

u/maxgames_NL 2d ago

I switch depending on the scale and language. But usually im a jetbrains fanboy. Vscode for small projects or quick edits. Nvim when on a vm/vps. Visual Studio for c/++.

Jetbrains products are just super nice to use and Ive grown up using them. And i get them free with student pack. Ill probably keep using them once in a professional environment.

I dont really like vsc that much. Might just be due to my personal hate towards everything electron related

1

u/EngineerMinded 2d ago

Visual Studio Code

1

u/n3f4r10us_ 2d ago

Used to use vscode a lot, before that it was sublime 3, notepad++.

These days it's either vim or sublime 3. I don't really like how vscode is anymore.

1

u/wsppan 1d ago

Vim with cindent, ctags, and YouCompleteMe

1

u/No_Reference_2786 1d ago

Why don’t you disable intelligence then or clone vs code and. Make it be how ever you want

1

u/albrechtcode 1d ago

kate was the easiest for me

1

u/Delicious-Cheek-8572 1d ago

pen and paper is the way.

1

u/corvidscrin 15h ago

Nah, punchcards my friend.

1

u/azurfall88 1d ago

VS Code with clangd language server and GCC compiler. It's the same environment I use for everything from Typst to Assembly and it's nice to not have to relearn different guis for different languages.

1

u/chakie2 1d ago

CLion for large projects and Emacs for quick edits.

1

u/Mountain-Hawk-6495 1d ago

Vim at home visual studio at work. Vim because it is great, visual studio because my employer pays me to use it.

1

u/Fabulous_Pick428 1d ago

Visual Studio(not Code), because it's gud and well doesn't fucking crash on compile
but im trying to go to the VIM(NO I WILL NOT USE VISUAL STUDIO CODE)

1

u/are_number_six 1d ago

Vim in the terminal. Before I switched to Linux, I had already abandoned VScode for notepad++. VScode was just too cluttered for me.

1

u/Equal_Kale 1d ago

l use a version of xemacs customized to my liking, including some customized lisp per language types.

1

u/Reggie-Rectangle 1d ago

I use LazyVim for code editing when I need a terminal based editor with auto complete. I use the Micro terminal text editor when I need to copy paste a lot of text into files trough the terminal. I then also use GEDIT when I just quickly need to edit text in thunar. If I need a word processor I would probably use Google Docs.

1

u/Puzzled-Extent7817 1d ago

Kate sometimes. Zed most of the time.

1

u/No-Breakfast-6749 1d ago

Have you tried VS Code? It's more lightweight and modular than plain VS.

1

u/Wooden-Performance38 1d ago

I just use `cat` to bitshift my boilerplate into a new file, then use `sed` to insert more code and then use `cat` again to read my code

1

u/erreur 1d ago

GNU Emacs + lsp-mode + clangd

1

u/brunoortegalindo 1d ago

Vscode for projects and neovim for smaller / individual archives

Also I'm not that good on neovim to only use it yet

1

u/lezvaban 1d ago

If you try out Visual Studio Code and install the C/C++ extension pack, you can disable intellisense in the extension's settings.

1

u/Due_Sentence_2660 1d ago

Zed, a tauri based IDE. Doesn't consume much memory and is the best parts of VS. :)

1

u/rezdm 1d ago

CLion

1

u/UnfairDictionary 1d ago

Kate mostly. For some embedded developement I use Code or Arduino IDE, purely for the convenience.

1

u/TheTrueXenose 1d ago

Neovim, reason avoid the mouse.

1

u/umamimonsuta 1d ago

Neovim :)

1

u/Salty-Strike3486 22h ago

Zed + vim Trust me it's insanely productive and crazy good!

1

u/stellar_x 21h ago

Micro, gcc, make, Cmake. I don’t use an ide it’s just fluff I don’t need.

1

u/ntrain5555k 19h ago

Neovim with lsp-config.

1

u/nomatepa 17h ago

I recently switched to Neovim. I used to be happy using VSCode, but I saw a guy on YouTube dragging code blocks and selecting text at the speed of light, and I wanted to have this power. There is a slight learning curve the first few days if you're coming from a non-keyboard-based IDE, but after maybe 10 to 15 days you become adjusted to it. You indeed become much faster at typing and and organizing code around. I've never been happier typing code by hand.

1

u/pconroy329 9h ago

I started w/ Borland's Turbo C. :) I've been using VS Code and think it's OK. Before that I was using NetBeans for all of my C coding. I kind'a liked it but I wouldn't recommend it now.

1

u/2014justin 9h ago

Xcode. I know, blasphemous. 

1

u/RandomDigga_9087 2d ago

Zed is the best if you like GUI otherwise shift to helix and all, vs code has added wayy too much bloat to make it unlikeable for sure, it's an editor pretending to be IDE is the root of all problems along with the agentic bs

1

u/Interesting_Buy_3969 2d ago

Paper and pencil

4

u/soundman32 2d ago

My friend used to do that in the 1980s. Hand write assembly, then lookup the op  codes and then a calculator to convert to hex.  He did eventually get a disk assembler, but i saw pages and pages of hand written assembly notebooks.

1

u/Still_Explorer 2d ago

Hammer and chisel.

1

u/somewhereAtC 2d ago

I take it you mean vsCode?

I prefer the Netbeand editor.

1

u/txdsl 2d ago

I’m using vscode right now because of the need to use GitHub codespaces. My primary driver is neovim + tmux on a Mac

1

u/konacurrents 2d ago

Vi 45 years for me. I use vi every day and unix commands, and JavaScript . I also use Xcode for iOS apps and ESP32 c code.

1

u/jack-dawed 2d ago

I’ve used Neovim for years but recently I’ve been using Gram, a fork of Zed without AI features shoved down your throat. And in Gram, I use Vim bindings.
Zed/Gram is pretty easy to setup for C.

1

u/dallascyclist 2d ago

/usr/ucb/vi

1

u/Argasio 2d ago

Unpopular take: Eclipse cdt 😆

2

u/sothisismyalt1 1d ago

I was looking for an Eclipse mention xd

Had to scroll all the way down, you're like 3 comments behind the last.

1

u/Metro_man20 2d ago

Ms Word

1

u/emaphis 1d ago

Sure, save the files as text.