명령을 실행하는 키 바인딩이 있었으면 좋겠습니다. 현재 상태에서 터미널을 클릭하면 Ctrl + f
명령이 표시되며 Enter를 눌러야 합니다. 나는 아마도 키 바인딩이 나를 위해 이것을 할 수 있기를 바랐습니다. 나는 현재
bindkey -s ^f "tmux-sessionizer\n"
멈춰서 Enter 키를 누를 수 없나요? 아니면 제가 할 수 있는 일이 있나요?
답변1
빈 프롬프트에서 Ctrl+F를 누르면(적어도 기본 구성에서는) 게시한 코드가 실행됩니다( tmux-sessionizer
적어도 기본 구성에서는). 실제로 extended_glob
참조해야 할 매우 유용한 옵션 세트가 있을 수 있습니다 ^
. 예 bindkey '^f' 'tmux-sessionizer\n'
) . 그러나 비어 있지 않은 프롬프트에서 이 키를 누르면 일반적으로 유용한 작업이 수행되지 않고 일부 나쁜 작업이 수행될 수 있습니다. 외부 명령을 실행하는 더 좋은 방법은 셸 입력을 사용하는 것이 아니라 직접 실행하는 것입니다. 이를 위해:
- 정의하다기능이것이 당신이 원하는 것입니다.
- 함수가 끝나면,라인 편집자에게 말하세요도착하다프롬프트 다시 표시.
- 다음과 같이 함수를 등록합니다.라인 편집기 위젯.
- 키 바인딩편집기 위젯에.
function run-tmux-sessionizer { tmux-sessionizer; zle redisplay; }
zle -N run-tmux-sessionizer
bindkey '^f' run-tmux-sessionizer
답변2
당신은 이것을 할 수 없습니다다루기 힘든혼자 명령 bindkey
. 하지만 만약 당신이 내zsh-edit
끼워 넣다, 다음을 사용할 수 있습니다.
bind '^F' 'tmux-sessionizer'