Desktop Code/Text Editor of Choice

What are everyone’s text/code editors of choice? I’m currently considering Sublime vs. Atom vs. Visual Studio Code. I have been using Notepad++ but for “reasons” it’s been grating on me lately. Mainly it doesn’t have a project view that is worth a damn. It also comes across as “old” compared to the other three listed.

Anyway, what do you like and why do you like it?

  • For the random text file: Text Mate (“mate somefile.txt”)
  • For Hugo projects: Sublime (I have thought about giving Atom a try, but haven’t gotten to it)
  • For Go development: LiteIDE. It may seem like an odd choice, but the “Lite” part of it means it is really fast, everything else I tried feels sloggy.
1 Like

I tried, sublime and atom. Both had subtle issues with markdown differences WRT Hugo. Maybe 1 week each was not fair to them. Dunno… I was not super happy with either. I want a Preview mode, light would be nice.

Currently quite happy with Brackets. It has a decent plugin for preview, a good project view, full text search across the project. Not fighting it, getting stuff done.

1 Like

I’ve been using Atom.io since close to day-one. It’s great and the git integration, which has recently gotten better (very GH-centric, though), is superb. There’s a Hugo plugin for it, and I otherwise use very few plugins. I like using open source tools.

However, I use Sublime Text for large files and as a general second editor (I like to keep my main thing in one editor and other misc stuff in a second). Sublime Text is faster and has better regex support (which becomes significant when slinging around thousands of markdown documents). I sometimes use BBEdit for text manipulation, but not so much any more.

There are others, like VS Code, which has gotten some traction recently. I think it comes down to personal preference, so you should really try them.

1 Like

I’ve tried Atom, and I was/am used to the behavior of Sublime and Notepad++ where even if you closed the program with unsaved files open in the editor, those programs would reopen with all the files open before (basically the session) including the unsaved files. Atom doesn’t do that… and the only way you can replicate that is by creating a project folder and doing all your work in that. This might be ok if you are working in a project, but as a basic text editor where files come and go and don’t need to be in a specific place… it’s kinda a pain. I know it sounds silly, but it was a big hangup for me (and appearantly a lot of other people) when I first tried it out. I’ll have to give them all, including Brackets, a shot I guess. I feel like I’m done with Notepad++, there isn’t anything that it has that I can’t get in the others. Atom also takes a while to load up (isn’t it in an Electron wrapper?). But plugins, for all the programs, rule the day.

I’ve never seen that. Do you have “Restore Previous Windows on Start” set to “Yes,” (core settings) and it still does that?

Yea. If you are NOT working in a project, any unsaved (never saved) document you have open when you close the application will not be restored when you open it again, unlike default behavior of Sublime and Notepad++.

Sounds like a bug to me. That’s not the behavior I experience on mine.

Strange. in my searches, everyone described the same thing and the maintainers seem to indicate that’s the current “working as intended” but they are considering the sublime way. I did try it a couple months ago so maybe i’ll try it again.

So if I go to my desktop, select a file, click on “open in Atom” and edit the file (thus opening a file, not a project), close Atom, then reopen it, for you its state is lost. Right?

No, it would preserve the state of that file in that case because the file already exists. I’m saying, if you open a new file from within the editor, add some content, never save it, close the editor, open it again, that unsaved file is gone, but if you do the same thing in sublime or notepad++, it’ll reopen that unsaved file (still called Untiltied or New ) in the state you left it.

Oh, I see. I don’t think I’ve ever had an occasion to do that. Funny. Well, like I said, it’s very personal :slight_smile:

Lol, yea I know it’s a circumstantial thing. It’s not really an issue if you are working on actual project files, as I said. But if you are using it as a basic notepad/text editor where things just pop into mind and you want to write them down or whatever, it’s nice to know that it won’t be deleted if you accidentally close without saving, in the other programs. But it seems many people use multiple programs for different things.

That makes sense. I use another editor (iA Writer, which is a Markdown editor) that I didn’t mention because I don’t code in it, though I do write a lot of notes like you describe in it.

Something to keep in mind for Windows users using Atom

Before migrating from MovableType to Hugo, I maintained my site with Ecto until it finally stopped working, then switched to MarsEdit.

With Hugo, I’ve gone back to emacs (with almost all the modern “features” disabled), supplemented by a handful of Bash scripts. For instance, I have too many pages for hugo server to be useful (~7,600 articles, ~15s build time), so when I want to preview a new article or theme change, I run a script that copies the 50 most recent articles from each section into a new directory (~0.25s) and then runs hugo server --contentDir .preview (~0.2s).

I find that I don’t miss the additional functionality of GUI tools, largely because they make assumptions about how to do revision control, asset management, previews, drafts, publishing to server, etc. Their way is almost never the way I want to do it, and frequently the exact opposite.

-j

@jgreely see

3 Likes

I use Emacs. When using Emacs, it especially comes to mainly using the Org package when writing prose, like blog posts.

Org allows easy ordering of sections, hiding or commenting them, creating tables (with even formulas like in Excel), directly including source code snippets from external files (instead of having to copy/paste them in), running code snippets within the Org file and embedding the results (Org Babel), exporting the single Org format to other formats like HTML, PDF, Markdown, or any custom format, and much more.

So lately I have been working on an Emacs package for exporting Org files to Hugo compatible Markdown (blend of Blackfriday + Hugo shortcodes at places): ox-hugo.

Using Org for content writing allows using inbuilt Org features to translate to Hugo front matter:

  • Org uses an outline structure and can inherit meta data from one sub-tree to children sub-tree
  • Using that feature, I can tag one tree as “emacs”, and everything under that tree (all posts under that) will get that tag automatically.
  • The same concept applies to inheriting any meta data like menu entry, category, section name, etc.
  • Org can quick mark as subtree to be in TODO state. I use that information to add the “draft” meta data to front matter.
  • I can auto-set the menu weights so that the menu items order is the same order as that of those post subtrees in Org. If I reorder the subtrees (which is one of the strengths of Org… you do that with simply Alt-up/Alt-down), the weights get changes implicitly.
  • I can have one subtree with section property set to “posts” and all post subtrees under that will go to that section. Similarly I can have another parent subtree with section set to “articles”, and so on.
  • Images can be displayed inline in Emacs.
  • After save hooks can be set up in Emacs so that each time I save the file, only the current subtree in Org gets exported to Markdown. With the Hugo server running with the new switch that auto changes the preview to the last changed post, the flow is seamless (save the Org file and see the exact changed post in browser).
  • All posts can simply be subtrees in a single Org file. That way I can take advantage of Org subtree filtering and searching functions.

Example: This one Org file exports to these markdown files with Hugo front matter (few markdown files are not from that Org file, but because I am testing one post per Org file support for this package too).

1 Like

I use a free RJ TextEd, it does not support markdown, but it supports a rather advanced syntax of regular expressions and snippets with variables.

Snippet for Front Matter.

1 Like

I just now found out that you cannot print to paper (or anything) on VSCode, Sublime or Atom (I think Atom may have a plugin for printing). This is crazy… I guess you can’t make your nice code editor your simple notepad either, until it changes…

Also, I’ve been playing with Brackets, VSCode, Atom and Sublime, and I’m liking VSCode a LOT. Atom is the 2nd best and it feels to me frustrating to use… but I can’t really explain why.