저는 Arch Linux(4.13.11)를 사용하고 있으며 다음을 사용 .bashrc
하여 파일을 찾는 사용자 정의 기능이 있습니다.후지브그런 다음 기본 편집기를 사용하여 파일을 엽니다.
# 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?
이것은 효과가 있지만 더 우아한 해결책이 있는지 궁금합니다.