Code Monkey home page Code Monkey logo

easy-kill's Introduction

Kill & Mark Things Easily in Emacs

Travis CI build status

Provide commands easy-kill and easy-mark to let users kill or mark things easily.

Comments, bug reports and patches are highly appreciated.

easy-kill

easy-kill is a drop-in replacement for kill-ring-save. To Use:

(global-set-key [remap kill-ring-save] 'easy-kill)

After this configuration, M-w serves as both a command and a prefix key for other commands. M-w alone saves in the order of active region, url, email and finally current line (See easy-kill-try-things). As a prefix key:

  1. M-w w: save word at point
  2. M-w s: save sexp at point
  3. M-w l: save list at point (enclosing sexp)
  4. M-w d: save defun at point
  5. M-w D: save current defun name
  6. M-w f: save file at point
  7. M-w b: save buffer-file-name or default-directory. - changes the kill to the directory name, + to full name and 0 to basename.

The following keys modify the selection:

  1. @: append selection to previous kill and exit. For example, M-w d @ will append current function to last kill.
  2. C-w: kill selection and exit
  3. +, - and 1..9: expand/shrink selection
  4. 0 shrink the selection to the intitial size i.e. before any expansion
  5. C-SPC: turn selection into an active region
  6. C-g: abort
  7. ?: help

For example, M-w w saves current word, repeat w to expand the kill to include the next word. 5 to include the next 5 words etc. The other commands also follow this pattern.

+/- does expanding/shrinking according to the thing selected. So for word the expansion is word-wise, for line line-wise, for list or sexp, list-wise.

list-wise expanding/shrinking work well in lispy modes (elisp, Common Lisp, Scheme, Clojure etc.), smie-based modes (Prolog, SML, Modula2, Shell, Ruby, Octave, CSS, SQL etc.), Org mode, Nxml mode and Js2 mode.

To copy the enclosing list in lispy modes, I used to do a lot of C-M-u C-M-SPC M-w. Now the key sequence is replaced by M-w l (save list at point) as shown in screenshot:

``M-w l``

easy-mark

easy-mark is similar to easy-kill but marks the region immediately. It can be a handy replacement for mark-sexp allowing +/- to do list-wise expanding/shrinking and marks the whole sexp even when in the middle of one.

(global-set-key [remap mark-sexp] 'easy-mark)

Install

easy-kill is part of GNU ELPA and is also available on MELPA.

Extensions

New things can be defined by following package thingatpt.el's convention, or by defining new functions named like easy-kill-on-THING-NAME. See easy-kill-on-buffer-file-name and easy-kill-on-url for examples.

NEWS

0.9.4

  1. New user variable easy-kill-unhighlight-key.
  2. key D selects current defun name.

0.9.3

  1. Key ? in easy-kill or easy-mark prints help info.
  2. M-w l can select the enclosing string.
  3. easy-mark learns exchanging point & mark.
  4. Key 0 now sets the selection to its initial size before any expansion.
  5. M-w l, M-w s and list-wise +/- now work in Org mode.

0.9.2

  1. - can move pass the first selection.
  2. +/- on sexp no longer change thing to list
  3. Mouse over the selection now shows description.
  4. Echo js2 node name.
  5. Append now uses sensible separator (customisable via easy-kill-alist).
  6. The format of easy-kill-alist has changed. The old (CHAR . THING) format is still supported but may be removed in future.

Bugs

https://github.com/leoliu/easy-kill/issues

easy-kill's People

Contributors

knu avatar leoliu avatar purcell avatar

Watchers

 avatar  avatar  avatar

Forkers

anselm-helbig

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.