Coder Social home page Coder Social logo

opp.zsh's Introduction

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,

  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, 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, 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.

opp.zsh's People

Contributors

hchbaw avatar shurakai avatar roryokane avatar srstevenson avatar

Watchers

bxbx avatar James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.