24 Outputs
in Mizaru

Added some demo-able things:

- Placeholder for empty document so you know you can type something in the blank space
- Quick dark mode that hooks in to system preferences
- Added basic vertical rhythm so headings, paragraphs, etc. have some room to breathe

in Mizaru

I wasn't handling line breaks and blank lines so I added in some logic to account for both those cases. It got tricky when an inline mark (bold, emphasis, etc.) was split because line breaks are valid in markdown.

__foo bar

Even though it's unlikely I will split bold text across lines like this, someone might. I think it's important to spend extra time right now to get the little details right.

The editor also handles backlashes better than before too. Adding backlashes or escaped characters (\@) shifted the showing/hiding syntax off track before.

in Mizaru

Finally finished updating the parser. Now I have more robust support for complicated markdown variants like heading closing sequences and leading characters.

in Mizaru

Switching from marked to remark for parsing markdown since it's more flexible and marked had a couple annoying bugs, like mangling emails.

This will take a few days so nothing to show in the meantime. Need to make the foundation strong.

in Mizaru

Finish a basic implementation of headings. Headings can contain marks instead them. Heading syntax disappears when the cursor is focused on a different line.

in Mizaru

Got carried away today and did something unnecessary: I named it and designed a landing page. It was fun, but doesn't matter. I'm building this for myself.

in Mizaru

Late last night I added delete/update markdown. Even though the implementation is a little greedy, it felt great to finish it in much less time than I was expecting.

Today, I made some more improvements to nested marks (i.e. bold inside italic) and added support for links: markdown-syntax, autolinking, and email detection.

Part of my brain is nervously waiting for something to spring up that halts progress. There are already some small bugs, but nothing show stopping. I can fix them later.

in Mizaru

I started building a notes app for myself.

All the notes apps I've used in the past (iOS Notes, Notational Velocity, Simplenote, Notion, Roam) never quite did what I wanted. I'm a software engineer so figured I might as well try to build a tool I use everyday.

Right now I'm focused on building the editor and haven't thought much about anything else. The goal for the editor is to combine markdown syntax and preview. Syntax shows up when you need it to, and disappears when you don't.

Beyond that I'd like it to be ridiculously performant, work offline, and automatically create a new daily note every day that you can start dumping your thoughts into.

It's unlikely that it ever supports collaboration, tables/databases, slash commands, etc. Those things are for the enterprise and teams or non-technical users. This app is just for me.

in Vim

My current reference sheet I have a bunch of commands on that I’m trying to memorize or reference frequently.

in Vim

I started using vimwiki to keep track of things I learn while I'm coding. I can quickly open it, and jot something down or reference a previous note. This is super useful because it's in my terminal with vim, tmux, and friends.

Not sure how I'm going to use this log going forward now. I love how helpful it's been, but don't want to duplicate knowledge in two places.

in Bike

Got the bike out of the garage. It was hiding behind some stuff. I walked it outside and took some pictures. Everything looks "okay" (nothing is bent or visually off), but I'm not an expert.

There wasn't a lot more I could do with the bike today so I headed to my computer for research. I started an channel to capture links, videos, and pictures. I'm just trying to learn anything right now. I feel like I'm trying to keep my head above water.

I learned why the bike is a ten-speed. Two gears in the front times five gears in the back.

in Vim

I've used folds sparingly so far because I didn't really know how to use them. Earlier today, I had to edit a really large JSON file and it was a pain to navigate so I decided I should try out folding it.

All I had to do was add set foldmethod=syntax to my vimrc and I was off! I previously installed vim-polyglot so it was an extra bonus that it brings in syntax files on-demand to help with folding.

in Vim

One of the side effects of how I use Vim is a lot of buffers are opened. I'll make some edits, then switch to a new file, keeping the buffer open, either in the background or foreground.

Once they start piling up, it's a paid to open the buffer list, navigate to each buffer, and close them all. I thought there had to be other people with this problem and found a plugin that takes care of it for me. close-buffers.vim give me the ability to interactively select buffers to close, close all hidden buffers, and several other options.

in Vim

I just used my first Vim macro!

I knew they were super powerful, but I was avoiding them because the seemed like something hardcore Vim users used. I don't think I'm hardcore (yet). I've only used Vim for a month and a half!

Anyway, I was working in Patreon's code base and had to internationalize a bunch of strings so I recorded a macro to change 'some string' into __('some string'):


Now whenever I call @d, I save a few seconds.

in Vim

My vimrc was getting disorganized after tinkering with it over the past month so I organized it into sections: Plug General, Appearance, Key Mappings, Leader Commands, Plugins, Coc, Autocommands, Commands, and Functions.

These sections are pretty self-explanatory, except I separated out "Coc" into it's own section out of "Plugins" because it has a bunch of extra configuration.

I also added a foldmethod comment (" vim:foldmethod=marker) so all the sections are collapsed when I open up my vimrc to change something.

in Bike

This is a picture I took almost a year ago of my dad's old bike before my family moved out of the house we grew up in. My dad passed away from cancer in 2007 when I was 14. I've spent a lot of time over the last year trying to sort through my emotions and feel more connected to him.

Now that I'm back in the suburbs — and out of NYC — for a while, I figured I would try to fix up his bike. I know very little about bikes, other than how to ride them so not sure what to expect. I think certain parts, like spokes, are expensive. Once the rain lets up, I'll take it out of the garage for an inspection.

Until then, I'm going to spend some time researching bikes. Found out that this one is a Fuji 10 speed and bookmarked this article to read tomorrow.

in Vim

Switched from vim-yoink to YankRing. Originally I discounted YankRing because the project was so old and didn't have any recent commits, but it appears to work okay (famous last words).

The thing I like about it that vim-yoink doesn't have is it allows you to view the entire clipboard with the YRShow command (I mapped to <Leader>y) and select one of the yanks to paste.

in Vim

I use Alfred's built in clipboard history manager to cycle through different things I've copied, but it didn't work well with Vim. Formatting was messed up and my system clipboard picked up some Vim operators I didn't care about (mostly x).

I could have spent more time configuring, but for now I decided to go with vim-yoink, which "automatically maintain[s] a history of yanks that you can choose between when pasting." It even works with the system clipboard!

in Vim

When I was writing a blog post in Vim, I wanted to turn on spellcheck and change a few other settings so I learned that I could use an autocommand to apply settings based on the open file type.

autocmd FileType markdown setlocal signcolumn=no spell textwidth=80 colorcolumn=+1

in Vim

I found myself wanting a way to run things on the command line while using Vim so I decided to try out tmux. Like Vim, I had come across tmux before, but never found it that useful.

Now, I almost exclusively run Vim in tmux. With the vim-tmux-navigator plugin, you can quickly jump between Vim splits and tmux panes too.

Typically I will use two tmux panes. One on the left running Vim and one on the right for executing build scripts or tests. It's nice coding and seeing the results nearby.

in Vim

Vim has a powerful ecosystem of plugins that do almost anything. I wanted to carefully approach installing plugins when I first started so I didn't end up with too many. My goal was to make Vim a little more like the IDEs I'd grown used to since I started programming.

With that in mind, I installed a plugin manager, vim-plug, and added a few to try out. By far the most useful plugin is coc.vim. I mentioned coc before in the output on snippets a couple days ago. It also powers my autocomplete, formatting, etc.

A close second to coc is fzf.vim, which allows me to open files and search code. I extended it to include a nice preview using bat and search really quickly with ripgrep.

Not all Vim plugins adds functionality. My color scheme is also a plugin! I'm using jellybeans. Vim is infinitely configurable and you can often find a plugin to help make a task easier or faster.

in Vim

The first day I started using Vim, I configured a bunch of basic settings that are mostly unchanged today.

They are the foundation of my vimrc. Simple things like showing line numbers (set number) and the current mode (set showmode), and converting tabs to spaces (set tabstop=4).

I also disabled the arrow keys to force me to use hjkl for everything. Here's what my vimrc looked like back then.

in Vim

I'm a month or so into learning Vim so thought I would start documenting the journey. It's a shame I didn't start recording from the beginning — since I learned a lot — but here we are now. Over the next few days, I'll catch Futureland up to speed, using my Git commit history. Today, I thought I would talk more about the motivation for learning Vim and how I got started.

Vim is a text editor for efficiently creating or changing text. It's popped up every so often since I started programming, but I always dismissed it. After feeling bored with VS Code and seeing a coworker use Vim. I decided I would explore making the switch. I could try it for a week and retreat to the comfort of VS Code if it wasn't for me.

I started on February 25, 2020 with an article on configuring Vim to play nicely with JavaScript. I wanted to make sure I could get an autocomplete, linting, etc. going before committing. Next, I did a few videos a day from Thoughtbot's Onramp to Vim course. After about a week of watching videos, reading blog posts, and using Vim for programming every day, I was hooked.

I wish I started learning Vim 10 years ago! There are not many things I can say that about.

in Vim

In the last output, I said the next few would focus on documenting everything I learned before I signed up for Futureland. I lied. I'm learning too much, too quickly. Instead they will be a mix of previous learning and new stuff.

Now for some new stuff. Snippets. coc.vim, the ["Intellisense engine"] I'm using, includes an extension for code snippets. I’ve always wanted to use  snippets to speed up development (by reducing the amount of code I need to write) but never wanted to invest time in building up a repository of them.

With coc-snippets, I can take advantage of existing third-party snippet definitions. I already added a couple: vim-es2015-snippets and vim-react-snippets that are speeding things up.

Can you share some intel on how you buil...
Love the alliteration, why not have a la...
link to that project: https://futureland...
Thanks! Wish I started documenting earli...