vim-singlechar/README.md
lohhiiccc 8596234462 docs: add vim-repeat integration details to README and help
- Update README.md with instructions and notes for vim-repeat (`.`) support
- Update doc/singlechar.txt: add requirements, usage, and tips for vim-repeat, including installation and dot-repeat behavior
2025-08-19 11:17:17 +02:00

85 lines
2.4 KiB
Markdown

# vim-singlechar
A simple Vim plugin that lets you insert single characters without leaving normal mode.
## Overview
`vim-singlechar` allows you to quickly insert characters while staying in normal mode.
## Features
- Insert characters at or after the cursor position
- Support for counts to insert a character multiple times
- Stay in normal mode for efficient editing
- Minimal workflow interruption
- Works with Vim 9+
- **Supports [`vim-repeat`](https://github.com/tpope/vim-repeat) for `.` repeat functionality**
## Installation
### Manual installation
```bash
cd /tmp
git clone https://github.com/lohhiiccc/vim-singlechar.git
mkdir -p ~/.vim/pack/plugins/start/
cp -r vim-singlechar ~/.vim/pack/plugins/start/
cd -
```
### Optional: Install [vim-repeat](https://github.com/tpope/vim-repeat)
For seamless repeat (`.`) support, install [vim-repeat](https://github.com/tpope/vim-repeat):
```bash
mkdir -p ~/.vim/pack/tpope/start
cd ~/.vim/pack/tpope/start
git clone https://tpope.io/vim/repeat.git
```
## Usage
By default, the plugin provides two mappings:
- `<Leader>i` - Insert a character at the cursor position
- `<Leader>a` - Insert a character after the cursor position
After pressing the mapping, you'll see a prompt asking for the character to insert. Press any character and it will be inserted without entering insert mode.
### With count
You can use a count before the mapping to insert the character multiple times:
- `3<Leader>i,` will insert three commas at the cursor position
- `5<Leader>a.` will insert five periods after the cursor position
### Repeat last insert with `.`
If [vim-repeat](https://github.com/tpope/vim-repeat) is installed, you can repeat the last character insertion with `.` in normal mode.
## Configuration
You can customize the plugin by setting these variables in your vimrc:
```vim
" Change the mappings (before loading the plugin)
let g:singlechar_map_insert_at = '<Leader>i' " Default
let g:singlechar_map_insert_after = '<Leader>a' " Default
" Change the prompt message
let g:singlechar_prompt = 'Press the character to insert - Press Esc to cancel...' " Default
" Disable default mappings (if you want to create your own)
let g:singlechar_no_mappings = 1
```
## Commands
The plugin provides these commands:
- `:InsertCharAt [count]` - Insert a character at the cursor position
- `:InsertCharAfter [count]` - Insert a character after the cursor position
## License
MIT Licens