abbr -a gc git commit
gc
를 눌러 확장한 후 생선 껍질을 눌러 실행 취소 space
하고 싶습니다 .ctrl+space
어떻게 해야 하나요?
답변1
Fish에서 키를 바인딩하려면 다음을 사용하세요.
bind sequence thing-to-bind-to
또는
bind -k keyname thing-to-bind-to
순서를 찾으려면 fish_key_reader
원하는 키 [0]를 사용하고 누르십시오.
따라서 이렇게 하면 다음과 같은 결과를 얻습니다.
키를 누르세요: 바인딩 -k nul '뭔가를 하세요'
따라서 키 이름 "nul"을 "undo"[1]에 바인딩합니다.
bind -k nul undo
참고: 기본적으로 ctrl-space는 약어를 확장하지 않고 공백을 삽입하도록 이미 바인딩되어 있기 때문에 이것은 나쁜 생각입니다. 이제 약어를 확장하고 실행 취소한 다음 스페이스바를 다시 눌러 약어를 다시 확장해야 합니다.
확장하지 않고 공백을 삽입하려면 다른 키를 바인딩해야 합니다. 예를 들어 ctrl-g에 다음과 같이 지시하십시오.
bind \cg 'commandline -i " "'
대신 ctrl-z를 사용하여 기본적으로 바인딩된 작업을 실행 취소한 다음 ctrl-space를 눌러 약어를 확장하지 않고 공백을 삽입할 수 있습니다.
[0]: fish_key_reader가 아무것도 인쇄하지 않으면 터미널이 키 조합에 대해 아무 것도 보내지 않는다는 의미입니다. 예를 들어 터미널이 자체 바인딩에 이를 사용하는 경우 이런 일이 발생할 수 있습니다.
또한 기본적으로 키 조합을 전송하는 데 사용되는 프로토콜 터미널은 다소 열악하고 많은 조합을 표현할 수 없습니다. 예를 들어 ctrl-i와 tab 또는 ctrl-shift-X와 ctrl-X를 구분할 수 없습니다. 다른 옵션도 있지만 널리 알려진 것은 없습니다.
[1]: vi-mode를 사용하는 경우 bind
vi-normal 모드로 설정되는 모드가 없습니다. 예를 들어 삽입 모드에서 무언가를 설정하려면 시각적 모드에 -M insert
를 추가하세요.-M visual