From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Andy Stewart Newsgroups: gmane.emacs.help Subject: Re: copy-line Date: Sun, 01 Feb 2009 10:09:26 +0800 Message-ID: <87ocxmgb6x.fsf@debian.domain> References: NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: ger.gmane.org 1233454259 18415 80.91.229.12 (1 Feb 2009 02:10:59 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sun, 1 Feb 2009 02:10:59 +0000 (UTC) To: help-gnu-emacs@gnu.org Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Sun Feb 01 03:12:13 2009 Return-path: Envelope-to: geh-help-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.50) id 1LTRoj-0002UC-0L for geh-help-gnu-emacs@m.gmane.org; Sun, 01 Feb 2009 03:12:13 +0100 Original-Received: from localhost ([127.0.0.1]:40348 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1LTRnQ-0004Qs-IX for geh-help-gnu-emacs@m.gmane.org; Sat, 31 Jan 2009 21:10:52 -0500 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1LTRmz-0004Nu-1f for help-gnu-emacs@gnu.org; Sat, 31 Jan 2009 21:10:25 -0500 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1LTRmx-0004NF-GC for help-gnu-emacs@gnu.org; Sat, 31 Jan 2009 21:10:24 -0500 Original-Received: from [199.232.76.173] (port=56431 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1LTRmx-0004N7-9K for help-gnu-emacs@gnu.org; Sat, 31 Jan 2009 21:10:23 -0500 Original-Received: from main.gmane.org ([80.91.229.2]:54635 helo=ciao.gmane.org) by monty-python.gnu.org with esmtps (TLS-1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1LTRmw-0004FU-IR for help-gnu-emacs@gnu.org; Sat, 31 Jan 2009 21:10:23 -0500 Original-Received: from list by ciao.gmane.org with local (Exim 4.43) id 1LTRmu-0001Qs-N4 for help-gnu-emacs@gnu.org; Sun, 01 Feb 2009 02:10:20 +0000 Original-Received: from 222.212.141.226 ([222.212.141.226]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Sun, 01 Feb 2009 02:10:20 +0000 Original-Received: from lazycat.manatee by 222.212.141.226 with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Sun, 01 Feb 2009 02:10:20 +0000 X-Injected-Via-Gmane: http://gmane.org/ Original-Lines: 70 Original-X-Complaints-To: usenet@ger.gmane.org X-Gmane-NNTP-Posting-Host: 222.212.141.226 User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.0.60 (gnu/linux) Cancel-Lock: sha1:2YoFEL/JG5TP+1TkBkwXfQpKQww= X-detected-operating-system: by monty-python.gnu.org: GNU/Linux 2.6, seldom 2.4 (older, 4) X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Users list for the GNU Emacs text editor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Errors-To: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.help:61815 Archived-At: Hi, Below are my code: ------------------------------> Code start <------------------------------ (defun duplicate-line-above (&optional reverse) "Duplicate current line above." (interactive) (let ((origianl-column (current-column)) line-content) (setq line-content (buffer-substring (line-beginning-position) (line-end-position))) (beginning-of-line) (and reverse (forward-line +1)) (newline +1) (forward-line -1) (insert line-content) (goto-column origianl-column))) (defun duplicate-line-below () "Duplicate current line below" (interactive) (duplicate-line-above t)) (defun duplicate-line-above-comment (&optional reverse) "Duplicate current line above, and comment current line." (interactive) (if reverse (duplicate-line-below) (duplicate-line-above)) (save-excursion (if reverse (forward-line -1) (forward-line +1)) (comment-or-uncomment-region+))) (defun duplicate-line-below-comment () "Duplicate current line below, and comment current line." (interactive) (duplicate-line-above-comment t)) ------------------------------> Code end <------------------------------ You can find those code at http://www.emacswiki.org/cgi-bin/emacs/lazycat-toolkit.el Below are my keybing for those command: ------------------------------> keybinding start <------------------------------ ("C-S-o" . duplicate-line-above) ("C-S-l" . duplicate-line-below) ("C-S-s-o" . duplicate-line-above-comment) ("C-S-s-l" . duplicate-line-below-comment) ------------------------------> keybinding end <------------------------------ Enjoy! -- Andy Helmut Eller writes: > Hello, > > is there a command (and standard key) to copy the current line? The > command should duplicate the text of the current line and move point to > the copied line. I think that vi has something like that, and > occasionally it would be quite useful. > > I can write that myself but maybe Emacs has something already and I > don't know it? It's also a bit hard to find a free key :-) > > Helmut.