Important
This code is obsolete for zsh-5.0.8 and greater. zsh-5.0.8 comes with much more features out of the box.
Vim’s text-objects-ish for Zsh.
- Author:
- Takeshi Banse <[email protected]>
- License:
- Public Domain
Thank you very much, Bram Moolenaar!
I want to use Vim’s text-objects in Zsh.
To use this,
-
source this file.
% source opp.zsh
-
If you wish to load the extensions, source them afterward.
% source opp/*.zsh
Note This plugin overwrites some bindings within the vicmd-keymap (details below).
Optionally you can use the zcompiled file with the autoloading for a little faster loading on every shell startup, if you zcompile the necessary functions.
-
Prepare zcompiling the defined functions and the install command.
% OS=(~/path/to/opp.zsh/{opp.zsh,opp/*.zsh})
-
If you have some
opp/surround.zsh
’s configurations, those configurations could be zcompiled at this point. Assuming you have such a configuration file in~/.zsh/opp-surround.zsh
, you could do this.% OS=(~/path/to/opp.zsh/{opp.zsh,opp/*.zsh} ~/.zsh/opp-surround.zsh(N))
-
Generate the
~/.zsh/zfunc/{opp,opp-install}.zwc
.% (zsh -c "for O in $OS;do . $O;done && opp-zcompile $OS[1] ~/.zsh/zfunc"
Set up an autoload clause appropriately.
% { . ~/.zsh/zfunc/opp-install; opp-install } % autoload opp
Note: This script replaces the following vicmd key map entries: c
, d
, g~
, gu
, gU
and y
. Please be aware of that, since this means that if you set bindings manually or even reset them after sourcing this plugin by using
% bindkey -d
this plugin will not work.
Extensions
opp/textobj-between.zsh
Thank you very much, thinca and tarao!
opp/surround.zsh
Thank you very much tpope!
TODOs
- TODO: in case these (
ci"
with improper double quotes) situations. - TODO: operator (currently
c
,d
,g~
,gu
,gU
andy
) - TODO:
o_v
o_V
o_CTRL_V
- TODO:
as
is
op
ip
at
it
History
v0.0.8
- Fix textobj-between keybind. Thank you very much for the reoprt, wellle!
- Much nicer README. Thank you very much for your contributions, roryokane!
v0.0.7
- Add
~
,gu
andgU
. - Paren-matching operation fixes.
v0.0.6
- Add
opp/surround.zsh
v0.0.5
- Add
opp/textobj-between.zsh
- Add
opp-installer-add
for the extensions. - Add
aw
aW
iW
and fixiw
.
v0.0.4
- Add textobj-between link.
v0.0.3
- Cleanup inbetween code.
v0.0.2
- Fix
cc
dd
yy
not work bug.
v0.0.1
- Initial version.