stow
올바르게 사용하는 데 문제가 있습니다 . 모든 것을 설치하는 데 사용하는 스크립트는 stow
다음과 같습니다.
cd ~/Utility/configs
for file in *; do
# Only run Stow on the directories in the dotfiles folder and not the individual files.
# Using 'basename' strips the filepath from the directory name.
if [ -d ${file} ]; then
stow $(basename $file) -t ~/
echo "$(basename $file) stowed.";
fi
done
지금은 vim
디렉토리에 다음이 있습니다 ~Utility/configs/vim/
.
tree . -a -L 2
.
├── .stow-local-ignore
├── .vim
│ ├── autoload
│ ├── plugged
│ └── UltiSnips
└── .vimrc
무시하고 싶은 것은 plugged
저장되지 않으므로 다음과 같습니다 .stow-local-ignore
.
\.vim/plugged
\.vim/spell
그러나 이것은 의도한 대로 작동하지 않았고 삽입이 항상 취소되었습니다. 기본적으로 ~/.vim/의 내용은 거기에 있습니다 ~/Utility/configs/vim/.vim
. 이것이 내가 원하지 않는 것입니다. 나는 특히 원한다오직 autoload
그리고 Ultisnips
다른 것은 아무것도 저장할 수 없습니다.
어떻게 해야 하나요?
참고: 저는 vim을 예로 사용하고 있지만 이것은 vim과 관련이 없고 stow와 관련이 있습니다. 그래서 vim 채널 대신 여기에 게시하겠습니다.
출력 저장, 세부정보=5
Stowing contents of Utility/configs/vim (cwd=/home/rudra)
=> Utility/configs/vim
is_a_node(.)
link_task_action(.): no task
dir_task_action(.): no task
parent_link_scheduled_for_removal(.): prefix
parent_link_scheduled_for_removal(.): returning false
is_a_node(.): really exists
Using ignore file: Utility/configs/vim/.stow-local-ignore
Ignore list regexp for paths: /(?^:(^|/)(\.vim/spell|^/\.stow\-local\-ignore$|\.vim/plugged)(/|$))/
Ignore list regexp for segments: none
Not ignoring .vimrc
Stowing Utility/configs / vim / .vimrc
=> Utility/configs/vim/.vimrc
is_a_link(.vimrc)
link_task_action(.vimrc): no task
is_a_link(.vimrc): returning 0
is_a_node(.vimrc)
link_task_action(.vimrc): no task
dir_task_action(.vimrc): no task
parent_link_scheduled_for_removal(.vimrc): prefix .vimrc
parent_link_scheduled_for_removal(.vimrc): returning false
is_a_node(.vimrc): returning false
LINK: .vimrc => Utility/configs/vim/.vimrc
Using ignore file: Utility/configs/vim/.stow-local-ignore
Using memoized regexps from Utility/configs/vim/.stow-local-ignore
Ignore list regexp for paths: /(?^:(^|/)(\.vim/spell|^/\.stow\-local\-ignore$|\.vim/plugged)(/|$))/
Ignore list regexp for segments: none
Ignoring path /.stow-local-ignore
Using ignore file: Utility/configs/vim/.stow-local-ignore
Using memoized regexps from Utility/configs/vim/.stow-local-ignore
Ignore list regexp for paths: /(?^:(^|/)(\.vim/spell|^/\.stow\-local\-ignore$|\.vim/plugged)(/|$))/
Ignore list regexp for segments: none
Not ignoring .vim
Stowing Utility/configs / vim / .vim
=> Utility/configs/vim/.vim
is_a_link(.vim)
link_task_action(.vim): no task
is_a_link(.vim): returning 0
is_a_node(.vim)
link_task_action(.vim): no task
dir_task_action(.vim): no task
parent_link_scheduled_for_removal(.vim): prefix .vim
parent_link_scheduled_for_removal(.vim): returning false
is_a_node(.vim): returning false
LINK: .vim => Utility/configs/vim/.vim
Planning stow of package vim... done
@Kusalananda: 이것이 제가 하는 일입니다. verbose=2:
pwd
/home/rudra/Utility/configs
mv vim/.stow-local-ignore ~/
stow -D vim --verbose=2
stow dir is /home/rudra/Utility/configs
stow dir path relative to target /home/rudra/Utility is configs
Planning unstow of package vim...
CONFLICT when unstowing vim: existing target is neither a link nor a directory: .vimrc
.vim did not exist to be unstowed
Planning unstow of package vim... done
WARNING! unstowing vim would cause conflicts:
* existing target is neither a link nor a directory: .vimrc
All operations aborted.
cd vim/
stow -D .vim --verbose=2
stow dir is /home/rudra/Utility/configs/vim
stow dir path relative to target /home/rudra/Utility/configs is vim
Planning unstow of package .vim...
UltiSnips did not exist to be unstowed
autoload did not exist to be unstowed
plugged did not exist to be unstowed
Planning unstow of package .vim... done
Processing tasks...
stow -D .vimrc --verbose=2
stow dir is /home/rudra/Utility/configs/vim
stow dir path relative to target /home/rudra/Utility/configs is vim
stow: ERROR: The stow directory vim does not contain package .vimrc
cd ..
ll ~/.vim*
lrwxrwxrwx. 1 rudra rudra 24 Apr 30 16:16 /home/rudra/.vim -> Utility/configs/vim/.vim
-rw-------. 1 rudra rudra 13K Apr 30 16:17 /home/rudra/.viminfo
lrwxrwxrwx. 1 rudra rudra 26 Apr 30 16:10 /home/rudra/.vimrc -> Utility/configs/vim/.vimrc
unlink ~/.vim
unlink ~/.vimrc
cp ~/.stow-local-ignore vim/
stow vim -t ~/ --verbose=2
stow dir is /home/rudra/Utility/configs
stow dir path relative to target /home/rudra is Utility/configs
Planning stow of package vim...
LINK: .vimrc => Utility/configs/vim/.vimrc
LINK: .vim => Utility/configs/vim/.vim
Planning stow of package vim... done
Processing tasks...
Processing tasks... done
tree ~/.vim -L 1
/home/rudra/.vim
├── autoload
├── plugged
└── UltiSnips
답변1
무시 파일의 구문이 정확합니다.
이 .stow-local-ignore
파일은 일단 생성되면 유효합니다.
적용되면 로드, 다시 로드 및 언로드에 영향을 줍니다.
즉, 디렉토리를 넣고그 다음에파일 무시를 추가했습니다. 디렉터리를 복원하거나 취소하면아니요에 저장된 영향을 받는 파일은 .stow-local-ignore
해당 파일을 가리키는 기호 링크가 설치된 상태로 유지됩니다.
따라서 디렉토리에 를 추가할 .stow-local-ignore
때 다음 작업 흐름을 따르십시오 .
- 디렉토리가 다음과 같은지 확인하세요.아니요치워두세요.
- 파일 추가
.stow-local-ignore
. - 저장 디렉터리.
지금 해야 할 일은 무시 파일을 삭제/이름 바꾸기, 디렉터리 스택 해제, 무시 파일 추가 및 디렉터리를 다시 숨기는 것입니다.