The Comprehensive Guide to Using Neovim with LSP and Treesitter on Windows Without Admin Rights

Warning Use this information at your own risk. TL;DR Easier way: Sideload nvim-win64.zip to your work machine by uploading and then downloading from your Github (or Gitlab or BitBucket) account. Use vscode-neovim to embed a real Neovim instance inside Visual Studio Code (vscode). This is the approach I recommend. The Good: Out of the box LSP support from vscode vscode plugins are available leap.nvim works in vscode-neovim: ...

December 24, 2022 · 9 min

legendary.nvim: Execute Keymaps in Vscode's Command Palette Style

TL;DR Use legendary.nvim to execute keymaps, commands, and autocommands in Vscode’s Command Palette style. Using legendary.nvim to excute seldomly used commands like comment-box.nvim. Introduction There are commands that I don’t use frequently, but when I need them, I forget them. Before legendary.nvim, I used which-key.nvim. I never had the patience or the memory to go through each level of the popup window to execute the command I want (is it <leader>, g, or <leader>g?). ...

December 23, 2022 · 1 min

Blocking Distractions with OpenDNS in Linux

TL;DR Use OpenDNS, StevenBlack/hosts, LeechBlockNG to stop yourself from wasting time online. Introduction I’m a sucker for distractions. Before switching to Linux, I was using FocusMe and Cold Turkey to block distractions. They’re amazing for they could completely take control of my machine: I’d not been able to circumvent the block and go on YouTube or even launch mpv. Given I’d switched to Linux, it’s impossible to do so, so I had to resort to the following tools. ...

September 4, 2022 · 2 min

leap.nvim: Next-gen Motion Plugin for Neovim

TL;DR Use leap.nvim to jump to anywhere in the window with fewer than 4 keystrokes. Jumping order: AddWatchFlags (line 11) -> IntoApp (line 5) -> unix (line 17) -> InputDevice (line 8) Introduction leap.nvim is the next-gen motion plugin. I used vim-sneak and easymotion but leap.nvim is next-level smoothiness and intuitiveness. Vim/Neovim makes me wonder how I edited code with vscode before. leap.nvim makes me wonder why I spammed JJwww and kkkkbbb to move around the window. ...

August 31, 2022 · 1 min

The Comprehensive Guide to Typing Cangjie (倉頡三代) on Linux Using fcitx5 and rime

TL;DR Install the packages pacman -Syu fcitx5-im fcitx5-rime Copy cangjie-system/rime-cangjie-integrated to fcitx5’s location: git clone https://github.com/cangjie-system/rime-cangjie-integrated ~/.local/share/fcitx5/rime/rime-cangjie-integrated cp ~/.local/share/fcitx5/rime/rime-cangjie-integrated/*.yaml ~/.local/share/fcitx5/rime/ Create the following file: touch ~/.local/share/fcitx5/rime/default.custom.yaml Add the following to default.custom.yaml to tell fcitx5 to use cangjie: patch: schema_list: - schema: cangjie Set the following environment variables via /etc/environment: QT_IM_MODULE=fcitx QT_IM_MODULES="wayland;fcitx" XMODIFIERS="@im=fcitx" Log out and then log in ...

August 28, 2022 · 3 min

It's high time for Sway (Wayland)

TL;DR I think Wayland is ready for daily use if you don’t have a machine with Nvidia. Introduction I switched from Windows to Linux on 2021-10-06, so my Linux experience is < 1 year. Previous Linux experience WSL VirtualBox with Ubuntu 20.04.4 Linux journey Manjaro with Gnome Desktop since 2021-10-06: Manjaro with i3-gap since 2021-10-19: Switched to Sway since 2022-07-19. Current config: ...

August 27, 2022 · 2 min

Obsidian, Notion, Roam Research? Obsidian for the Vim Experience

TL;DR Use Obsidian instead of Notion or Roam Research if you want a Vim-like experience as much as possible. Introduction Obsidian, Notion and Roam Research are the three big players in Personal Knowledge Management system (PKM). I won’t bore you with the introduction because you can find plenty online. I’ve used Obsidian and Notion extensively, and finally settled down on Obsidian. Why Obsidian? I’m a (neo)vim die-hard user. With Obsidian it’s possible to emulate vim experience as much as possible with: ...

August 24, 2022 · 2 min

tmuxp - A session manager for tmux

TL;DR Use tmuxp so that you don’t have to re-create the same sessions, windows and panes every time you restart your machine. Introduction Previously I was using tmux-resurrect (persists tmux environment across system restarts) and tmux-continuum (continuous saving of tmux environment), but these lack finer control as to which sessions to restore. Getting Started pip install --user tmuxp Make sure tmuxp is installed: ❯ tmuxp --version tmuxp 1.13.0, libtmux 0.14.0 Create the following in ~/.config/tmuxp/main.yaml: session_name: main windows: - window_name: zsh panes: - shell_command: - neofetch - echo hello - window_name: nvim panes: - nvim tmuxp load main When I restart my machine, I do tmuxp load main misc nvim to restart all my sessions. ...

August 18, 2022 · 1 min