스크립트를 통해 zsh-autosuggestions
플러그인을 추가하고 싶습니다.~/.zshrc
원래의:
plugins=(git)
또는
plugins=(git
some1
some2)
표적:
plugins=(git
zsh-autosuggestions)
이것은 작동하지 않습니다.
sed -i 's/^plugins=\(([^\)]*)\)/plugins=\(\1\nzsh-autosuggestions\n\)/' ~/.zshrc
헷갈리네요
([^\)]*)
1그룹인줄 알았는데 왜 안되나요하지만 첫 번째 그룹을 삭제하세요.
()
sed -i 's/^plugins=\([^\)]*\)/plugins=\(\1\nzsh-autosuggestions\n\)/' ~/.zshrc
밝혀지다
plugins=((git zsh-autosuggestions ) )
()
으로 탈출했는데\
왜 1군이 되나요?
답변1
Sed
해결책:
샘플 ~/.zshrc
콘텐츠:
param=val1
plugins=(git)
param2=val2
plugins=(git
some1
some2)
param3=val3
sed '/^plugins=/ N;N; s/\(=([^)]*\))/\1\nzsh-autosuggestions)/' ~/.zshrc
N
- 패턴 공간에 개행 문자를 추가한 후 패턴 공간에 다음 입력 라인을 추가합니다.\(...\)
- 정규식으로 캡처된 그룹은\
in으로 이스케이프 되어야 합니다.갈아 바수다특별한 의미를 부여하다
산출:
param=val1
plugins=(git
zsh-autosuggestions)
param2=val2
plugins=(git
some1
some2
zsh-autosuggestions)
param3=val3
답변2
다음 명령은 나에게 잘 작동합니다
주문하다
echo "plugins=(git)" | sed "s/(.*[^)]/&\nzsh-autosuggestions/g"
산출
plugins=(git
zsh-autosuggestions)