### 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 <takebi@laafc.net>
License:
Public Domain
Thank you very much, Bram Moolenaar! I want to use Vim’s text-objects in Zsh. To use this, 1. source this file. % source opp.zsh 2. 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. 1. Prepare zcompiling the defined functions and the install command. % OS=(~/path/to/opp.zsh/{opp.zsh,opp/*.zsh}) 2. 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)) 3. 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` * http://d.hatena.ne.jp/thinca/20100614/1276448745 * http://d.hatena.ne.jp/tarao/20100715/1279185753 Thank you very much, thinca and tarao! #### `opp/surround.zsh` Thank you very much tpope! * [Tim Pope’s surround.vim](http://www.vim.org/scripts/script.php?script_id=1697) ### TODOs * TODO: in case these (`ci"` with improper double quotes) situations. * TODO: operator (currently `c`, `d`, `g~`, `gu`, `gU` and `y`) * 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` and `gU`. * 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 fix `iw`. #### 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.