![새로운 urxvt 창 보존 테마의 Exec vim](https://rvso.com/image/109225/%EC%83%88%EB%A1%9C%EC%9A%B4%20urxvt%20%EC%B0%BD%20%EB%B3%B4%EC%A1%B4%20%ED%85%8C%EB%A7%88%EC%9D%98%20Exec%20vim.png)
nvim
별도의 터미널 창에서 시작 (이 아닌 ) 하는 간단한 스크립트를 만들고 싶습니다 gvim
(저는 urxvt
용어를 사용하고 있습니다). 현재 나는 다음을 가지고 있습니다:
#!/usr/bin/env bash
exec urxvt -hold -e "vim"
합법적이고 작동하는 것처럼 보이지만 문제는 터미널을 열 때 vim 테마가 로드되지 않는다는 것입니다(아마도 .bashrc
읽지 않았거나 다른 이상한 문제 때문일 수 있습니다).base16-쉘).
플러그인은 로드되지만 이는 nvim의 init 파일이 로드된다는 의미입니다. 나는 다음과 같은 것을하려고 노력했습니다.
exec urxvt -hold -e "source <absolute_path>/.bashrc; vim"
base16-shell이 터미널 테마(vim 테마에 대한 종속성일 수 있음)를 로드하도록 강제했지만 여전히 작동하지 않습니다.
뭔가 빠진 것 같은 느낌이 들지만 제대로 할 수는 없습니다. 이 스크립트를 작동시키는 방법은 무엇입니까?
답변1
좋아, 그래서 문제를 해결했습니다. -e
플래그는 실제로 실행하지 않고 명령을 실행하는 것으로 나타났습니다.인터렉티브.bashrc
bash 쉘은 bash가 시작 시 읽히지 않음을 의미합니다 .
base16-shell
터미널 테마(실제로 vim의 base16 테마의 종속성)를 초기화 하면 .bashrc
결국 nvim
기본 색상으로 스크립트를 실행하게 됩니다(종속성이 로드되지 않고 base16-vim이 제대로 초기화될 수 없기 때문에).
따라서 해결책은 bash
명시적으로 대화형 셸을 실행하여 .bashrc
base16 테마를 읽고 로드하는 것입니다. 그리고 해당 실행 후에만 가능합니다 ( 제 경우에는 nvim
별칭으로 사용됨 ).vim
전체 스크립트는 다음과 같습니다.
#!/usr/bin/env bash
# -hold urxvt option is not needed as vim stays running
# -i bash option to run interactively
exec urxvt -e bash -i -c "vim"