SkillAgentSearch skills...

Vim.xlam

Vim experience in Excel: An add-in that brings Vim’s key bindings to Excel, enhancing navigation and efficiency.

Install / Use

/learn @sha5010/Vim.xlam
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

<p align="center"> <a href="https://github.com/sha5010/vim.xlam"> <img alt="vim xlam_banner" src="https://user-images.githubusercontent.com/95682647/175554011-5f9b5a37-a08d-47f7-ac63-b162620cc99d.png" width="600"> </a> </p> <p align="center"> <a href="https://github.com/sha5010/vim.xlam/releases/latest"> <img alt="release" src="https://img.shields.io/github/v/release/sha5010/vim.xlam"> </a> <a href="./LICENSE"> <img alt="license" src="https://img.shields.io/github/license/sha5010/vim.xlam"> </a> <a href="https://twitter.com/sha_5010"> <img alt="Twitter Follow" src="https://img.shields.io/twitter/follow/sha_5010?style=social"> </a> </p> <p align="center"> [English] [<a href="README_ja.md">日本語</a>] </p>

vim.xlam

Vim experience in Excel. This is an Excel add-in that allows you to use Vim keybindings within Excel.

📝 Description

vim.xlam is an Excel add-in designed to provide a Vim-like experience, allowing you to navigate and operate within Excel using keyboard shortcuts.

Designed with extensibility in mind, you can create your own methods and easily customize keybindings using the Map method. It's also designed to allow you to change keybindings easily from the default ones, so you can configure it to suit your preferences.

Demo:

demo

* Sample file courtesy of https://atelierkobato.com.

✨ Features

  • 🚀 Over 350 commands, launching in less than 0.1 seconds, significantly improving Excel productivity.
  • ⚡ Supports not only cell movement with hjkl, but also jump commands like gg, G, ^, $, and more.
  • 🎯 Vim features such as count specification, . repeat, jump lists, and visual mode, and more are recreated as faithfully as possible.
  • 💡 Command suggestion feature, making it easy to use by simply remembering a minimal set of prefixes.
  • 🎨 Custom ColorPicker, allowing you to select colors within 3 keystrokes.
  • 🗂️ SheetPicker for easy navigation and management, even with a large number of sheets.
  • 🛠️ Simple customization by writing a vimrc-like configuration file.

📦 Installation

  1. Download the latest vim.xlam from the Release Page (or directly download the latest version).
  2. Save the downloaded vim.xlam in C:\Users\<USERNAME>\AppData\Roaming\Microsoft\AddIns.
  3. Launch Excel, go to File > Options > Add-Ins, and click the Go... button at the bottom of the screen.
  4. Click the Browse... button, select the saved vim.xlam, and add the add-in.

| :exclamation: Attention | | ---- | | This project is currently under development. There may be frequent breaking changes during releases. Please check the release notes before updating. |

(Optional) Recommended Initial Setup

By default, the / key cannot be recognized by vim.xlam. You can enable it by following these steps:

  1. Click File in the Excel menu, then select Options.
  2. In the left panel, choose Advanced and scroll down to the Lotus Compatibility section near the bottom.
  3. Clear the Microsoft Excel menu key: field and click OK.

📘 Usage

  • As it automatically launches when added to the add-ins, enjoy the ultimate Vim experience in Excel!
  • Operations such as cell navigation/editing, adding/deleting rows and columns, setting colors and borders, etc., can be performed using assigned keys.
    • For a list of all implemented commands, refer to the table below.
  • Customization of settings and keymaps is also possible by placing a configuration file. See Customization for details.

⌨️ Default Keybindings

Primary Commands

| Type | Keystroke | Action | Description | Count | | ---- | --------- | ------ | ----------- | ----- | | Core | <C-m> | ToggleVim | Toggle Vim mode | | | InsertMode | a | AppendFollowLangMode | Edit cell from the end, following language mode for IME | | | InsertMode | i | InsertFollowLangMode | Edit cell from the start, following language mode for IME | | | InsertMode | s | SubstituteFollowLangMode | Clear and edit cell, following language mode for IME | | | Moving | h | MoveLeft | ← | ✓ | | Moving | j | MoveDown | ↓ | ✓ | | Moving | k | MoveUp | ↑ | ✓ | | Moving | l | MoveRight | → | ✓ | | Moving | gg | MoveToTopRow | Move to the 1st row or the [count]-th row | ✓ | | Cell | FF/Ff | ApplyFlashFill | Flash Fill (fallback to Auto Fill if not applicable) | | | Mode | v | ToggleVisualMode | Toggle visual mode (extend selection) | | | Border | bb | ToggleBorderAll | Set borders around and inside the selected cells (solid, thin line) | | | Border | ba | ToggleBorderAround | Set borders around the selected cells (solid, thin line) | | | Border | bia | ToggleBorderInner | Set borders inside the selected cells (solid, thin line) | | | Row | ra | AppendRows | Insert rows below the current row | ✓ | | Row | ri | InsertRows | Insert rows above the current row | ✓ | | Row | rd | DeleteRows | Delete the current row | ✓ | | Column | ca | AppendColumns | Insert columns to the right of the current column | ✓ | | Column | ci | InsertColumns | Insert columns to the left of the current column | ✓ | | Column | cd | DeleteColumns | Delete the current column | ✓ | | Delete | D/X | DeleteValue | Delete the value in the cell | | | Paste | p | PasteSmart | Paste after copying rows or columns; otherwise, send Ctrl + V | ✓ | | Paste | P | PasteSmart | Paste before copying rows or columns; otherwise, send Ctrl + V | ✓ | | Font | - | DecreaseFontSize | Decrease font size | ✓ | | Font | + | IncreaseFontSize | Increase font size | ✓ | | Color | fc | SmartFontColor | Show the font color selection dialog | | | Find & Replace | / | ShowFindFollowLang | Show the find dialog, following the language mode of IME | | | Find & Replace | n | NextFoundCell | Select the next found cell | ✓ | | Find & Replace | N | PreviousFoundCell | Select the previous found cell | ✓ | | Scrolling | <C-u> | ScrollUpHalf | Scroll up by half a page | ✓ | | Scrolling | <C-d> | ScrollDownHalf | Scroll down by half a page | ✓ | | Scrolling | zt | ScrollCurrentTop | Scroll to make the current row at the top (SCREEN_OFFSET pts of padding) | ✓ | | Scrolling | zz | ScrollCurrentMiddle | Scroll to make the current row in the middle | ✓ | | Scrolling | zb | ScrollCurrentBottom | Scroll to make the current row at the bottom (SCREEN_OFFSET pts of padding) | ✓ | | Sheet | e | NextSheet | Select the next sheet | ✓ | | Sheet | E | PreviousSheet | Select the previous sheet | ✓ | | Sheet | ww | ShowSheetPicker | Launch the Sheet Picker | | | Sheet | wr | RenameSheet | Change the name of the active sheet | | | Workbook | :w | SaveWorkbook | Save the active workbook | | | Workbook | :q | CloseAskSaving | Close the active workbook (show a dialog if there are unsaved changes) | | | Workbook | :q!/ZQ | CloseWithoutSaving | Close the active workbook without saving | | | Workbook | :wq/:x/ZZ | CloseWithSaving | Save and close the active workbook | | | Other | u | Undo_CtrlZ | Undo (send Ctrl + Z) | | | Other | <C-r> | RedoExecute | Redo | |

<details><summary>Expand all commands</summary><div>

| Type | Keystroke | Action | Description | Count | | ---- | --------- | ------ | ----------- | ----- | | Core | <C-m> | ToggleVim | Toggle Vim mode | | | Core | <C-p> | ToggleLang | Toggle language mode (Japanese/English) | | | Core | : | EnterCmdlineMode | Enter the Cmdline mode | | | Core | :reload | ReloadVim | Reload vim.xlam | | | Core | :debug | ToggleDebugMode | Toggle debug mode | | | Core | :version | ShowVersion | Show vim.xlam version info | | | InsertMode | a | AppendFollowLangMode | Edit cell from the end, following language mode for IME | | | InsertMode | A | AppendNotFollowLangMode | Edit cell from the end without following language mode for IME | | | InsertMode | i | InsertFollowLangMode | Edit cell from the start, following language mode for IME | | | InsertMode | I | InsertNotFollowLangMode | Edit cell from the start without following language mode for IME | | | InsertMode | s | SubstituteFollowLangMode | Clear and edit cell, following language mode for IME | | | InsertMode | S | SubstituteNotFollowLangMode | Clear and edit cell without following language mode for IME | | | Moving | h | MoveLeft | ← | ✓ | | Moving | j | MoveDown | ↓ | ✓ | | Moving | k | MoveUp | ↑ | ✓ | | Moving | l | MoveRight | → | ✓ | | Moving | H | MoveLeftWithShift | Shift + ← | ✓ | | Moving | J | MoveDownWithShift | Shift + ↓ | ✓ | | Moving | K | MoveUpWithShift | Shift + ↑ | ✓ | | Moving | L | MoveRightWithShift | Shift + → | ✓ | | Moving | <C-h> | MoveLeft | Ctrl + ← | | | Moving | <C-j> | MoveDown | Ctrl + ↓ | | | Moving | <C-k> | MoveUp | Ctrl + ↑ | | | Moving | <C-l> | MoveRight | Ctrl + → | | | Moving | <C-S-H> | MoveLeft | Ctrl + Shift + ← | | | Moving | <C-S-J> | MoveDown | Ctrl + Shift + ↓ | | | Moving | <C-S-K> | MoveUp | Ctrl + Shift + ↑ | | | Moving | <C-S-L> | MoveRight | Ctrl + Shift + → | | | Moving | gg | MoveToFirstRow | Move to the 1st row or the [count]-th row | ✓ | | Moving | gG | MoveToTopRow | Move to the first row of UsedRange or the [count]-th row | ✓ | | Moving | G | MoveToLastRow | Move to the last row of UsedRange or the [count]-th row | ✓ | | Moving | \| | MoveToNthColumn | Move to the [count]-th column | ✓ | | Moving | 0 | MoveToFirstColumn | Move to the 1st column | | | Moving | ^ | `MoveToL

Related Skills

View on GitHub
GitHub Stars140
CategoryDevelopment
Updated1d ago
Forks10

Languages

VBA

Security Score

100/100

Audited on Mar 26, 2026

No findings