Skip to content

Commit

Permalink
vim9script Port of vim-unimpaired
Browse files Browse the repository at this point in the history
- Expose most of the functions used for map building through autoload so
  that others can more easily add maps in the same manner without
  copying code.

- Incorporate tpope#230, tpope#228

- Use <ScriptCmd> instead of `:<C-U>`, which required some rethinking
  because of the use of `<C-R>=`.

- Added additional maps from
  - phongnh/vim-toggler: conceallevel, showmatch, incsearch, expandtab,
    showcmd
  - riceissa/vim-more-toggling: syntax
  • Loading branch information
halostatue committed Sep 11, 2024
1 parent 6d44a6d commit d25ef8c
Show file tree
Hide file tree
Showing 7 changed files with 971 additions and 817 deletions.
5 changes: 3 additions & 2 deletions .github/FUNDING.yml
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
github: tpope
custom: ["https://www.paypal.me/vimpope"]
github: halostatue
buy_me_a_coffee: halostatue
ko_fi: halostatue
58 changes: 31 additions & 27 deletions README.markdown → README.md
Original file line number Diff line number Diff line change
@@ -1,31 +1,34 @@
# vim-pairs

This is a vim 9 fork of [tpope/vim-unimpaired][unimpaired].

# unimpaired.vim

Much of unimpaired.vim was extracted from my vimrc when I noticed a
pattern: complementary pairs of mappings. They mostly fall into four
categories.
Much of unimpaired.vim was extracted from my vimrc when I noticed a pattern:
complementary pairs of mappings. They mostly fall into four categories.

There are mappings which are simply short normal mode aliases for
commonly used ex commands. `]q` is :cnext. `[q` is :cprevious. `]a` is
:next. `[b` is :bprevious. See the documentation for the full set of
20 mappings and mnemonics. All of them take a count.
There are mappings which are simply short normal mode aliases for commonly used
ex commands. `]q` is :cnext. `[q` is :cprevious. `]a` is :next. `[b` is
:bprevious. See the documentation for the full set of 20 mappings and mnemonics.
All of them take a count.

There are linewise mappings. `[<Space>` and `]<Space>` add newlines
before and after the cursor line. `[e` and `]e` exchange the current
line with the one above or below it.
There are linewise mappings. `[<Space>` and `]<Space>` add newlines before and
after the cursor line. `[e` and `]e` exchange the current line with the one
above or below it.

There are mappings for toggling options. `[os`, `]os`, and `yos` perform
`:set spell`, `:set nospell`, and `:set invspell`, respectively. There's also
`l` (`list`), `n` (`number`), `w` (`wrap`), `x` (`cursorline cursorcolumn`),
and several others, plus mappings to help alleviate the `set paste` dance.
Consult the documentation.
`:set spell`, `:set nospell`, and `:set invspell`, respectively. There's also
`l` (`list`), `n` (`number`), `w` (`wrap`), `x` (`cursorline cursorcolumn`), and
several others, plus mappings to help alleviate the `set paste` dance. Consult
the documentation.

There are mappings for encoding and decoding. `[x` and `]x` encode and
decode XML (and HTML). `[u` and `]u` encode and decode URLs. `[y` and
`]y` do C String style escaping.
There are mappings for encoding and decoding. `[x` and `]x` encode and decode
XML (and HTML). `[u` and `]u` encode and decode URLs. `[y` and `]y` do C String
style escaping.

And in the miscellaneous category, there's `[f` and `]f` to go to the
next/previous file in the directory, and `[n` and `]n` to jump between
SCM conflict markers.
next/previous file in the directory, and `[n` and `]n` to jump between SCM
conflict markers.

The `.` command works with all operator mappings, and will work with the
linewise mappings as well if you install
Expand All @@ -43,7 +46,7 @@ support:

## FAQ

> My non-US keyboard makes it hard to type `[` and `]`. Can I configure
> My non-US keyboard makes it hard to type `[` and `]`. Can I configure
> different prefix characters?
The easiest solution is to map to `[` and `]` directly:
Expand All @@ -55,7 +58,7 @@ The easiest solution is to map to `[` and `]` directly:
xmap < [
xmap > ]

Note we're not using the `noremap` family because we *do* want to recursively
Note we're not using the `noremap` family because we _do_ want to recursively
invoke unimpaired.vim's maps.

## Contributing
Expand All @@ -67,12 +70,13 @@ See the contribution guidelines for

Like unimpaired.vim? Follow the repository on
[GitHub](https://github.com/tpope/vim-unimpaired) and vote for it on
[vim.org](http://www.vim.org/scripts/script.php?script_id=1590). And if
you're feeling especially charitable, follow [tpope](http://tpo.pe/) on
[Twitter](http://twitter.com/tpope) and
[GitHub](https://github.com/tpope).
[vim.org](http://www.vim.org/scripts/script.php?script_id=1590). And if you're
feeling especially charitable, follow [tpope](http://tpo.pe/) on
[Twitter](http://twitter.com/tpope) and [GitHub](https://github.com/tpope).

## License

Copyright (c) Tim Pope. Distributed under the same terms as Vim itself.
See `:help license`.
Copyright (c) Tim Pope. Distributed under the same terms as Vim itself. See
`:help license`.

[unimpaired]: https://github.com/tpope/vim-unimpaired
Loading

0 comments on commit d25ef8c

Please sign in to comment.