저는 서버의 여러 파일 사이를 오가는 경우가 많습니다. 다음 예제 명령을 순서대로 실행하겠습니다.
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
단어 사이의 특수 문자를 삭제하지 않고 마지막 단어를 제거합니다.