
저는 Arch Linux(4.13.11)를 사용하고 있으며 my 에는 다음을 .bashrc
사용하여 파일을 찾는 사용자 정의 함수가 있습니다.fzf그런 다음 기본 편집기로 해당 파일을 엽니다.
# Search a file with fzf inside a Tmux pane and then open the file in an editor
fzf_then_open_in_editor() {
local file=$(fzf-tmux)
# Open the file if it exists
if [ -n "$file" ]; then
# Use the default editor if it's defined, otherwise Vim
${EDITOR:-vim} "$file"
fi
}
.inputrc
쉘에 Vim과 유사한 키 바인딩을 사용하도록 를 구성했습니다 .
set editing-mode vi
Ctrl바람직하게는 명령 모드에서 +를 눌러 o내 함수를 호출 할 수 있습니다 fzf_then_open_in_editor
.
나는 노력했다
set keymap vi-command
"\C-o": fzf_then_open_in_editor
하지만 그건 효과가 없었어요.
에서 .inputrc
에 정의된 기능에 대한 키 바인딩을 어떻게 만들 수 있습니까 .bashrc
?
답변1
이 양식은 key: function
readline 내장 함수만 허용합니다. 아시다시피 텍스트를 입력하려면 따옴표로 묶어야 하는 매크로가 필요합니다 key: "my macro\r"
. 일반적으로 명령 프롬프트에서 이미 삽입 모드에 있으므로 삽입 명령으로 시작해야 하는 이유를 모르겠습니다.
함수를 호출하려면 옵션과 함께 쉘 명령 바인딩을 사용하십시오 -x
. 이 바인딩을 에 넣는 방법은 모르겠지만 ~/.inputrc
다음 명령을 에 넣을 수 있습니다 .bashrc
.
bind -x '"\C-o": fzf_then_open_in_editor'
답변2
이것을 다음에 추가하여 원하는 것을 얻었습니다 .inputrc
.
set keymap vi-command
# Go to insert mode with i, write the function's name, then hit enter
"\C-o": "ifzf_then_open_in_editor\015"
\015
의 키코드는 어디에 있나요 Enter?
이것은 효과가 있지만 더 우아한 솔루션이 있는지 궁금합니다.