回答:
C-a # Go to beginning of line
C-k # Kill line from current point
もあります
C-S-backspace # Ctrl-Shift-Backspace
を起動しますM-x kill-whole-line
。
別のグローバルキーバインディングを設定する場合は、これを〜/ .emacsに配置します。
(global-set-key "\C-cd" 'kill-whole-line) # Sets `C-c d` to `M-x kill-whole-line`
行全体を削除する場合は、コマンドの前に番号を付けることができます。
C-u 5 C-S-backspace # deletes 5 whole lines
M-5 C-S-backspace # deletes 5 whole lines
C-u C-S-backspace # delete 4 whole lines. C-u without a number defaults to 4
C-u -5 C-S-backspace # deletes previous 5 whole lines
M--5 C-S-backspace # deletes previous 5 whole lines
時には私もC-x z
役立つと思います:
C-S-backspace # delete 1 whole line
C-x z # repeat last command
z # repeat last command again.
# Press z as many times as you wish.
# Any other key acts normally, and ends the repeat command.
C-x z
、それは本当にクールだ。そして、素晴らしく正確な答え。
C-k C-k
ように機能するものもありますd$ S-j
が、これにより行をかなりうまく削除できます。
C-cd
?
(OSのクリップボードに入れてリングを殺す)行をkillしたくない場合は、単に削除してください:
(defun delete-current-line ()
"Delete (not kill) the current line."
(interactive)
(save-excursion
(delete-region
(progn (forward-visible-line 0) (point))
(progn (forward-visible-line 1) (point)))))
キルリングに配置せずに行を削除する別の方法:
(defun delete-current-line ()
"Deletes the current line"
(interactive)
(delete-region
(line-beginning-position)
(line-end-position)))
これにより、空白行の先頭にポイントが残ります。これも取り除くには(delete-blank-lines)
、この例のように、関数の最後に次のようなものを追加することをお勧めします。
(defun delete-current-line ()
"Deletes the current line"
(interactive)
(forward-line 0)
(delete-char (- (line-end-position) (point)))
(delete-blank-lines))
何も選択せずに、行の任意のポイントから行全体を削除(kill)する最も速い/最も簡単な方法は次のとおりです。
C-w ; kill-region
何が選択されていても、何も選択されていない場合はデフォルトで線を削除するのに便利です。
質問を考えると、おそらくVimの「ヤンク」を複製することにも興味があるでしょうyy
(Emacsの用語では「ヤンク」はVimの「プット」と紛らわしいですがp
)。これは:
M-w ; kill-ring-save
素晴らしく合同で、覚えやすいです。Vimに少し似ていi_CTRL-W
ます。
上記のいずれかを使ってキルリングに何かを入れたら、おそらくそれを「ヤンク」(貼り付け)したいと思うでしょう。
M-y ; yank-pop
(端末のEmacsではCSバックスペースが機能しない可能性があることに注意してください。)
行を削除するための個別のキーを持っているか、または前置引数を呼び出す必要はありません。
「行の終わりまで殺し、次の呼び出しで行全体を殺す」crux-smart-kill-lineを使用できます。ただし、のdelete
代わりにkill
使用したい場合は、以下のコードを使用できます。
文字列へのポイント操作(kill / delete)には、zop-to-charの使用をお勧めします
(defun aza-delete-line ()
"Delete from current position to end of line without pushing to `kill-ring'."
(interactive)
(delete-region (point) (line-end-position)))
(defun aza-delete-whole-line ()
"Delete whole line without pushing to kill-ring."
(interactive)
(delete-region (line-beginning-position) (line-end-position)))
(defun crux-smart-delete-line ()
"Kill to the end of the line and kill whole line on the next call."
(interactive)
(let ((orig-point (point)))
(move-end-of-line 1)
(if (= orig-point (point))
(aza-delete-whole-line)
(goto-char orig-point)
(aza-delete-line))))