使用頻度トップクラス!行単位のコピペ効率化xyzzy lisp - kill Line

ファイル名: -

行頭にあると改行を含めた行全体を1回でkillをする。 それ以外は標準の Kill-Lineと同じ処理をする。

;C-k の行頭操作(行末処理)を emacsライクに 改行も含める。
(defun kill-line-CR (&optional lines)
  (interactive "*p")
  (kill-region (point)
	(progn
	  (cond ((null lines)
		 (cond ((eolp) (forward-line 1))
		       ((bolp) (goto-eol)(forward-char))
		       (t (goto-eol))))
		((zerop lines) (if(bolp)(forward-line -1)(goto-bol)))
		(t (forward-line lines)))
	  (point))))
グローバルキーを置き換える。
(global-set-key #\C-k 'kill-line-CR)
引数なし 引数あり
コマンド 行頭/行中  バッファの先頭 行末  zero  (M-0 や C-U 0など) ZERO以外  (C-u付き/M-1 など)  備考
kill-line  カーソル以降一行全部 改行一つ  行頭まで  ※行頭:前行改行一つ   n行分 表示行関係なし
kill-line-CR  カーソル以降一行全部  ※行頭:一行全部+改行  改行一つ  行頭まで  ※行頭:前行改行一つ n行分
emacs-kill-line  カーソル以降一行全部  ※カーソル以降空白系文字 or [条件付き行頭]:カーソル以降全部+改行  改行一つ  ※バッファの最終行:動作せず  行頭まで  ※行頭:前行改行一つ n行分
※表示行(折り返しかどうか)関係なし。 ※killなので全てリージョンを使う    
;旧
<del>(defvar *kill-whole-line* t)
(defun emacs-kill-line (&optional lines)
  (interactive "*p")
  (kill-line (cond (lines lines)
                   ((eobp)
                    (message "end-of-buffer")
                    (return-from emacs-kill-line nil))
                   ((or (looking-at "[ \\t]*$")
                        (and *kill-whole-line* (bolp))) 1))))
(global-set-key #\\C-k 'emacs-kill-line)</del>
Delicious にシェア
Digg にシェア
reddit にシェア
LinkedIn にシェア
LINEで送る
email this
Pocket

892 views.



コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です