이전 질문으로 인해 결정했습니다.
alias groe= ?vim -c 'normal "+p1Gdddd"' -c ':%s/\n/' -c 'normal"gVGgJy"' -c'q!'?
내 예제에서 "?s"를 대체하여 작동하게 만드는 방법을 모르겠습니다. 물음표와 아포스트로피가 시도되었습니다. 어떤 아이디어라도 크게 감사하겠습니다. 감사해요
답변1
외부 따옴표를 잃을 수 있도록 쉘 함수로 만드십시오.
groe() {
vim -c 'normal "+p1Gdddd"' -c ':%s/\n/' -c 'normal"gVGgJy"' -c'q!' "$@"
}
, , , , , vim
매개변수를 사용하여 호출 해야 합니다 . at은 함수에 제공하는 인수를 확장하므로 작동해야 합니다.-c
normal "+p1Gdddd"
-c
:%s/\n/
-c
normal"gVGgJy"
-cq!
"$@"
groe foo.txt
답변2
"내부" 작은따옴표의 경우 외부 작은따옴표를 닫은 다음 이스케이프된 작은따옴표를 추가하고 외부 작은따옴표를 다시 열어 작은따옴표를 얻습니다.
echo 'It'\''s ugly.'
즉, 모든 것이 외부 작은따옴표로 묶 '
입니다 .'\''
별칭은 다음과 같습니다.
alias groe='vim -c '\''normal "+p1Gdddd"'\'' -c '\'':%s/\n/'\'' -c '\''normal"gVGgJy"'\'' -c'\''q!'\'''
$'...'
또는 작은따옴표를 한 번만 이스케이프하고 문자도 이스케이프하는 C 스타일 이스케이프를 사용할 수 있습니다 \n
.
echo $'It\'s a newline: \\n'
alias groe=$'vim -c \'normal "+p1Gdddd"\' -c \':%s/\\n/\' -c \'normal"gVGgJy"\' -c\'q!\''
답변3
MacOS에서는 my에 다음 줄을 입력하면 나중에 명령을 사용할 때만 유용한 별칭을 설정하는 .bash_profile
별칭이 제공된다는 것을 알았습니다.logr
alias logr="alias r='java -jar LogUtil.jar -gui'"
모든 새 쉘에 대해 생성한 전체 별칭 주위에 큰따옴표를 사용 ""
하지만 별칭은 명령을 실행한 후에만 사용할 수 있습니다.logr
r
logr