Bash : 키보드 단축키로 줄 끝까지 커서에서 삭제


91

^프롬프트 위치를 나타내는 다음 bash 프롬프트를 고려하십시오 .

$ git commit -am "[bug 123456] Do this and that with the bug"
                               ^

다른 커밋 메시지를 사용하여 동일한 버그에 다시 커밋하려고한다고 가정합니다. 커서 위치에서 줄 끝까지 텍스트를 삭제하는 방법이 있습니까?

답변:


145

커서를 사용 하여 줄 끝까지 Ctrl+ K를 사용하십시오 .

Ctrl+ U를 사용 하여 커서에서 줄의 시작 부분까지 삭제 하십시오 .


키 조합은 무엇입니까?
ShooShoSha

@ShooShoSha, Shift + Insert 체험
user128285

K와 U의 의미는 무엇이며, 다음 주에 그 의미를 모르면 기억하는 방법을 기억할 수 없습니까?
workplaylifecycle

2
@ hylepo Dunno 그러나 내 니모닉은 Brexit - the UK leaves Europe-U는 처음부터 삭제하고 K는 끝까지 삭제합니다.
Snowcrash

47

쉘에서 vi ( set -o vi) 또는 emacs ( set -o emacs) 편집 모드를 사용하는지에 따라 다릅니다 .

기본적으로 쉘은 일반적으로 emacs 편집 모드로 기본 설정됩니다.

  • emacs 모드에서 ctrl- 명령을 사용하면 줄 끝까지 삭제할 수 있습니다 k.

  • 그러나 명령 쉘에서 vi 편집 모드를 사용하는 경우 동일한 명령을 입력하고 Esc(명령 모드로 전환) d- $(전체 행을 삭제하려면을 입력 dd)를 입력 하여 동일한 결과를 얻을 수 있습니다 .

현재 쉘에서 어떤 편집 모드를 사용하고 있는지 확실하지 않은 경우 set -o명령 행에서 명령 을 입력하면 현재 사용중인 편집 모드를 판별 할 수 있습니다.

set -o
...snip...
emacs           on
...snip...
vi              off

명령 줄 편집 모드를 전환하려면 다음 중 하나를 입력하십시오.

set -o vi

또는

set -o emacs

4
니모닉을 원하면 Kkill (커서 위치에서 시작하는 줄)을 나타냅니다.
Gregor Botero

5
vi 명령 모드에서Dd$
glenn jackman

3
실제로 작성하기위한 하나 바로 대답을하고 SHELLOPTS가 변경 될 수 있음을 설명.
TC1

1
>> 고마워 vi를 사용하고있는 것처럼 보이므로 CTRL + K가 트릭을 수행합니다. – Adam Matan Adam, vi가 아니라 emacs-mode입니다.
catch22

1
Kubuntu oneiric (konsole)에서는 Ctrl + K 및 ESC Shift + D가 모두 작동합니다. ESC d는 일부 행을 삭제합니다 ( ';'까지 가능). (그 후에 $를 입력하면 $가 콘솔에 전송됩니다.) 나는 꽤 오랫동안 그것을하는 방법을 알아 내려고 노력했습니다. 감사!
Joe

3

Zsh 및 Bash 중 하나에 만 익숙한 경우 필요한 키 바인딩은 다음과 같습니다.

세게 때리다

bind '"\C-k"':kill-line

zsh

bindkey "\C-k"      vi-kill-eol

기타 관련 정보

키 바인딩 목록을 얻으려면

# bash
bind -p

# zsh
bindkey

혼란 스러워요. Bash의 경우 "^k" Control + K 가 아니어야 합니까?
wjandrea

죄송합니다. 제 개인 바인딩입니다. 기본 바인딩을 넣었지만 bash 구문에 익숙하지 않았습니다. 무엇을 말해야하는지에 대해 말씀 드리고 글을 편집했습니다.
Sridhar Sarnobat

1
오 그래. 나는 그것에 익숙하지 않지만, 그냥 확인하고"\C-k"
wjandrea
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.