마지막 슬래시로 다시 입력 삭제


16

나는 종종 서버의 여러 파일 사이에서 뛰고 있습니다. 다음 예제 명령을 순서대로 실행합니다.

nano /web/site/path/to/file
/web/site/script.py
nano /web/site/path/to/anotherFile
nano /web/site/path/to/yetAnotherFile
/web/site/script.py
nano /web/site/path/to/etc

하나에서 이동하려면 nano현재를 눌러 다음 I 명령 UpBackspace경로의 마지막 부분을 대체 할 수 있습니다. 이것의 문제는 정말 정말 게으르다는 것입니다.

다음 중 하나를 수행 할 수있는 키보드 단축키 (또는 Bashism)가 있습니까?

  • 마지막에 사용한 경로로 교체하십시오 (끝에 여분의 비트가 있음)
  • 현재 줄에서 (예 :을 누른 후 Up) 마지막 줄로 다시 삭제/

1
정확히 무슨 뜻인지 모르겠지만, 처음 사용할 수있는 부분은 alt+ .?
Sparhawk

@Sparhawk Alt + .다른 용도 로 사용됩니다 .
Radu Rădeanu

@ RaduRădeanu 그래, 아마도 나는 그 질문을 오해 할 것이다. "마지막으로 사용 된 마지막 경로 (끝에 여분의 비트로 대체)"가 alt+의 .역할을 의미한다고 생각했습니다 .
Sparhawk

@Sparhawk 다시 한 번, 한 달에 한 번 정도 메모리에 커밋 할 수없는 유용한 바로 가기 중 하나입니다. alt-backspace와 함께 사용하면 다른 명령을 통해 유사한 파일을 실행하는 데 매우 편리합니다.
Oli

@Oli 나는 그것을 공정한 비트로 사용하는 경향이 있지만 항상 다른 방법 으로 움직이는 법을 잊어 버립니다 !
Sparhawk

답변:


21

나는 당신이 Alt+ Backspace지름길을 찾고 있다고 생각합니다 .

Up이 버튼을 누르면 이전 /또는 space문자로 다시 삭제됩니다 .


7
지금 나는 멈출 수 없다! (편집 : 나는 적어도 일년에 열 번 이상이 지름길을 배우고 잊었다 고 맹세합니다)
Oli

3
어떻게해야합니까? 내 터미널에서는 plain과 다른 것을하지 않는 것 같습니다 backspace.
Bakuriu

1
@Bakuriu이 단축키는 기본 단축키 여야합니다. 시스템에서 매핑 된 것을 찾으려면 다음을 실행하십시오.bind -P | grep '^backward-kill-word'
Sylvain Pineau

1
@Bakuriu 여기서도 저는 Mac에 있습니다.
laike9m

9

원하는대로 단어를 뒤로 죽이는 readline 바인딩을 감지하려면 터미널에서 다음 명령을 사용할 수 있습니다.

bind -p | awk '/kill/ && /word/ && /backward/'

기본 우분투 설치에서 출력은 다음과 같습니다.

"\e\C-h": backward-kill-word
# shell-backward-kill-word (not bound)

두 번째 줄은이 시점에서 중요하지 않은 것처럼 보이므로 첫 번째 줄이 무엇을 의미하는지 봅시다. 내가 이해에서, backward-kill-word사실상 모든 문자를 삭제 작성한 Readline 기능은 이전 특수 문자 (전까지 /, ;, ,받는 사람 바인딩 등) \e\C-h키 시퀀스를. 지금,이 순서 \e 나타내는Esc\C- Ctrl키 및 \C-h약자 Ctrl+ 이 경우에 상당 와 키.hBackspace

따라서 + 와 동일한 Esc+ Ctrl+h 키보드 단축키를 검색하고 있습니다 .xterm의 동작으로 인해 키가 메타 문자로 작동하고 메타 문자가 문자가 앞에 오는 두 문자 시퀀스로 변환됩니다 (참조 )+ 와 같습니다 .EscBackspaceAltEscman xtermAltBackspace

이제 마음에 들지 않고 계속 잊어 버린 경우 다음 명령을 사용 하여 목적에 맞게 새 바로 가기를 만들 수 있습니다 ( Esc+ w).

bind '"\ew": backward-kill-word'

readline을 사용하는 모든 명령에 대해이 새로운 바로 가기를 항상 유지하려면 ~/.inputrc파일에 다음 줄을 추가 하십시오.

"\ew": backward-kill-word

자세한 내용 help -m bind | sensible-pager은 참조하십시오 .


2
좋은 대답입니다. 더 일반적으로 bind 명령을 사용하여 전체 설정을 작은 따옴표로 묶습니다. bind '"\ew": backward-kill-word', 그러나 그것은 nitpicking입니다. 그리고 그것은 가치가 당신도 넣을 수 있습니다 언급 할 수 있습니다 "\ew": backward-kill-word~/.inputrc사용의 readline은 또한 파이썬 대화식 쉘에서의 readline을 사용하는 경우, 예를 들어, 바인딩 바인딩도 적용된다는 것을있을 것이라는 점을 경우 다른 명령에.
geirha

@geirha 예, 말씀 하신 내용을 알고 있지만 OP가이를 관리하는 방법을 알고 있다고 생각했습니다. 어쨌든, 나는 내 대답이 OP에 그다지 유용하지 않다는 것을 알고 있지만 (그냥 바로 가기를 기억하고 싶었습니다), 나는이 사이트의 다른 사용자들에게 유용하기를 희망하며 이것을 위해 당신의 관찰을 추가하여 내 대답을 편집했습니다. 감사합니다.
Radu Rădeanu

0

또 다른 주요 조합은 다음과 같습니다.

Alt+ B그리고 Ctrl+K

Alt + B     Move cursor backward one word on the current line    
Ctrl + K    Clear the line after the cursor

Alt+ B그리고 Alt+D

단어 사이의 특수 문자를 삭제하지 않고 마지막 단어를 제거합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.