April 8, 2021

Obsidian IconObsidian Icon

Using Obsidian

Product: Obsidian
Price: Pricing - Obsidian Free for personal use.

Obsidian is described by the developers as:

Obsidian is a powerful knowledge base that works on top of a local folder of plain text Markdown files.

I need to restart.

Obsidian is an Electron program. I hate those. They feel like a compromise. In fact, by design, they are the lowest common denominator for any platform that you can run them on.

Obsidian runs on Windows, Linux and macOS. It doesn’t support any of the features which make Windows, Linux or macOS special or unique. I don’t know anything about Windows or Linux. I know the macOS and I am going to point out things that Obsidian doesn’t support on the macOS:

  1. Services menu.
  2. Text replacements and settings in the Keyboard preference pane of macOS. No two spaces turn into a period. No capitalizing the first letter of a sentence.
  3. Doesn’t use the system dictionaries.

These are features unique to macOS and they are not supported at all. I hate the experience. Why am I writing about Obsidian?

Obsidian brings a new take on the task of note-taking to macOS. It is built around the concept of linking notes together, explicitly making obvious the links between your notes. The core feature of Obsidian is the ability to link your notes and make visible the interconnected linked knowledge base that you have built with your notes.

Along with that focus on creating links, Obsidian has the following features which are relevant to me.

Pure Text Files

Obsidian files are Markdown formatted plain text files. They are local, I keep them in the Dropbox folder. Plain text files gives me the ability to switch from the program if I want. I am not locked in. The files are accessible and editable in any text editor.

If I decide to adopt a different text editor, I can move on without any pain.

The Ability to Access Multiple Folders

Obsidian is not restricted to a single folder. The program conceptualizes folders as vaults and a vault can have multiple folders in it. You can switch to different vaults, depending on your needs. In addition, you can assign different themes and features to individual vaults.

Full Support of Markdown and Other Goodies

Along with its wiki-style linking, Obsidian supports CommonMark and GitHub Flavored Markdown.

You can have mermaid - Markdownish syntax for generating flowcharts, sequence diagrams, class diagrams, gantt charts and git graphs., slides, and other javascript based additions.

If you haven’t been exposed to Mermaid, it might be worth your while to take a deep dive into it.

Obsidian has a slides plugin which lets you create presentations in Obsidian. Another feature which might be something you want to take a deep dive into.

Customizable

Obsidian windowObsidian window

Obsidian is heaven for anyone interested in tweaking their editor. You have complete control over the look of the program through themes. There are a bunch of those available in the program and you have the ability to edit them for your own needs.

Keyboard commands are customizable. You can assign/change any of the keyboard commands which ship with the program. This enables macOS standard keyboard commands. You can define them yourself.

Extendable Through Plugins

Obsidian has a published API (in beta) for extending the program through third-party plugins. Early adopter developers are adding a slew of third-party plugins to the program and they have enhanced my use of the program.

The plugin architecture makes it possible for users to add features to the editor and it lets non-developers benefit from the creativity and ideas of the user base.

I am going to highlight three plugins which I find useful:

  1. Typewriter Scroll Obsidian Plugin: Has added typewriter scrolling and focus mode to the program. Two features I was missing from iA Writer now available in Obsidian.
  2. Paste URLs into selected text “notion style”: Highlight text, paste an URL, and that turns it into a Markdown-formatted link. Convenient and easy.
  3. advanced-tables-obsidian: Improved table navigation, formatting, and manipulation in Obsidian.md: Makes the process of creating, editing and presenting tables easier and prettier.

User designed plugins let users customize and extend the product in ways that a developer alone can never match. It is what makes Atom, Visual Studio Code, Sublime Text, Vim, and GNU Emacs special. I am excited to see this feature brought to a note-taking application.

Knowledge Management

This subject is new to me.

Obsidian is focused on the concept of creating and maintaining a second brain. The design of the product, the features it introduces, and the execution are geared towards the concept of a second brain. In other words, knowledge management.

There are a bunch of folks who are trying to think through this and come up with solutions designed to make you and your note-taking system efficient. Two examples:

  1. The PARA Method: A Universal System for Organizing Digital Information - Forte Labs
  2. Linking Your Thinking Workshop

I have no idea of the relative efficacy of these and other alternatives. I am in the process of exploring the ideas and trying to make sense of them.

This is what I do know:

  1. I read the book How to Take Smart Notes: One Simple Technique to Boost Writing, Learning and Thinking – for Students, Academics and Nonfiction Book Writers eBook: Ahrens, Sönke.
  2. I explored the Zettelkasten Method site and have used the product The Archive (macOS) • Zettelkasten Method. I wrote about it, The Archive Adds Zettelkästen to the Note-Taking Arsenal - Bicycle For Your Mind.

I used to view my notes as a collection of information. A subset of my notes are geared towards that goal. I install a new Alfred workflow, I need to remember what the triggers were to launch the workflow, I have that information in a note. It is not going to be a part of a thinking exercise in future. It is an information unit which is going to be useful at a future date.

Now I also create other kinds of notes. Notes which are geared towards the end goal of clarifying my thinking about a topic. I view them as inputs to aid my ability to think. I create these notes with the notion that it would be pleasurable to read them again. That means I care about what I write. I try to see how it fits into the constellation of thoughts I have had around that topic. I link to other notes which deal with the same topic or express similar notions. It is a deliberate activity rather than the dump of information which I used to consider the main purpose of my note-taking. It is a new way for me to think about my note-taking.

Caveats

Niklas Luhmann was an extremely productive social scientist and he used a note-taking system (Zettelkästen) to help him think things through. Adopting or adapting his system, for your own thinking is not going to make you as productive as him.

Going into the weeds on a Zettelkästen system like How Long a Zettel is Too Long? is not going to make you as productive as Luhmann either. In fact, I am not sure that it is going to make you productive at all.

Concentrate on the thinking. Don’t get distracted by the tools or processes which aid your thinking. Focus on the act of thinking, pay attention to the process of moving from point A to point B, explore the assumptions behind that move. Understand and challenge those assumptions. Refine your thinking. Rehash your thinking. Reform your thinking. Reject your thinking. Think. Write it down. Read it. Write some more.

This field of Knowledge Management has given birth to a cottage industry of “experts.” How does one define “good” thinking as opposed to “bad” thinking? What are the measurable units? How do you know that one process being sold is better than the other?

Obsidian reminds me of Tinderbox: The Tool For Notes. There are folks, folks who are smarter than me, who swear by the effect Tinderbox has had on their thinking. Didn’t do anything for me. I tried. I got the University to buy me a copy. I bought the Tinderbox Way. Read it several times and couldn’t figure out how best to utilize the program to help me. After several attempts, I gave up. I couldn’t understand Tinderbox.

Obsidian MapObsidian Map

I don’t understand the utility of this either. What does it tell me? It is pretty. I need to explore this idea because I don’t get it.

My advice:

  1. Be skeptical. Don’t copy anyone’s system.
  2. Think and write. Write and think. Repeat ad nauseam.
  3. Surround yourself with people who are brighter than you.
  4. Argue with them.
  5. Be honest with yourself. Question your assumptions. Question your logical progression. Recognize that you are fallible and probably close to being an idiot. You don’t have all the answers. Try to improve.

Back to Using Obsidian

I use Obsidian like a text editor. I like the linking and back-linking but that is not the focus of my use of Obsidian. My interest is on using the product as the one stop application for all of my writing. It is a replacement for Sublime Text, BBEdit, iA Writer or nvUltra.

It fulfills that role for me. These are the things which make it suitable for the task of my primary text editor:

  1. Great Markdown support.
  2. Typewriter Scroll Obsidian Plugin gives me typewriter scrolling.
  3. Folding of headers.
  4. Ability to handle large files.
  5. Customizable keyboard commands.
  6. Easy switching between oft-used files through obsidian-shortcuts-for-starred-files
  7. Fantastic theme and its settings. Minimal theme for Obsidian and its Settings plugin to control colors and fonts in Minimal Theme

Obsidian can be “The One Text Editor” for all my needs. It is not for the following reasons:

  • Obsidian is a memory hog. It isn’t the fault of Obsidian. All Electron apps are.
  • The non-native nature of Obsidian irks me. I miss the Services menu. Typora, an Electron app supports Services. It is doable, wish Obsidian would support that. Would make life easier for those of us reliant on Services.

Obsidian is a good solution, but both Sublime Text and BBEdit are better solutions for my needs.

Recommendation

If you are an academic, try Obsidian. As an aside, if you are an academic, please concentrate on your teaching. Don’t ignore the teaching to focus on your research. I know it is not your fault, the institutional incentives are geared towards research, but the focus of an University should be on teaching and not on producing research nobody but other academics are going to read. This is a phenomenon which plagues the social sciences and it is disgusting.

Obsidian is a great app for the dual activities of thinking/writing if you are willing to put up with the non-native nature of Electron apps. It brings innovation to the field of note-taking and the plug-in infrastructure is exciting.

macosxguru at the gmail thingie.

Resources and Other Takes on Obsidian:

An interesting perspective on Obsidian: BSAG » Obsidian

A list of Obsidian resources: Obsidian Resources - Dynalist

An opinionated take on notes and note-taking: Evergreen notes - Andy Matuschak Notes - Obsidian Publish

From the guy who wrote the book on “Smart Notes”: how to take smart notes - YouTube

A different perspective: Learn to play the fool - Austin Kleon

The Second Brain. Building a Second Brain: An Overview - Forte Labs

Detailed User Experience with Obsidian: 100 Days in Obsidian, Pt. 1 – Interdependent Thoughts

Another Perspective on Obsidian: Loving right now: Obsidian.md

Obsidian macOS text editor
March 31, 2021

TaskPaper IconTaskPaper Icon

TaskPaper - The Text-Based Outliner

Product: TaskPaper
Price: $24.99

Background

I was sad to give up on org-mode. Not interested in the task-management aspect of it. Intrigued by the content creation features of org-mode. The only downside? You have to deal with Emacs. Unfortunately that was a no-go for me. I was disappointed with that.

I tried out a couple of the plug-ins which lets Sublime Text deal with org-mode, and they weren’t right. I was giving up the quest and then remembered, TaskPaper.

TaskPaper is a treasure

TaskPaper is a text editor with outlining power. It is not as full-featured as org-mode but it does perform a subset of the functions.

At its core, TaskPaper is an outliner. It is a text-based outliner. You can make lists with it. You can fold and unfold sections. It is a competent outliner with the added goodness of being a text file which any text editor can deal with. No lock-in.

You can organize your life with it. It handles projects, tasks, notes and @tags. They are elegantly implemented and TaskPaper is an absolute joy to use.

Documentation

TaskPaper is well-documented at Introduction · GitBook. You can go through the documentation to learn what the product can do.

My Use of TaskPaper

TaskPaper WindowTaskPaper Window

I am using it to write. Anytime I need an outline, TaskPaper is where I go. It is a pleasure to write in.

Four features I am fond of:

  1. Typewriter scrolling.
  2. Supports macOS conventions. “Lazy typing” included. That is two spaces turn into a period. The first letter of a new sentence is capitalized.
  3. Keyboard commands galore.
  4. Fold, focus, and filter to concentrate on the section you are writing.

The other advantage of using TaskPaper is that there is a fantastic Sublime Text plug-in called PlainTasks which lets you deal with TaskPaper files in Sublime Text. I can use TaskPaper when I want a deep dive into an outline or list. When it comes to quick edits, Sublime Text with the PlainTasks plug-in lets me stay in the “one-editor” to rule them all.

Recommendation

If you like text files, want an organizer, and a competent text-based outliner, TaskPaper is the answer. Jesse Grosjean, the developer of TaskPaper is an absolute genius for giving us this versatile tool.

TaskPaper is recommended heartily.

macosxguru at the gmail thingie.

Additional Resource: TaskPaper 3 - Matt Gemmell

TaskPaper outliner
March 22, 2021

Text Editor Preferences

I came across two articles which intrigued me.

Nova Review: Panic’s Code Editor Demonstrates Why Mac-like Design Matters - MacStories

I looked at Nova and came to the conclusion that it wasn’t for me. I am not a programmer, code is not my focus. I want a capable text editor and Nova was focused on code. But the descriptor “Mac-like,” got my attention.

What is “Mac-like?” I have been thinking about this for a few days now. I know it when it is not “Mac-like.” Try any Java app and you will know what I am mean. But those are the extremes. What distinguishes one product from another in terms of “Mac-likeness?”

The easy criterion is an evaluation of the support of macOS technologies. Does it support the Services menu? Does it support Versions? Is it integrated with the OS, or does it stand on its own? There are several of these that you can use to determine whether a program is “Mac-like” or not.

The focus of the article is “Mac-like design.” What is that? They look the same to me.

This is Sublime Text editing this article.

Sublime TextSublime Text

BBEdit editing this article.

BBEditBBEdit

This is iA Writer with the same article.

iA WriteriA Writer

Jason Snell, a respected member of the macOS community, in Mac apps yes, text preferences no – Six Colors, focused on the following paragraph:

One of my main frustrations with pretty much all of the popular code editors out there (and I’ve tried most of them, including Visual Studio Code, Sublime Text, Atom, IntelliJ, and Eclipse) is that none of them are Mac-assed Mac apps. They’re all clearly cross-platform apps with design senses that differ significantly from those of Mac-first developers.

You can see a microcosm of this fact just by looking at the preferences of these apps. For many of them, the ‘Preferences’ menu bar item is actually a submenu from which you can navigate to ‘Settings,’ as well as other more nebulous options. If that doesn’t already offend Mac users, a common theme in those settings screens is for them to be literal JSON text files that open in the editor. You then manually edit the text to adjust options.

His comment?

As Alex writes, design matters, Mac-like design doubly so. And if an app decides to display its preferences as an editable text file, I’m never going to use that app. Hard No.

I find myself compelled to write about the efficiency of using text files as preferences for complex programs like a text editor. This gives me an opportunity to write about the preferences of Sublime Text.

The Sublime Text Preference Setup

Sublime Text has preferences it codifies in JSON files. There are a plethora of these.

  1. The Default Settings file and a User Default settings file
  2. The Language-Specific settings file and the User Language-Specific settings file
  3. The Distraction Free settings file
  4. Each package you install can have a default settings file and an User settings file.

Let’s deal with the Default Settings File.

Default Settings File

The Default Settings File in the beta of version 4 of Sublime Text is 780 lines of commented JSON goodness.

For instance,

    // Set to false to prevent line numbers being drawn in the gutter
    "line_numbers": true,

    // Set to false to hide the gutter altogether
    "gutter": true,

You don’t edit the default settings file. If you want to change the default behavior, you add the setting to your personal settings file. For instance.

    // Set to false to prevent line numbers being drawn in the gutter
    "line_numbers": false,

    // Set to false to hide the gutter altogether
    "gutter": false,

You would add the previous section to your personal settings file to ensure no line numbers and no gutters.

Another example:

    // Disables horizontal scrolling if enabled.
    // May be set to true, false, or "auto", where it will be 
    // disabled for source code, and otherwise enabled.
    "word_wrap": "auto",

    // Set to a value other than 0 to force wrapping at that column 
    // rather than the window width. See "wrap_width_style" for 
    // extra options.
    "wrap_width": 0,

This is the section which defines the properties of word_wrap. Or how or where you want the word-wrapping to work.

My settings:

    "word_wrap": true,
    "wrap_width": 90,

I want word wrapping to be on and to wrap with 90 characters on a line.

This is my settings file:

{
    //Words added to the dictionary
    "added_words":
    [
        "blog",
        "workflow",
        "Facebook",
        "hoodie",
        "github",
        "macosxguru",
        "gmail",
        "thingie",
        "Deselect",
        "Mamoni",
        "Solarized",
        "Obama",
        "Pastebot",
        "Dropbox",
        "overthinking",
        "wasn’t",
        "didn’t",
        "couldn’t",
        "hadn’t",
        "wouldn’t",
        "aren’t",
        "isn’t",
        "weren’t",
        "amongst",
        "doesn’t",
        "shouldn’t",
        "hasn’t",
        "monospace",
        "enduringly",
        "Keychron",
        "workspaces",
        "outliner",
    ],

    // Controls auto pairing of quotes, brackets etc
    "auto_match_enabled": true,
    //exclude from GoTo searches
    "binary_file_patterns":
    [
        "Public/"
    ],
    //Requirement of MarkdownEditing package
    "blacklist_syntaxes":
    [
        "Markdown"
    ],
    //look of folders in the sidebar
    "bold_folder_labels": true,
    //look of caret
    "caret_extra_bottom": 5,
    "caret_extra_top": 5,
    "caret_extra_width": 2,
    "caret_style": "wide",

    "color_inactive_tabs": true,
    //default theme and color_scheme
    "color_scheme": "Packages/Color Scheme - Default/Breakers.sublime-color-scheme",
    "theme": "Adaptive.sublime-theme",
    // Draws text centered in the window rather than left aligned
    "draw_centered": true,
    "draw_white_space": "none",
    "enable_live_count": true,
    "fade_fold_buttons": false,
    //files to exclude from side bar
    "file_exclude_patterns":
    [
        "*.pdf",
        "*.dropbox",
        "*.nottingham",
        "*.ark",
        "*.reportark",
        "*.png",
        "*.gif",
        "*.jpg",
        "*.exe",
        "*.dll",
        "*.obj",
        "*.swf",
        "*.dbf",
        "*.lib",
        "*.cdx",
        "*.cfr",
        ".UlyssesRoot",
        "*.ico",
        "*.lnk",
        "*.bak",
        "*.sig",
        "*.xls",
        "*.doc",
        "*.docx",
        "*.xlsx",
        "*.xps",
        ".DS_Store",
        "*.class",
        "*.psd",
        ".Ulysses-Group.plist",
        ".zedstate",
        ".EagleFiler Metadata.plist",
        "*.db"
    ],
    //font and size
    "font_face": "Input Mono Narrow",
    "font_size": 18,

    "highlight_line": false,
    "highlight_modified_tabs": "enabled",
    
    //default packages which are ignored by me
    "ignored_packages":
    [
        "2pdf",
        "ActionScript",
        "ASP",
        "Batch File",
        "C#",
        "C++",
        "Clojure",
        "CSS3",
        "D",
        "Erlang",
        "Go",
        "Graphviz",
        "Groovy",
        "Haskell",
        "HTML5",
        "Java",
        "Lisp",
        "Markdown",
        "Matlab",
        "Objective-C",
        "OCaml",
        "Pascal",
        "R",
        "Scala",
        "SublimeCodeIntel",
        "TCL",
        "Text Pastry",
        "Textile",
        "Vintage",
    ],
    //Words Ignored by the spell check
    "ignored_words":
    [
        "Das",
        "Devonthink",
        "Sensei",
        "Slugline",
        "Typora",
        "app",
        "backend",
        "brainer",
        "fn",
        "freeform",
        "screenshots",
        "solarized",
        "spellcheck",
    ],
    "keymaps":
    {
        "show_pretty_keys": true,
    },
    "line_numbers": true,
    "line_padding_bottom": 6,
    "line_padding_top": 6,
    "match_brackets": true,
    "match_brackets_angle": true,
    "match_brackets_braces": true,
    "match_brackets_content": true,
    "match_brackets_square": true,
    "mini_diff": false,
    
    //Required by OpenWith plugin. I can open a file in another editor.
    "open_with":
    [
        {
            "command":
            [
                "open",
                "-a",
                "BBEdit",
                "{filename}"
            ],
            "name": "BBEdit",
        },
        {
            "command":
            [
                "open",
                "-a",
                "iA Writer",
                "{filename}"
            ],
            "name": "iA Writer",
        },
        {
            "command":
            [
                "open",
                "-a",
                "TaskPaper",
                "{filename}"
            ],
            "name": "TaskPaper",
        }

    ],
    
    //saves the current document when you move away from it
    "save_on_focus_lost": true,
    "scroll_past_end": true,
    "show_git_status": false,
    "show_line_endings": true,
    "spell_check": true,
    "translate_tabs_to_spaces": true,
    "trim_trailing_white_space_on_save": true,
    "word_wrap": true,
    "wrap_width": 90,
    "auto_complete": true
}

The settings are self-evident.

Is this painful? They grow on you. If you spend time with the editor, you aren’t going to consider whether this is “Mac-like” or not. You are going to know how it works and that is the important consideration.

Language Specific Settings

MarkdownEditing - Packages - Package Control, which is the package I use, to write Markdown, supports Markdown, MultiMarkdown, and GFM (Github Flavored Markdown). Each of these variants have their own preference setup. I use MultiMarkdown. I am going to focus on that.

This is my MultiMarkdown specific settings file:

// These settings override both User and Default settings 
// for the MultiMarkdown syntax
{
    "auto_complete_delay": 30000,
    "auto_complete_selector": "source, text",
    "auto_match_enabled": true,
    "color_scheme": "Packages/Color Scheme - Default/Breakers.sublime-color-scheme",
    "theme": "Adaptive.sublime-theme",
    "highlight_line": false,
    "highlight_modified_tabs": true,
    "bold_folder_labels": true,
    "enable_table_editor": true,
    "extensions":
    [
        "mmd",
        "mdown",
        "md",
    ],
    "font_face": "Input Mono Narrow",

    "font_options":
    [
        "subpixel_antialias",
        "no_round",
        "directwrite"
    ],
    "font_size": 18,
    "line_numbers": true,
    "line_padding_bottom": 6,
    "line_padding_top": 6,
    "mde_match_header_hashes": false,
    "save_on_focus_lost": true,
    "spell_check": true,
    "table_editor_syntax": "Auto",
    "translate_tabs_to_spaces": true,
    "trim_trailing_white_space_on_save": false,
    "word_wrap": true,
    "show_git_status": "false",
    "mini_diff": "false",
    "wrap_width": 90

}

Not complicated. Takes getting used to but the settings are self-evident. And customizable by variant of Markdown. Some of the settings are duplicates of my default setup but I include them in the MultiMarkdown settings because I like them and don’t want them to change if I change the default.

The Sublime Text preferences allows me to customize the environment depending on the file I am editing or the syntax I am using. For instance, I deal with TaskPaper files in Sublime Text and for that I have a different font and a different theme from the one I use with MultiMarkdown files.

Distraction Free Settings

Sublime Text has a different set of settings for the distraction free mode.

{
    "font_face": "Input Mono Narrow",
    "font_size": 20,
    "font_options":
    [
        "subpixel_antialias",
        "no_round",
        "directwrite"
    ],
    "color_scheme": "Packages/Color Scheme - Default/Mariana.sublime-color-scheme",
    "theme": "Default Dark.sublime-theme",
    "wrap_width": 90,
    "line_numbers": true,
    "gutter": false,
    "save_on_focus_lost": true,
    "auto_complete_selector": "source, text",
    "auto_complete": true,
    "typewriter_mode_scrolling": true

}

One of the advantages of Sublime Text is that I can activate typewriter scrolling only in full screen mode. In regular windows, typewriter scrolling isn’t active.

Tweaking themes

I like the default theme that Sublime Text ships with. But I don’t like the color of the cursor. I want to change that, but I don’t want to have to change the theme for every update of Sublime Text. I don’t have to worry about that anymore. Sublime Text lets me edit the default themes and keeps the edits in a User Settings file, separate from the theme file. When Sublime Text gets updated, my theme changes stay the way I had set it up.

These are my changes to the default theme:

// Documentation at https://www.sublimetext.com/docs/color_schemes.html
{
    "variables":
    {
            "blue3": "hsl(198, 100%, 56%)",
    },
    "globals":
    {
        "caret": "var(blue3)",
    },
    "rules":
    [

    ]
}

I got the iA Writer caret into my theme. I am pushing the blue cursor across the screen.

The Modern Text Editor

BBEdit is the benchmark when it comes to the descriptor of a Mac text editor. It has a long history of being the text editor in the Mac market.

Explanations for the Preferences are on Page 219-248 in BBEdit User Manual(13.5.1). That is 29 pages of explanations for what the settings do. In addition, there are, what BBEdit calls Expert Preferences. These are statements which you have to input in the Terminal to get particular behavior that you are interested in.

BBEdit is defined by the continuous iteration it has gone through. Everything has been tweaked and polished to arrive at this state.

The preferences are well-designed, comprehensive and, if I may say so, “Mac-like.” They are so only because of the heritage of BBEdit, not because it is “Mac-like” to tweak default statements in the Terminal.

The modern text editor is a complicated beast and developers are trying to design a preference system which consumers can understand and use. The ability to set your preferences for the editor in a text file is an attempt to do that. It is different from the approach that BBEdit uses, but it is not an aberration. The Unix ethos which is fundamental to the modern day macOS, is equipped with two text editors, Vim and Emacs, which both use text file based preference setups.

The consideration should be efficiency and not a nebulous quality like “Mac-like design.”

I have to revert to what I wrote in the last article:

The best text editor is the one you know how to use.

If you are happy with the text editor you are using, keep typing. Spare me the assertions about what is “Mac-like design” and what isn’t.

macosxguru at the gmail thingie.

text editor macOS Sublime Text
March 17, 2021

TypeType

The One Text Editor

I have been looking for the one text editor that I can use for all my writing.

One text editor. For all my files.

I write notes. I maintain a few lists (Markdown based lists), I am writing a book. I write blog articles. I doodle with words. I convert all my digital books into text files and read them in a text editor. I want to do it all in one application.

Revisiting something I wrote, iA Writer 5 Manages Files & Folders - Bicycle For Your Mind, these are the requirements I have of the text editor:

  • Markdown support. Both syntax highlighting and ease in writing Markdown. I want support for all of Markdown. MultiMarkdown is preferred but CommonMark or Github Flavored Markdown will do. That means support for tables. Support for footnotes. Good keyboard command support for Markdown syntax.
  • The ability to use my own font. Input Mono Narrow, if you are curious.
  • Themes. Light theme for windowed documents, and dark theme for full screen.
  • Typewriter scrolling.
  • The ability to manage a whole bunch of folders and files within the folders. Fast search to locate an individual file when there are thousands of files to search through.
  • Ability to handle large files.
  • Regex support
  • Support for macOS conventions. Two spaces turn into a period. The first letter of a new sentence is capitalized.
  • Projects and workspaces support. I get distracted and want to be able to select individual silos of files to work on. Projects and workspaces let me do that.
  • Ability to quickly go to individual files. There are a few files I access several times every day. I want to be able to navigate to them. A keyboard command to switch to and between these files is preferred.
  • Ability to go to different sections of a large file. A keyboard command and I can get a drop-down list of the headers in the file, select one, hit enter and go to it.
  • User selected markers and bookmarks would be a nice addition.
  • Folding. I want to be able to fold/unfold sections when I am writing.
  • Backups and automatic saves are preferred.
  • Alfred and Keyboard Maestro text expansions have to be supported for me.

Short Version

There is no editor which does all the things I want. Any choice is a compromise.

I chose Sublime Text.

Much Longer Version

I tried a whole host of editors and did a deep dive into them. These are my observations. Both the positives and the negatives.

Emacs

Org mode in Emacs was an absolute revelation. I loved it. Not the task management component, I have no need for that. But the content creation component. It is the best outliner implemented in text files that I have come across. Markdown mode in Emacs is full featured.

The learning curve was brutal. You have to live in Emacs full-time and tweak till you get it to the stage where it is usable. Any small change throws things off and you are back in the rabbit hole. It was an incredible time sink. The payoff for that obsessive tinkering is huge. You can customize the editor to do everything you want it to do. The downside is that you will spend a lot of effort tearing your hair out in frustration. Unfortunately for me, I don’t have much hair left to give to the cause.

The experiment with Emacs ended a few months ago. I was sad about that. It is a great editor and org mode was fantastic but it chokes on large files. That was unexpected and unacceptable. I moved on from that.

Ulysses

I got tired of waiting for Ulysses to improve their handling of Markdown and let my subscription lapse at the start of the year.

Ulysses has a great environment to write in and if you are not writing Markdown, it is a beautiful place to live in. But it is constrained by what it can handle. It isn’t good with lists or notes. The organizational elements are okay, keywords make it efficient and the new style check is useful.

The downside of Ulysses is that the support and implementation of Markdown is asinine. I write in Markdown and don’t want to put up with that anymore. Hence the move away from it.

Drafts

Drafts is another solution which I tried out for a while. I love Drafts. It is improving. Customizable and extendable through actions, Drafts is an absolute treat. The community around the product is helpful and the developer is responsive and efficient.

I found it hard to move away from Drafts.

There were three problems I had with it:

  1. Inability to handle large files.
  2. Lack of the ability to fold sections.
  3. The friction of dealing with a database backend. I like text files. Using Drafts meant that I had to be aware of moving things out of Drafts all the time. Conceptually it makes sense, start writing in Drafts, and move the content to your editor. In reality, that is a pain. I managed to often forget to export the file when I was done with it. It introduced an extra step to the process.

Using Drafts meant that I had to have other solutions to back up my usage. I needed a program to manage my large files. I needed another program to manage my notes folder.

I didn’t like the lock-in which using Drafts implied. If my notes are in Drafts, I am reliant on Drafts. The export function of Drafts is limited. You can export files individually or a bunch of them together into one file. There is no option to export a whole bunch of files individually. That doesn’t work for me.

I must admit though that this was accompanied by a certain amount of angst. I love Drafts. It is useful software but my need was one application to rule all my writing, and Drafts didn’t meet that goal.

Obsidian

Obsidian is an Electron application. Which means that it is non-standard when it comes to the macOS. I use items in the Services menu, not possible in Obsidian. I use the macOS spell-checker. Not available in Obsidian.

Obsidian is treading new territory in the field of note-taking. It is conceptualizing the notion of “knowledge management.” It is geared towards being your “second brain.” Towards that end, it is introducing the ability to have links and back links between your notes. It is trying to provide you a roadmap through your note-taking. Academics are drooling at that feature set. People who are serious about their note-taking are excited by Obsidian.

It has a published API (in beta), for developers to write plug-ins for the basic product. And people are writing these plug-ins. They are increasing the utility of Obsidian for all users. A note-taking software with a plugin infrastructure. I am excited by that.

It has almost all the features that I write about at the start. Full support for Markdown. Keyboard commands galore. Keyboard commands which can be user defined. Folding. Ability to deal with large files. Great search and organization abilities. Obsidian is near-perfect. Except for two things:

  1. Non native.
  2. Memory hog. Electron apps by design eat memory.

Obsidian is a free product for personal use. They have a revenue stream geared towards publishing and syncing. But you don’t have to use that. I paid up for Insider status, because I was excited by the product and wanted to contribute to its growth.

I haven’t given up on Obsidian. I use it regularly to see what is going on with the product. The plugins and the development of insider builds keeps me checking on the progress and I might switch over to it one day. But at this point, I am not sold on the non-native nature of Obsidian, or it’s extreme appetite for memory.

The Main Contenders

Now we deal with the main contenders: iA Writer, BBEdit, and Sublime Text.

I could have chosen any one of these and been happy with the choice. They are all capable of being the one text editor which handles all my needs. I have spent the better part of the last five years switching between them. I am tired of this switching behavior. I am aware that not using one of them exclusively hampers my ability to get familiar with the product. Two of these three, BBEdit and Sublime Text are deep products which need a certain amount of immersion before you are going to be familiar and comfortable with their feature set. The keyboard commands aren’t going to be melded into your fingers if you are constantly switching around. Your comfort with the application is going to be a function of how much time you spend with it. That comfort will ensure that you are going to be productive in it.

iA Writer

iA Writer is an exception in this crowd. It is a simpler alternative. It has a smaller feature set than the full-fledged editors. It is easy to get comfortable with it. There are less things to learn because the program does less. It is a Markdown focused text editor. It doesn’t write .json files, or any other file. It is good at handling Markdown. There are keyboard commands galore.

iA Writer is the only one amongst the main contenders, which lets me, what I call, “lazy type.” Two spaces is a period. First letter of every sentence is capitalized. macOS compliant. Drafts is the other program which lets me “lazy type.”

There are little touches all over which makes iA Writer a treat to live in. It is great at giving you the ability to manage your files and folders. Lets you organize a bunch of favorite files and folders which are easy to switch between. Simple, efficient and fast.

I use it every time I publish something. But it is not my main editor for three reasons:

  1. No folding. iA Writer doesn’t let me fold sections. It provides an easy way to get to sections, but it doesn’t let you fold/unfold sections.
  2. The themes and the font choices. I like the themes (dark and light) and fonts iA Writer ships with. However, I want more choices. I want a solarized theme. I want the ability to use my own fonts. I get bored and having to make those choices gives me an opportunity to procrastinate and not write.
  3. The simplicity is alluring but it gives me the feeling that I am missing something. Both BBEdit and Sublime Text do much more. I miss all those features when I am in iA Writer. Markers and bookmarks. Workspaces. Regex searches. View invisible characters. Search for them. Replace them. There is a whole world out there and iA Writer, by its focused nature, keeps me away from that.

I think I am being silly. I keep telling myself that George Martin uses WordStar. I should be perfectly happy in iA Writer. Take advantage of its focus and live in it. I find myself struggling with that. I don’t have a good explanation or rationale for my behavior. I find myself longing for full-fledged text editors when I am working in iA Writer. I think it is the wrong call. But it is a call I made.

BBEdit and Sublime Text

The best text editor is the one you know how to use.

I know Sublime Text. I don’t know BBEdit.

I did a deep dive into BBEdit for the past few months. I read the manual. It is a great product. It is stable. Amazing support and full-featured. It deals with whatever you can throw at it and for those who are interested in acquiring a text editor for life, it is as good a choice as Sublime Text.

I prefer Sublime Text. Of the list of features I mentioned at top of this article, Sublime Text doesn’t let me “lazy type.” Besides that, Sublime Text does everything I want it to do. The added selling point? I know how to use it. I have lived in this for about five years and am wondering why I bothered to leave. Boredom makes you do strange things.

There are a few plugins which make Sublime Text the editor for me. They are:

  1. MarkdownEditing - Packages - Package Control. This is the package which makes writing in Markdown fantastic in Sublime Text.
  2. GitHub Markdown Snippets - Packages - Package Control. Another one which makes the whole process of writing Markdown simple.
  3. ColorHints - Packages - Package Control. Helps you create and tweak themes.
  4. PlainTasks - Packages - Package Control. Lets me use TaskPaper files within Sublime Text.

These four are essential to my use of Sublime Text.

I am going to stick to Sublime Text for the next six months.

Concluding Thoughts

I started out with Sublime Text about 10 years ago. Moved away from it and now I am back to it. Feels good to be home.

macosxguru at the gmail thingie.

Note: Thanks to Photo by Andrea Piacquadio from Pexels

Addendum: Another person taking a similar journey. Looking For My Perfect App – Greg Morris
Another Perspective: What writing app is the right app? | by ldstephens | Medium

macOS text editor
March 11, 2021

PlayingPlaying

Exciting Times

On the whole, I have been quiet for a while. That is about to change. I am going to return to a regular publishing schedule now that the drama in the US is settling down, and I am in a better mental space.

There are some major things happening in the field of note-taking and writing. Lots of new products. Improvements to old products. And general frenetic activity in this space. I can’t wait to go deep into some of these products and give you the rundown on them.

Obsidian Takes on Roam

Obsidian is a product which differentiates itself from Roam with the ability to work with your local files. This is an exciting product which is geared towards “Knowledge Management.” I am going to write a lot about this product.

For the time being, let me whet your appetite with one killer feature: A published API which lets developers design their own plug-ins. Think of the ecosystem of plugins that enhance products like Atom, Visual Studio Code, Sublime Text, Vim, and GNU Emacs. I am glad to see this feature brought to a note-taking application.

Downside? Obsidian is an Electron app.

Logseq Also Takes on Roam

Logseq is a privacy-first, open-source platform for knowledge sharing and management. The focus is the same as Obsidian. But the implementation is more outliner like rather than a Markdown editor like Obsidian.

Logseq is also an Electron app on the desktop.

SpringNotes

SpringNotes is an outliner/task manager which is firmly in the Apple ecosystem. These are native implementations and they are macOS and iOS compliant. One purchase ($5.99) gets you installs on both macOS and iOS. SpringNotes is a Markdown based solution.

Org files without Emacs

Org mode in Emacs is fantastic and powerful, but you have to deal with Emacs. EasyOrg tries to take org files away from the Emacs learning curve and provide a friendlier solution. This is a huge task. Org mode in Emacs lets you:

  1. Use it as a task manager.
  2. Use it as an outliner.
  3. Use it is an authoring tool.
  4. Use it as a journaling program.
  5. And a whole host of other uses.

Org mode is a deep and amazing implementation. EasyOrg is focused on the task management portion of the feature set. It is a decent outliner, but it doesn’t, at least in this stage, pretend to be a complete replacement for org-mode in Emacs. I am not sure that it can ever get there. If you are interested in the task management functions of Org mode, you should check it out. You might be surprised at how well EasyOrg works.

Bear Is Testing Out Panda

Panda is the editor component of Bear 2.0. It is an alpha implementation.

These are some of the features:

  1. Complete CommonMark support. (Fantastic).
  2. A lovely table-editor. (Yippee).
  3. Resize and crop images. (Why?).
  4. Sketch your notes. (Must be an iPad thing).
  5. Folding. (Yippee).
  6. Footnotes. (Great).
  7. Hidden Markdown syntax. (FFS. Why?).

I am decidedly in the minority when it comes to my reaction to the changes. Consumers have been bugging the developers for all of these features and Bear 2.0 is going to deliver.

Try the alpha out to get a feel.

nvUltra Hits Choppy Waters

nvUltra is the other program in beta. There were rumblings of the product nearing final release and then… crickets. I have no idea what is going on, but I am excited about nvUltra. I have been on the beta for a long while and can’t wait to share the details on the product with you.

Apple Don’t Do This

Dashword is an interesting program. Reminds me of an outliner called Tree. But it is at best an alpha implementation. The program crashes, refuses to launch, behaves erratically, and is a general pain to use.

It has promise. If the developer can iron out the bugs, this is going to be an instant purchase for me. However, at this stage, it should not be available in the App Store. Being in the App Store implies a certain basic level of usability. Dashword breaks that expectation. I know it is free, but the product should have been in private beta and not in the App Store.

My Goal

I will do a deep dive into some of these programs and write about them in detail. I am excited about it.

BTW, thanks for reading, and I am glad to be back.

macosxguru at the gmail thingie.

Thanks to Photo by cottonbro from Pexels

writing notetaking