제가 많이 하고 있는 일은 다음과 같습니다.
less super/long/file/name
다음은:
vim super/long/file/name
이전 명령의 인수를 다음 명령으로 전달하는 쉬운 방법이 있습니까? 그래서 나는 다음과 같은 것을하고 싶습니다
vim !!!
super/long/file/name
자동으로 열리 도록 하세요 vim
.
답변1
이전 명령의 마지막 인수만 원하는 경우 를 사용하고 !$
, 마지막 명령의 모든 인수를 원하는 경우 를 사용합니다 !*
.
예
명령 #1:
$ echo 1 2 3 4
1 2 3 4
#1을 실행한 후 다음과 같이 하세요:
$ echo !$
echo 4
4
#1을 실행한 후 다음과 같이 하세요:
$ echo !*
echo 1 2 3 4
1 2 3 4
또한 다음 Unix 및 Linux Q&A와 @Gilles의 슈퍼유저 Q&A도 확인해 보시기 바랍니다.
콜론 구문
history
출력을 그리드로 생각할 수 있습니다 . 각 명령은 행이고, 각 명령의 각 매개변수는 열입니다. 다음과 같습니다: ( !
열 :
).
따라서 다음과 같이 이전 명령을 참조할 수 있습니다.
$ history | grep "105[8-9]"
1058 echo 1 2 3 4
1059 echo 5 6 7 8
$ echo !1058:2
echo 2
2
$ echo !1059:3
echo 7
7
답변2
다음을 사용하여 !$
bash 셸에서 이전 명령의 마지막 매개변수에 액세스할 수 있어야 합니다 .
less super/long/file/name
vim !$
readline 라이브러리가 emacs 모드(기본 옵션)에서 활성화된 경우 Meta+ .또는 Esc+를 사용하여 마지막 인수를 붙여넣을 수도 있습니다..
답변3
less
Miguel de Val-Borro가 귀하의 질문에 대한 올바른 일반적인 답변을 제공했지만 이 특정 및 순서를 자주 수행한다고 말씀하셨기 때문에 less 내부를 눌러 구성된 편집기를 열 vim
수 있다는 점을 언급할 가치가 있습니다 . vLesser Manual에서 v
:
Invokes an editor to edit the current file being viewed. The
editor is taken from the environment variable VISUAL if defined,
or EDITOR if VISUAL is not defined, or defaults to "vi" if nei‐
ther VISUAL nor EDITOR is defined.
답변4
또 다른 가능성:
r=super/long/file/name
less $r
vi $r
ls -l $r
chmod 600 $r
cat $r >> some/other/even/longer/file/name
...
super/long/file/name
입력 내용을 저장하려면 입력 등에 탭 완성 기능을 사용할 수 있어야 합니다 . 물론 이 변수에는 특별한 것이 없습니다 r
. 단지 달러 기호 키에 가깝기 때문에 이 변수를 선택했습니다.