마지막 슬래시까지 입력 삭제

마지막 슬래시까지 입력 삭제

저는 서버의 여러 파일 사이를 오가는 경우가 많습니다. 다음 예제 명령을 순서대로 실행하겠습니다.

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한 명령에서 다음 명령으로 이동하려면 현재 경로의 마지막 세그먼트를 바꾸려면 Up및 키를 누릅니다. Backspace문제는 내가 정말,정말게으른.

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

  • 마지막으로 사용된 경로로 대체됩니다(끝 부분에 추가 비트 포함).
  • 현재 줄에서(예: 를 누른 후 Up) 마지막 줄까지 삭제/

답변1

Alt+ 단축키 를 찾고 계신 것 같아요 Backspace.

이것을 누른 후에는 Up이전 /또는 space문자로 다시 삭제되어야 합니다.

답변2

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

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

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

"\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나타냅니다 .Ctrlh이 경우에는 동일합니다.열쇠 로 Backspace.

그래서 당신은 찾고 있습니다Esc+ Ctrl+h다음과 동일한 키보드 단축키Esc+Backspace그리고 어느 것,키를 메타 문자로 작동 시키는 xterm의 동작으로 인해 Alt메타 문자는 문자 자체 앞에 다음이 오는 두 문자 시퀀스로 변환됩니다 Esc( 참조 man xterm)., 는 다음과 같습니다.Alt+Backspace.

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

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

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

"\ew": backward-kill-word

자세한 내용은 을 참조하세요 help -m bind | sensible-pager.

답변3

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

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

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

관련 정보