Как я могу удалить текущую строку в Emacs?


Что такое Emacs эквивалент vi dd? Я хочу удалить текущую строку. Пробовал CTRL + k, но он удаляет только С текущее положение.

3 105

3 ответа:

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.

в случае, если вы не хотите, чтобы убить строку (что бы положить его в буфер обмена ОС и убить кольцо) , но просто удалить его:

(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)))))

самый быстрый / простой способ удалить (убить) полную строку, из любой точки на линии, ничего не выбирая, стоит:

C-w  ; kill-region

он универсален в удалении того, что выбрано, или строки по умолчанию если ничего не выбрано.

учитывая вопрос, вы, вероятно, также заинтересованы в репликации "Янки" Вима,yy (хотя на языке Emacs "янки" смущает ВИМ "положил",p). Это:

M-w  ; kill-ring-save

хороший и конгруэнтный, и довольно легко запоминающийся. Даже немного похоже на Vim i_CTRL-W.

как только вы положили что-то в кольцо убийства с любым из вышеперечисленных, вы, вероятно, захотите "дернуть" (вставить) его:

M-y  ; yank-pop

(обратите внимание, что C-S-backspace может не работать в терминале Emacs.)