I spent a long time researching, trying and tweaking text editors. As a cross-platform developer and technical writer (mostly writer these days) I work with different programming languages, document formats and want an editor with particular features, but that is also easy on the eye. Ideally I wanted all the functionality I was looking for in one application, not split between 5. Here’s what I was looking for: Good Markdown support. The ability to export markdown to different formats (at least PDF and HTML). A project manager. Spelling and grammar checking. The ability to edit code inline (in markdown) as well as in separate files and for it to be formatted and highlighted correctly. An extension / plugin architecture for features I don’t even know I want yet. Open Source would be a bonus, but it wasn’t essential. I am happy to pay for software, but cost isn’t always an indication of quality. I tried for a while but got bored with it and can’t even remember why. I tried (and TextWrangler), I liked that it was Mac-native but it lacked a lot of the features I required for the money it cost. I tried some time ago, and again I can’t remember what I didn’t like about it, but I moved on quickly. was nearly there, but again it wasn’t worth the money, I would still need other tools. Sublime BBEdit Brackets TextMate Then I found from GitHub. I wasn’t immediately convinced, versions prior to version 1 were unreliable and certain features necessary to me didn’t work well (HTML and PDF export), but something about Atom made me want to stick with it. Atom Atom is a text editor, so of course will work with anything text-related. However they are often primarily aimed at coders and setting things up for a more writing focused workflow takes a few steps and after months of tinkering I have arrived at a near perfect (I will regret saying that) setup for me and I wanted to share what I use, how I’ve configured it, and what it helps me do. I’m considering making an Atom fork or special package file that bundles these writer specific plugins and setting together, but that’s still an idea. Making Atom Look Nice(r) I like light themes, and use in and variants. one-o-eight-syntax light bright It looks like this (plus other additions which I will cover next). I used to have a couple of customisation in my file, but I have removed all of them now, so this is default. styles.less I use the , as I like my Mac software to look like Mac software. Unity UI theme is great for previewing HTML files. Atom HTML Preview I have increasingly poor eyesight, and I find helpful for identifying where I am in a document. It’s also customisable to suit your needs. Highlight Line is a comprehensive package that formats your code (and text), and lets you configure what ‘beautifier’ to use for what supported language. Atom Beautify And then triggering the command will tidy your code/text for you. In conjunction with Atom Beautify I use the package that I find does a better job than the inbuilt package. Tidy Markdown Personally I am not a big fan of the 80 character per line limit, as you can achieve this with layout and flow accordingly. But if you work with projects who insist on it, you can use to force line breaks at a defined length before submitting your work. Break Line Length lets you set wrap guides at configurable positions, it should also work with the package above to break text at these positions. Multi wrap guide shows colour values inline, simple but nice 😀. Pigments Language Formatters, Linters and Snippets Many of these will be self-explanatory (and I wont include screenshots), they add language highlighting, formatting and snippets (Snippets are one of the Atom features I’ve just started using) to Atom, in varying degrees: atom-syntax-highlighting-for-sass language-liquid atom-liquid-snippets — I work a lot with Jekyll, and its templates are liquid, which are based on django templates. django-templates language-swift language-restructuredtext language-latex language-gradle language-docker linter-swiftc linter-scss-lint linter-jsonlint linter-htmlhint linter-javac linter-js-yaml linter-csslint linter-jshint linter-clang linter-chktex linter-less linter-markdown linter-package-json-validator linter-shellcheck Automate yourself Why waste time repeating yourself when packages can help! The package adds closing tags to HTML elements you add into your code or code snippets. autoclose-html adds Atom support for , the ever so helpful offline documentation browser. Atom Dash Dash I use occasionally use for presentations and for running let’s me start presentations from inside Atom. RevealJS Grunt Runner Grunt tasks The package is a comprehensive package that adds Jekyll snippets, shortcut methods, grammars, server management and is configuration aware (of the contents of your Jekyll file). I should use this package more, but it frequently doesn’t work and isn’t very verbose 🤔. Jekyll config.yml Using you can summon a pop-up colour picker inline in your files. Color Picker Project Management allows you to set folders as projects and then open and switch between them. Project Manager If you can’t remember the name of a file or the correct path to it, will help. Sometimes it can be too keen, requiring judicious use of the key to stop inserting file names all over your document. autocomplete-paths esc Make your project view look nicer with colourful file type icons from . The Unity UI theme hides these, so make sure you show them by checking the setting in the package settings. file-icons Force Show Collaboration is a great package that lets you browse and compare git history for a file in Atom. git-time-machine The package is super cool, allowing you to view comments on pull requests inline in your file. It occasionally times out on network connections and I had issues with private / business repositories, but it usually catches up. Pull requests Write Better OK, this is what you’re really interested in 😉. I have been using for some time and have found it useful. It offers suggestions to make your writing better based on the . It wont always be right or relevant, but it has helped me a lot. linter-write-good NPM write-good module I am still undecided on , it uses to catch inconsiderate writing. I have found it overly sensitive, highlighting words like Australian and American as ‘potentially profane’, which is odd. It will also highlight words with double meanings, such as ‘shoot a photo’. I’m still assessing how useful it is to me. Alex Linter AlexJS The linter highlights ‘ ’. It’s functionality crosses over slightly with the Write Good linter, but I still find it useful. Just Say No hedge words I replaced the inbuilt spell checker in Atom, because the allows you to select dictionaries (You can switch between UK and US English 😄), add custom words (great for tech jargon), and it has a nicer interface. You will need a lspell compatible dictionary installed (I installed with Homebrew) and the package which adds a nice pop-up over issues that I wish other packages would use. Spell Linter Aspell intentions “improves your writing experience” by centring the layout removing scroll-bars (unless you scroll) and other tweaks. I’m not 100% on this package, as sometimes (and this may be package conflicts) it creates unnecessary horizontal scrolling and I end up with a lot of white space, which I know is kind of the point of the package, but I’m not a big fan of it 😬. Typewriter The package counts words and characters. Simple. Wordcount provides a set of shortcuts and functions for making working with Markdown easier. It also works well with static site generators that use Markdown for posts. Markdown Writer I love , and with the and packages I can utilise Pandoc for previewing and exporting documents in the vast amount of options it offers. Pandoc Pandoc convert Pandoc previewer It can be jumpy, but keeps your source and preview markdown in sync with each other. Markdown scroll sync Packages from Me If you like writing in Markdown, but also use Medium, then my lets you export straight to your Medium drafts. It needs work, but functions fine. Medium Export I am also working (slowly) on the ‘Editors friend’ package that sets configurable lists of search/replace strings to help reduce the amount of repetitive editing you do. What’s in your Atom? And that’s me! I love the extensibility of Atom and would welcome your comments on how you’ve set it up for your needs. is how hackers start their afternoons. We’re a part of the family. We are now and happy to opportunities. Hacker Noon @AMI accepting submissions discuss advertising &sponsorship To learn more, , , or simply, read our about page like/message us on Facebook tweet/DM @HackerNoon. If you enjoyed this story, we recommend reading our and . Until next time, don’t take the realities of the world for granted! latest tech stories trending tech stories
Share Your Thoughts