TIL How to Execute an External Command in Vim and Reload the File

Or: How To Pipe The Current Vim Buffer Through Unix Commands In this post I will show you how to run a shell command from within Vim, and immediately reload that file. The Problem I write a Go file in (Neo)Vim. I want to use the command gofmt to format my file. Running gofmt will change the contents of my file, so I’ll need to reload my Vim buffer.
Read more →

TIL About Copying a Range in Vim

Today I learned about the copy command (alias t): :[range]co[py] {address} :co :copy Copy the lines given by [range] to below the line given by {address}.Let’s say we have a file like this: 1 line a 2 line b 3 line c 4 line d | You are on line d (symbolized with the | as the cursor). You want to copy from 1 to 3 (line a, line b, line c).
Read more →

Installing and Managing Vim Plugins With vim-packager

Vim is a customizable and fast editor. The ability to adapt Vim to your needs makes it a very powerful tool. Vim is for power-users and tinkerers. It uses less resources than modern alternatives like VS Code. You can use it without a mouse. That’s why you can edit text at “the speed of thought”. The editor’s basic functionality already covers a lot of ground. You can see it in action in this Youtube video:
Read more →

Tuesday Picks 006

Read more →

Some Vim Resources

Read more →

Vim Directories Navigation and Autocomplete File Names

Navigating files with Vim is cumbersome. The default settings and the inbuilt file browser netrw are not convenient. I use vim-picker to navigate in a project. vim-picker is a fuzzy file picker for NeoVim and Vim: To use vim-picker you need a program that can traverse your project with a fuzzy text selector. vim-picker will search the current working directory. That’s the folder in which you’ve opened Vim. The Problem You need to open Vim in the project root directory (most often the Git project root), so that you can use fuzzy file and text searching.
Read more →

TIL About How To Create Ordered Lists in Vim Quickly

Today I found a cool trick on the Vim SubReddit: how to quickly create ordered lists. Here’s a screen-cast by rnevius: Steps Let’s say that you have a list: one item another item it’s an item Use <C-v> (CTRL + V), then I to select all lines at the start of the line and add a 0. in front of each: 0. one item 0. another item 0.
Read more →

TIL Copy With Clipboard in Vim Over Ssh

Today I tried using Vim over SSH on a remote machine. I needed to copy some configuration to the server. I opened Vim in the terminal (via SSH): vim config.txt I wanted to paste into the Vim buffer. I tried to use the "+p command in normal mode to paste from the system clipboard. Unfortunately, that didn’t work. Solution: The “clipboard” is a feature of X11, so you will need to enable “X11 forwarding” for the SSH connection in “trusted” mode:
Read more →

Code Snippets With vim-vsnip

When you work with a language like Dart, you soon realize that you have a lot of boilerplate code. For example, here is the skeleton code for a stateless Widget in Flutter: class YellowBird extends StatefulWidget { const YellowBird({ Key key }) : super(key: key); @override _YellowBirdState createState() => _YellowBirdState(); } class _YellowBirdState extends State<YellowBird> { @override Widget build(BuildContext context) { return Container(color: const Color(0xFFFFE306)); } } A few code snippets would be helpful.
Read more →

TIL Paste From System Clipboard Into Vim in Insert Mode

Today I learned how to paste into Vim in insert mode (and normal mode). When I write my blog posts, I often have to refer to material from the internet: other articles, blog posts, or books. That means that I will have to copy the title and URL from the web and paste it into my Vim editor. First of all, the "* and "+ registers are for the system clipboard.
Read more →

TIL How to Jump to Matching Bracket in Vim

I’ve started using Flutter, the mobile SDK for the Dart language. Dart reminds of Java and JavaScript. It’s quite verbose. If you have nested functions and classes, it’s hard to find the matching brackets and parentheses. Sometimes the start of a function or class is not on your screen, and it’s hard to get a quick visual overview. There are plugins that color the brackets differently, for example, Junegunn’s rainbow_parentheses.vim or luochen1990’s rainbow.
Read more →

Tool: jupyterlab-vim

If you want to make JupyterLab more Vim-like, you can use Vim key bindings and install the jupyterlab-vim extension.

  1. Vim Key Bindings The notebook UI has the option to use Vim, Emacs, or the default key mappings. The documentation shows how. In my Docker image I create a json file to hard code these settings: File jupyter-codemirror-settings.json: { "keyMap": "vim" } Dockerfile:

previous setup - base image, working directory, etc.

Read more →

Lint Your Markdown Files in Vim

Why Should You Lint Markdown? Isn’t the syntax easy enough? There’s nothing that can go wrong. Right? The goal of some markdown linters is to offer a consistent style, and to avoid obvious mistakes (e.g., duplicated headings). Some plugins also provide help in improving your writing style. Linting in Vim ALE is a popular lint engine for Vim and NeoVim. ALE also offers interfaces for markdown linters. You can see a list of all supported plugins on GitHub.
Read more →

Setup Nim With Neovim

Use Neovim as your Nim IDE Why Nim? Nim is a statically typed compiled systems programming language. It combines successful concepts from mature languages like Python, Ada and Modula. 1 Nim resembles Python, but the language is significantly faster and statically compiled. Nim comes with meta-programming abilities (like a LISP). You can compile a Nim program into a stand-alone C binary that runs on every system.
Read more →

Suspend Vim to the Background or What Is Linux Job Control

Vim has an inbuilt terminal, which you can start with :terminal. That means that you don’t have to leave your Vim editor to run commands in the shell. Sometimes, it’s still useful. If you quickly want to switch to your shell, suspend the Vim editor with Ctrl+z. That sends the process into the background (on Linux). Now you have access to your standard terminal and can run commands. Type jobs or jobs -l to see a list of the background processes.
Read more →

How to Search in Vim

To search a file, type / (search forwards) or ? (search backwards) and enter the word. Normally, Vim will check for upper and lower letters. But you can set two different options in your configuration file (~/.vimrc or similar): set ignorecase or set smartcase Examples: pattern ‘ignorecase’ ‘smartcase’ matches ~ foo off - foo foo on - foo Foo FOO Foo on off foo Foo FOO Foo on on Foo \cfoo - - foo Foo FOO foo\C - - foo Other options:
Read more →

Vim Trick: Map CTRL+S to Save

Vim is very customizable. You can adjust key-bindings to your liking. For example, if you want to save a file, you’ll type :w or :up in command mode. But maybe you’re used to press CTRL+S to save a file? You could add a custom key-mapping to your configuration file (~/.vimrc or similar): nnoremap <silent><c-s> :<c-u>update<cr> The command works in normal mode. You can also bind CRL+S for other modes (visual mode and insert mode):
Read more →

Vim Undo And Redo

Today I learned about Vim undo and redo. Undo changes: in normal mode: u to undo latest change, U to undo all changes in Ex mode (command mode): :u to undo latest change Use :u {N} to undo a number of changes. For example, :undo 5 reverts the latest 5 changes. Redo changes: in normal mode: Ctrl+r in Ex mode: :re or :redo In Vim, undo is a tree:
Read more →

Pipe a Terminal Command to Vim

How can you run a command in your normal shell and then pipe it to Vim? A typical use case could be to run a find command and open the found file in Vim. Answer: You can use command substitution. vim $(find . -name example.txt) Here’s a useful command that I’m using now: nvim (fd | fzy) (I’m using fish as my interactive shell. Thus I don’t need to use $.
Read more →

Start Vim With Terminal Command

Today I learned that you can start Vim with a terminal command. Vim has the -c flag, which you can use for running an Ex command. The same is true for NeoVim, which also has an inbuilt terminal. So you can either start NeoVim inside the terminal like so: nvim +te or like that: nvim -c ':terminal' The second option allows you to run another command afterwards. Example: nvim -c ':terminal hugo server -D' Now NeoVim starts in terminal mode and runs my Hugo development server immediately.
Read more →

Setup OCaml With NeoVim

How to use the NeoVim text editor as your Ocaml IDE Why OCaml? I’ve always been interested in learning an ML language. But Haskell, the poster child of functional programming, has a high learning curve. OCaml and ReasonML (an alternative syntax for OCaml) are much more beginner-friendly. I started a free MOOC on functional programming with OCaml a few days ago. Thus, it’s the perfect time to set up my editor for OCaml development.
Read more →

Use A Lightweight Alternative to Vimwiki

As a Vim afficiando, you might use VimWiki as a solution for storing and organizing notes, to-do lists and journal entries. But VimWiki comes with some problems. It offers tons of features, but also heavily modifies your Vim installation. VimWiki overwrites common behavior, duplicates some functionalities, and can be hard to integrate with other plugins. Here are some alternatives to Vimwiki: Built-In Vim Joe Reynolds wrote an excellent article about managing notes and to-dos without plugins.
Read more →

Run Macro On Multiple Lines in Vim

Modern editors like VS Code or Sublime Text can use multiple cursors to edit code on more than one line. Vim doesn’t offer this functionality out of the box. But you may not need it. Today I learned how to run a macro to edit several lines in Vim. The method is useful when you have a similar structure on several lines, for example: <li class="link">About</li> <li class="link">Blog</li> <li class="link">Works</li> Add the script visual-at.
Read more →

Friday Picks 023

Read more →

Minimal Vim

Yesterday I trimmed down my vimrc - the configuration file for Vim. I admit that I can’t live without some plugins. So a “minimal Vim” is probably not possible for me. But if you’re interested, here is a good start: " Suggested Minimal Settings For Programming " Enabling filetype support provides filetype-specific indenting, " syntax highlighting, omni-completion and other useful settings. filetype plugin indent on syntax on " matchit.vim is built-in so let's enable it!
Read more →

Personal Knowledge Base with Vimwiki

What is VimWiki? VimWiki is a personal wiki for Vim. Thus, it’s ideal for a personal knowledge base. With VimWiki you can: Organize notes and ideas Manage to-do lists Write documentation Maintain a diary Export everything to HTML We can use VimWiki as a powerful note-taking tool, which integrates well with an existing coding workflow in Vim/NeoVim. How? Install VimWiki with your favorite package manager. For example, with minpac:
Read more →

Friday Picks 020

Read more →

Awesome Elixir Newsletter Mention

Read more →

ReasonML Development With Vim

Vim is my favorite editor, and I prefer it over VS Code. (Neo)Vim offers a light-weight, fast experience where I can quickly navigate via keyboard shortcuts and use the terminal to its fullest. Reason offers superb editor support for Vim. From the vim-reason-plus README: To have the complete Vim/Neovim Reason experience, there are two plugins to install: [vim-reason-plus], and the language-server. [vim-reason-plus] provides syntax highlight, snippets for Reason and allows related features to recognize the Reason syntax.
Read more →

Friday Picks 017

Read more →

Playing Around in Vim

I’m trying to improve my VIM configuration. Customizing Vim to your needs can be a never-ending story. Over the last few months, I have collected several plugins and settings. And from time to time, I try to prune them or replace them. I also enjoy reading about other people’s setups. After reading the blog post Dumb Elixir VIsual (and IMproved) editor, I’ve switched some packages. I’ve also played around with language servers in Vim.
Read more →

NeoVim and LanguageClient for Elixir

Yesterday I installed LanguageClient-neovim for NeoVim. This tool adds Language Server Protocol support for NeoVim (or Vim8). It helps with autocompletion, code formatting, code definitions, and offers other features as well. LanguageClient-neovim Installation With minpac: call minpac#add(‘autozimu/LanguageClient-neovim’, {‘rev’: ‘next’, ‘do’: ‘!bash install.sh’}) In Neovim, run the following command afterwards: :UpdateRemotePlugins elixir-ls Installation You have to install a language server for each language you want to support and then configure the plugin.
Read more →

Vim: Delete Until Word

Today I found a useful reddit thread: r/vim Delete until word Type d/<word> and it will delete until that word. Also: A truly mindblowing thing is the concept of search-offset (:h search-offset). By specifying modifiers like e, s, +, - etc at the end of the search command you can specify how much of the match is to be included. For example c/word/e changes till the end of word. Similarly d/word/s+2 deletes till r of word.
Read more →

Played Around With Svelte Tooling for VIM and ESLint

Today I listened to the Localhost.fm Podcast. The most recent episode with guest Chris Ferdinandi inspired me to take a look at Svelte.js again (as an alternative to React.js). So I played around a bit today and got stuck on my tool chain. Oops. I updated my blog posts about Prettier and ESLint for Svelte.js and Vim and Svelte.js. There were still some errors with ESLint thanks to missing parser options.
Read more →

TIL: Jump to Next Paragraph in Vim

Read more →

Friday Picks 013

Read more →

VIM: Use Visual Block

Yesterday I wanted to insert a character at the start of each line. Vim doesn’t have multiple cursors like some popular text editors (VS Code, Sublime Text). But sometimes you don’t need more than one cursor. For example, you can use Visual Block to select some text. Select text with visual mode by pressing ctrl+v. Now, you can either insert text with capital I or you can type c to change text.
Read more →

Free Book: Boost Your Coding Fu with VS Code and Vim

I started my coding journey with the editor Sublime Text. I then tried different editors, for example, Atom and brackets. For Clojure, there was Lighttable. It is a beginner-friendly editor with built-in REPL. In 2018, I switched to VS Code, because I heard so many good things. And I must say, that VS Code is an excellent program. It offers a lot of features out of the box. And the community support is superb.
Read more →

History of VIM

Read more →

VIM: Open a File In a Web Browser on Linux

Today I learned two neat tricks for Vim: Put your cursor on a link (in normal mode), and type gx. This will open the URL in a browser window. What if you want to open a file in a web browser? On Linux, you can type :!xdg-open % to open the current file in the default browser. (On a Mac, just type :!open %) If you want to make sure that your file is saved, you can first update the file and then pipe it through xdg-open:
Read more →

Vim: E117: Unknown function: styledcomplete#CompleteSC

My .vimrc is full of customizations. Like many others, I’ve set options, added plugins, and wrote custom key bindings. All these personalizations make it hard to debug when something goes wrong. Everyone has their own VIM. Very few people use VIM out of the box. It’s difficult to troubleshoot problems. Plugins don’t work well together, the wrong options bungle up your configuration, or your operating system is the culprit. Autocompletion, Language Support, and Styled Components Lately, I was getting this error:
Read more →

Vim: Close All Other Buffers

I emphasize using buffers over tabs in VIM. Buffers are the ideomatic way of using VIM. You can read more about that here: Vim Tab Madness. Buffers vs Tabs. I customized my settings with some features, which I copied from Josh Davis’s post above: " This allows buffers to be hidden if you've modified a buffer." This is almost a must if you wish to use buffers in this way.set hidden" Close the current buffer and move to the previous one" This replicates the idea of closing a tabnnoremap <leader>bq :<c-u>bp <bar> bd #<cr>" Show all open buffers and their statusnnoremap <leader>bl :ls<cr>I also use Tim Pope’s vim-unimpaired.
Read more →

Vim: Create a Directory

Let’s say that you create a new file in a buffer: :e src/components/header/header.component.jsxWhat happens if you didn’t create the header directory first? E212: Can't open file for writing: no such file or directory What now? You can still create the directory and save the file. In NeoVim, you can use the inbuilt terminal to issue the following command: :!mkdir src/components/header That’s not very convenient. There’s a shorthand syntax: :!mkdir -p %:h Slightly better.
Read more →

Vim Movement: Some Links

Here are some links I found useful to level up my VIM skills: Fast movement and navigation inside Neovim Traversing text in Insert mode I’ve been switching between Vim and VS Code the last few days. So far, I’m happier with Vim. I know the key bindings and can move between different files quickly. With VS Code, it’s less convenient, and I fall back on using the mouse. This slows me down.
Read more →

Weekly Progress Report 26 2019

Nest.js I’m still smitten with Nest.js, a Node.js framework with TypeScript support. Here are some resources to get started with Nest.js. Vim vs. VS Code I’m giving VS Code another chance. So far, I’m not amused. I’m already too accustomed to my VIM workflow , and it’s a hassle to set up all my preferred key mappings. Some plugins offer excellent language support out of the box (e.
Read more →

Giving VSCode Another Try

I’ve been reading posts on dev.to lately to stay up to date. I follow a few writers there, for example, Jaime González. Like me, Jaime is a big VIM fan and has even written two books about VIM. Jaime doesn’t use VIM or NeoVim out of the box but customizes VSCode to use VIM keybindings. I’m happy with VIM. It’s blazingly fast, and editing in modal mode is powerful. But some convenience features like automatic imports, re-factoring help, etc.
Read more →

Stop Worrying About Formatting And Linting JavaScript With prettier-standard

ESLint and prettier As a developer and VIM enthusiast I heavily rely on tools to fix my code. I just want to write, and let the program worry about making it adhere to code standards. Furthermore, I would like to see linting errors. There are some well-known tools for JavaScript, for example ESLint. ESLint is an open-source project by Nicholas C. Zakas which analyzes your code and looks for problematic patterns.
Read more →

Friday Picks 005

Read more →

Friday Picks 004

Read more →

Vim and Svelte.js

Yesterday I explained how you can add linting and formatting support for Svelte.js with ESLint and Prettier. But how can you integrate it into (Neo)Vim and ALE?

  1. Installation Follow the steps here to get up and running with ESLint and Prettier. Install ALE with your favorite Vim plugin manager (I use minpac). optional: Install burner/vim-svelte for syntax highlighting. 2. Configuration There is no native support for .svelte files but you can define an alias.
Read more →

Navigate Vim With Windows, Tabs and Buffers

First of all, prefer buffers over tabs. Josh Davis wrote a comprehensive blog post which explains why: Vim Tab Madness. Buffers vs Tabs. I followed Josh’s Solution #1 and added support for visualizing opened buffers with lightline-bufferline and added a key mapping for closing a buffer and moving to the previous buffer: " Close the current buffer and move to the previous one " This replicates the idea of closing a tab nmap <leader>bq :bp <BAR> bd #<CR> I also use Tim Pope’s vim-unimpaired which already ships with shortcuts to move between buffers with [b and ]b.
Read more →

Friday Picks 001

Read more →

Working With Vim

Read more →

Vim: Working Directory Autocompletion and File Finding from Project Root

Update: I now use an updated setup without extra plugin. You can find the new post here. When working with Vim, I open the editor from the project root. This is the parent directory which also contains the .git directory. For file navigation, I heavily rely on fzf.vim. Opening Vim from the root directory means that I have access to all project files via FZF. I mapped the command to <ctrl> + p (VS Code) and can find the file I would like to edit.
Read more →

Vim autocomplete with ALE

ALE is a plugin that offers essential support for my coding workflow in Vim. ALE helps with linting and fixing the code you write. I also use ALE’s autocomplete function, as described in the blog post VIM: Better “Go to definition” and completion using ALE. However, my NeoVim doesn’t want to play nice and sometimes inserts suggestions that I don’t want. For example, when I type state. in a JavaScript file, it automatically completes to state.
Read more →

Vim Indent

I try to learn something new everyday but sometimes there are no big aha moments. That’s why I’m falling back to writing a boring Vim post. I’m sorry. Today I wanted to indent a code block. Normally, I heavily rely on auto-formatting with ALE. ALE auto-formats my code up to the language’s standards. Still, I wanted to know how to indent a whole block of code. For this, the plugin vim-indent-object proved to be useful.
Read more →

How I Learn Vim

Just today, I read an article Getting Productive with Vin in a Week without Hating It. Kudos to the author, Nick Janetakis, for coming up with a great title. The article chronicles Nick’s journey of learning to use Vim. My experience mirrors his. I’m also the type of person who enjoys jumping into new things. When I decided to switch to Colemak instead of classic QUERTZ/QUERTY keybindings, I went cold-turkey. That was painful for a while, but I’ve now totally retrained my muscle memory.
Read more →

VS Code Key Binding Frustrations

Today I switched back to the open-source editor Visual Studio Code. But I realized that I can now work better with Vim! I have my custom key bindings which flow naturally. You can edit settings in VS Code but some are hard to change. They are too deeply baked into the core functionality. A lot of key combinations are already taken or are used by different extensions. For example, I use nvim-typescript for TypeScript language support.
Read more →

Dart Support for Vim with dartfmt, ALE and Language Server Protocol

Updated on 2020-04-17. Here’s how to get language support for the Dart language in (Neo)Vim. Tools Needed I assume that you installed (Neo)Vim and the Dart language. For example, Arch has a community package that easily installs dart with your package manager of choice. Additional tools: ALE or a different plugin with Language Server support dart_language_server Vim Polyglot OR dart-vim-plugin (for general language support) (optional) VimCompletesMe or a different auto-complete plugin 1.
Read more →

Neoterm Autoscroll

neoterm is a terminal wrapper for the inbuilt NeoVim terminal. It offers some convenient shortcuts and also comes with REPL integration. Unfortunately, sometimes the terminal doesn’t show the command prompt if you have a lot of previous output. There is an easy option to fix that: Set g:neoterm_autoscroll to 1. When set to 1 neoterm will scroll to the end of its buffer after running any command or using :TOpen for when the terminal is hidden.
Read more →

NeoVim After 10plus Days

I got bitten by the Vim bug at the beginning of March. I can’t exactly remember why and how. I spent some frustrating first days with this editor. I switched back and forth between (Neo)Vim and VS Code with Vim keybindings. I invested hours of research and practice to change my NeoVim config. Perhaps it would have been more useful to stick to VS Code. But. But I love Vim. Using text objects, the different modes and the right plugins feels very powerful.
Read more →

Installing Nvim-Typescript

Nvim-TypeScript adds TypeScript support for NeoVim. Why Nvim-TypeScript instead of Tsuquomi? The author answers the question on github: tsuquyomi requires vimproc currently, which can be slow for larger projects. Sine this plugin uses neovims remote plugin, I can write the tsserver in a python process instead, which is much faster. Almost no viml. Since this is an remote plugin, almost all of the entire setup can be done using python instead.
Read more →

Developing with Elixir in Vim

Using (Neo)Vim is surprisingly enjoyable after the initial hurdle. Language support for Elixir also works fine in Vim. Plugins I use minpac as my package manager. VimCasts has a good introduction video on minpac if you’re interested. Add these plugins to your ~/.vimrc: elixir-editors/vim-elixir optional: tpope/endwise for automatically adding end after def, do, etc. optional: dense-analysis/ale for fixing and linting files Configuration: " in .vimrc or ~/.config/nvim/init.vim syntax on filetype plugin indent on set laststatus=2 set wildmenu Elixir Language Server You need the Elixir Language Server as a backend/integration tool.
Read more →

EsLint and Prettier for JavaScript/React in Vim

These are the plugins and settings that I use for JavaScript/React.js-development with (Neo)Vim. Vim Plugins I use minpac as my package manager. VimCasts has a good introduction video on minpac if you’re interested. Useful plugins: pangloss/vim-javascript MaxMEllon/vim-jsx-pretty w0rp/ale Optional: sheerun/vim-polyglot ternjs/tern_for_vim If you use tern.js you need to install the npm package, too. Installing NPM Packages and Setup I use ESLint and Prettier. If you use Create React App skip the ESLint installation because it doesn’t play nice.
Read more →

Opening, Saving and Deleting Files in Vim

If you want to open a new file in the same directory as the current file: :e %:p:h/name-of-new-file.md:e for edit (opens a file) %:p:h for the current directory and the head of the file name If you want to save the current file under a new filename (“Save as”) in the same directory: :sav %:p:h/name-of-new-file.mdIf you want to delete a file, you can use !rm. But that means that you have to know the exact path and file name.
Read more →

Powerful Keymaps in VS Code Vim

Today I learned that you can remap Vim keys with VS Code. In my NeoVim config I have some custom keybindings that I can now replicate with VS Code. The official VSCodeVim documentation has some examples: In this example, you bind jj to <esc> in insert mode: "vim.insertModeKeyBindings": [ { "before": ["j", "j"], "after": ["<Esc>"] } ] The docs also have some nifty VSCodeVim tricks that you might want to check out.
Read more →

VS Code and Vim

Read more →

Fira Code Font Ligatures in Emacs/Spacemacs on (Arch) Linux

I’m playing around with editors. It seems like some Elixir people use Spacemacs instead of Vim for their needs. Spacemacs is an Emacs distribution that comes with default configuration and (optional) Vim keybindings - the best of both worlds! I dabbled in Emacs a while ago when I learned Clojure. But the keybindings were mind-boggling. Even more insane than Vim. So, lets set up Spacemacs with Fira Code Font Ligatures.
Read more →

Vim With Eslint and Prettier for Javascript

As I’m experimenting with Vim/Neovim, I realized how much I rely on Prettier and ESlint for taking care of my JavaScript syntax. But how can I have that with Vim? It doesn’t come out of the box. I found a useful article that walks you through installing it for Vim. It uses the ALE Plugin. ALE offers linting support for many languages, not only JavaScript. The official documentation for the Vim Setup for Prettier is also worth a look.
Read more →

Use the Terminal From Neovim and Vim is Hard

When you type in : you can run commands in Vim. And when you run :! you can run terminal commands. For example, :!ls gives you a list of the current directory. In Neovim, you can also start a shell with :terminal. What I don’t like about Vim is how hard it is to find out how to get “convenience features”: linting, finding the right files, plugins, etc. The number of keyboard shortcuts and commands seems endless.
Read more →

Learning (Neo)Vim

I use Visual Studio Code as my main editor at the moment. It offers great in-built features and because of its popularity, you can also enhance it with many plugins. I love it. I used Sublime Text before, but as of 2019, it can’t hold a candle to VS Code. And then… Vim??? Vim is ubiquitous. It’s on every Linux machine and I can easily use it with my Raspberry Pi computers.
Read more →