
fzf
내부에서 시작 vim
하고 분할 창에서 선택한 파일을 열려면 어떻게 해야 합니까 ? 플러그인을 설치하고 싶지 않습니다.
나는 노력했다
:!a=$(ls | fzf) && vsplit $a
답변1
콘솔에 액세스해야 하기 때문에 fzf
이를 포그라운드 명령으로 실행해야 하며 실제로 그렇게 하는 좋은 방법은 없습니다.그리고fzf
파이프를 통해 Vim 의 (파일 이름) 출력을 캡처합니다 . 따라서 임시 파일을 사용하여 파일 이름을 저장하는 것이 여기서 가장 쉬운 방법입니다.
간단한 해결책은 다음과 같습니다.
function! SelectFile()
let tmp = tempname()
execute '!ls | fzf >'.tmp
let fname = readfile(tmp)[0]
silent execute '!rm '.tmp
execute 'vsplit '.fname
endfunction
그런 다음 다음과 함께 사용하십시오.
:call SelectFile()
(또는 이에 대한 키 매핑이나 사용자 명령을 만듭니다.)
Vim을 사용하여 Vim 내부를 :terminal
실행하는 것도 좋은 선택입니다.fzf
:!
어쨌든 여기서 가장 좋은 접근 방식은 Vim 플러그인 중 하나를 사용하는 것입니다.fzf그 자체이며 아마도 더 완전할 수도 있습니다.fzf.vim이는 낮은 수준의 플러그인을 기반으로 구축되어 주변에서 얻을 수 있는 이점을 얻을 수 있는 강력한 기능을 제공합니다.