2010-10-18 5 views

ответ

178
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. 
+0

Это работает. Есть ли способ сделать это, используя одну команду? Должен ли я создать настраиваемую привязку клавиш для этого? –

+13

Не знал 'C-x z', это действительно здорово. И хороший и точный ответ кстати. – slu

+2

Существует также 'C-k C-k', который вроде как' d $ S-j' в vim, но это может удалять строки вперед довольно красиво. –

7

В случае, если вы не хотите, чтобы убить линию (которая будет поместить его в буфер обмена OS и убить кольцо), а просто удалить его:

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

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

C-w ; kill-region 

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

Учитывая вопрос, вы, вероятно, также заинтересованы в репликации Vim в «дернул», yy (хотя в Emacs жаргоне в «дернул» смешения Vim в «положил», p). Это:

M-w ; kill-ring-save 

Приятный и удобный, и довольно легко запомнить. Даже немного похоже на Vim's i_CTRL-W.

После того, как вы положили что-то в уничтожений либо из вышеперечисленного, вы, вероятно, хотите «дергать» (паста) это:

M-y ; yank-pop 

(Обратите внимание, что CS-забой может не работает в терминале Emacs.)

Смежные вопросы