파이프를 사용하여 vim에서 파일을 여는 방법


15

locate명령을 매우 자주 사용합니다 .

따라서 다음 명령을 실행하면

locate updatedb | head -1

그런 다음 나에게 O/p

/usr/updatedb.conf

해당 파일을 직접 열 수있는 명령이 있는지 궁금합니다.

나는 이런 것을 기대하고 있습니다.

locate updatedb | head -1 | vim

답변:


22

거의 끝났습니다 :

$ locate updatedb | head -1 | xargs vim

때때로 (특정 터미널에서) 편집 후 터미널을 재설정해야합니다.

$ reset

2
대부분의 아마 버전이 locate있습니다 -l/ --limit/ -n당신이 필요하지 않도록 옵션 head -1:locate -n 1 updatedb | xargs vim
드미트리 알렉산드로

1
이 터미널 손상은 왜 발생합니까? 피할 수있는 방법이 있습니까?
Jacobo de Vera

16

대화식 편집기 인 Vim에는 stdin과 stdout이 모두 필요하므로 파이프 내에서이를 사용하는 것은 문제가되며 Vim은 이에 대해 경고합니다. 단일 파일의 경우 프로세스 대체가이를 쉽게 해결합니다.

vim "$(locate updatedb | head -1)"

백틱을 사용할 수도 있으며 Vim 자체에서도 작동합니다.

:edit `locate updatedb | head -1`

공백이있는 문자열에서도 작동합니다. "version 2-final.csv"와 같은 파일 이름에 적합합니다.
Alex Moore-Niemi

0

나는 이것이 나쁜 해결책이라는 것을 알고 있지만 .bashrc에서 별칭을 만들기 위해 이것을 사용했다.

locate updatedb  > /tmp/vimForTempDontTouch && vim /tmp/vimForTempDontTouch

단점 : 못생긴

이점 : 맨끝에 부작용 없음

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.