vi와 동등한 emacs는 무엇입니까 dd? 현재 줄을 삭제하고 싶습니다. 시도 CTRL+ k하지만 그것은 단지 삭제 에서 현재의 위치.
답변
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.
답변
라인을 죽이고 싶지는 않지만 (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)))))
답변
킬 링에 배치하지 않고 라인을 삭제하는 또 다른 방법 :
(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))
답변
아무 것도 선택하지 않고 줄의 모든 지점에서 전체 줄을 삭제 (종료)하는 가장 빠르고 간단한 방법은 다음과 같습니다.
C-w ; kill-region
선택한 항목을 삭제하거나 아무것도 선택하지 않은 경우 기본적으로 한 줄을 삭제할 수 있습니다.
질문이 주어지면 아마도 Vim의 “yank”를 복제하는 데 관심이있을 것입니다 yy
(Emacs 용어에서 “yank”는 Vim의 “put”이 혼란 스러울 수 있지만 p
). 이것은:
M-w ; kill-ring-save
훌륭하고 일치하며 기억하기 쉽습니다. Vim의 i_CTRL-W
.
위의 방법 중 하나를 사용하여 킬 링에 무언가를 넣은 후에는 “yank”(붙여 넣기)를 원할 것입니다.
M-y ; yank-pop
(CS 백 스페이스는 터미널 Emacs에서 작동하지 않을 수 있습니다.)
답변
줄을 삭제하거나 접두사 인수를 호출하는 데 별도의 키가 필요하지 않습니다. 당신이 사용할 수있는 핵심-스마트 죽 라인
“라인의 끝에 죽이고 다음 호출에 전체 라인을 죽일”것이다. 그러나 당신이 delete
대신 선호한다면kill
아래 코드를 사용할 수 있습니다.
point-to-string operation (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))))