From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 21819 invoked by alias); 1 Jul 2015 22:19:04 -0000 Mailing-List: contact zsh-users-help@zsh.org; run by ezmlm Precedence: bulk X-No-Archive: yes List-Id: Zsh Users List List-Post: List-Help: X-Seq: 20297 Received: (qmail 26219 invoked from network); 1 Jul 2015 22:19:01 -0000 X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on f.primenet.com.au X-Spam-Level: X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2 autolearn=ham autolearn_force=no version=3.4.0 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.co.uk; s=s2048; t=1435788782; bh=Yun/Kxw9qwnhgmcmMheF2zV/sJhJl46bA3g95cPfTiY=; h=From:To:Subject:Date:From:Subject; b=NZkhryo99Lsl2eCvKJgb+pXIgBkCkYBOjcWiXgYXWxLVMxdwNrWVCCAg/GhGj3Fma7epYGg3jlvN4Haq9hN7zVPLzZlrEM5YOTKNQ/YJEHOBiPrLp/dztuT3QcpPb6MuoTGQBASfdzjcLi0ugFwSAwAfaVm2bYOeHW7If7C6Zg9GXK1F0FlfbrV9IFL9omjzeWBjMKBTSBuvkaOyiPDpw2imE5vOkzhKp5p6htK4YgpjwqCyQ3emY4FigzKbtkR9dAE/lC/XB9HiNORLE8c7kwJE3cG0GTHz88DLFWcfDXWFTauI8P0bu7n5q8PplDe2sf6/Hi4y8dFGFFUv9I9Gig== X-Yahoo-Newman-Id: 21878.11236.bm@smtp133.mail.ir2.yahoo.com X-Yahoo-Newman-Property: ymail-3 X-YMail-OSG: WdOqsMkVM1nmpjqbqL9vjBJZes5kYNE0Sc0u_H5yWEEVNxJ XcRWT0T_F1urlCiBmI6vltsfgpQNdKenVvtcCbll1ltQlC4bL0gHmZ7Q.lps wbgz2jOXqSRSuwsCZRn6Bmux4Fi7N6VqtAb9shTA8mX.Idz5Ih9yYcA8yRJh JLim7DPcbx0RXg78zUyQ8Eesqd0AYcgmNXvLJaHG.eIuh8wE7khWVlD8ZhMJ pB660V41jbgH2DJl4.FnR2AC41fYjXklfbXjzUfL46DuWZU6o1xIlDb2djq2 l0xrYtR5ZURFMVZioGIeC6933AXGfen3vObzhLGLRytNLrD1rqQ8IvG2T50J J_efsHRFYApI6mrDJXthOOtA2bG6oKR2R2NWY6yammjoI.c7rnWYMhFGQSc. UwdZDu3tuWxxE3Web93MQF9g4wPeqR.G5lUAilYVzQiTLkHjH313yKeDDAnM lCdIvrS5YnRqN5hDyo4jNLmuDfxB8K_Mzr7jWk9DbK2xOvH.iEW9Tc6o1O61 FvIiKod3geSLrUzgcnlbmDLTaVY6_Ug-- X-Yahoo-SMTP: opAkk_CswBAce_kJ3nIPlH80cJI- From: Oliver Kiddle To: zsh-users@zsh.org Subject: Tip of the day: restoring an aborted command-line MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-ID: <30468.1435788779.1@thecus.kiddle.eu> Date: Thu, 02 Jul 2015 00:12:59 +0200 Message-ID: <30469.1435788779@thecus.kiddle.eu> When you abort a command-line with Ctrl-C or whatever, the Zsh line editor sets $ZLE_LINE_ABORTED to the contents of the command-line before it was aborted. Sometimes you might want to recover the aborted line and you could bind a dedicated key to that purpose. The following trick instead creates an undo event so that you can simply use an undo to get back the aborted line: zle-line-init () { if [[ -n $ZLE_LINE_ABORTED ]]; then local savebuf="$BUFFER" savecur="$CURSOR" BUFFER="$ZLE_LINE_ABORTED" CURSOR="$#BUFFER" zle split-undo BUFFER="$savebuf" CURSOR="$savecur" fi } zle -N zle-line-init Undo is bound by default to ^_, ^X^U and ^Xu in emacs mode and u in vi command mode but I find it useful to bind it in vi-insert mode. Also note the push-input widget if you want to put the current command line aside but later restore it. Oliver