답변:
지금까지 최고의 기능에 대해 이야기하고 있습니다!
vi 명령을 사용하여 쉘 명령 (및 명령 기록)을 .bashrc
파일 에 추가하여 편집 할 수 있습니다.
set -o vi
명령 행에서 해당 명령을 실행하여 현재 세션에만 영향을 줄 수도 있습니다.
bash를 사용하지 않는다면, 쉘에 적절한 rc 파일을 대체하십시오.
이것은 당신이 명령을 편집하기 위해 vi 명령을 사용할 수 있습니다 ...
j및 k을 사용 하여 기록을 이동할 수도 있습니다 (을 누른 후 ESC).
/을 누른 후을 사용 ESC하여 이전 명령을 검색 할 수도 있습니다 .
다시 말해 cp
10 분 전에 수행 한 매우 긴 명령 을 찾으려면 다음과 같이하십시오.
ESC/cpENTER
그런 다음 n및로 기록에서 일치하는 모든 명령을 순환 할 수 있습니다 N.
이 모든 것이 명령 줄에서 10 조 배나 더 생산성을 높입니다!
vi bindings in the shell
발명 된 것 중 가장 큰 특징이라고 생각합니다 !
jj
하는 ESC
것처럼 묶을 수있는 방법이 있습니까?
bash를 사용하고 있다면 jahroy와 evil otto가 이미 대답했듯이
set -o vi
bash가 vi 스타일 편집 명령을 사용하도록합니다.
이 작업을 완료 Esc v하면 현재 명령 행의 사본이 포함 된 임시 파일로 vi 편집기를 시작하도록 입력 할 수 있습니다 . 여러 줄로 바꾸어도 명령을 편집 할 수 있습니다. 파일 ( :wq
) 을 저장하면 셸은 편집 된 명령을 실행합니다.
너가 선호한다면
set -o emacs
당신은 Ctl-XCtl-E같은 일을 할 수 있습니다 . $EDITOR
반드시 emacs가 아닌 선호하는 편집기를 사용합니다 .
(개인적으로는 대부분의 편집에 vi (실제로 vim)를 사용하지만 set -o emacs
쉘에서는 선호 합니다. 삽입 모드를 전환하거나 파일을 편집하는 것은 좋지만 대화 형 명령은 어색합니다 .YMMV.)
set -o emacs
당신이 원하는 것을하지 않습니까?
set -o vi
@jahroy가 게시 한대로 줄 편집 명령을 변경 하는 데 사용할 수 있지만 fc
명령을 생각하고있을 수 있습니다 (bash에서 사용 가능하고 ksh는 생각하지만 tcsh는 아닐 것입니다). 이전 명령을 편집기 (FCEDIT 또는 EDITOR)에 넣습니다. (vi)로 설정 한 다음 편집기를 종료 할 때 명령을 실행합니다. 맨 페이지 또는 help fc
자세한 내용을 참조하거나 사용해보십시오.
alias r='fc -e -'
이전 명령을 다시 실행하는 데 유용한 별명입니다. fc
그 자체로는 Korn shell에서 유래 한 것 같습니다. 번호로 명령을 지정할 수 있습니다 ( fc 123 129
히스토리에서 명령 번호 123-129를 편집하기 위해). 상대 번호를 지정할 수 있습니다 ( fc -10 -1
마지막으로 입력 한 10 개의 명령을 편집하기 위해). 로 이전 명령을 나열 할 수 있습니다 fc -l
. r
별명 을 앞에 접두어로 명령을 지정할 수 있습니다 ( r make
마지막 호출 실행 make
; 마지막 실행 이후 명령을 r m
실행 하지 않은 경우 등). mv
make
vim에서 가장 최근에 사용한 명령을 편집하고 편집기 저장 후 종료 한 후 편집 된 버전을 호출하려면 fc
쉘 내장을 사용하십시오 . 인수가 없으면 다음을 수행합니다.
/tmp
하고 가장 최근에 입력 한 명령 으로 파일을 채 웁니다.:cquit
).명령은 bash와 zsh에서 모두 작동합니다.
실제로 이것은 실제로 가장 큰 특징입니다. 그래도 더 있습니다 :
라는 파일을 만듭니다
.editrc
라인을 포함
bind -v
Editline 은 BSD 라이센스 버전 라이브러리로, readline-like 서비스를 제공합니다. .editrc는 MySQL의 명령 줄 셸 또는 readline을 사용하지 않는 응용 프로그램에서 키 바인딩을 vi 모드로 설정합니다.
몇 년이지나면서 다소 잊어 버렸습니다. 따라서 .zshrc 는 vi 모드의 일부 래퍼 를 소스 로 사용하여 명령 줄에서 어떤 모드인지 보여줍니다. 좋네요
zsh에서 입력 할 수 있음을 알고 있습니다.
bindkey -L
키 바인딩 목록을 얻습니다. bash는 비슷한 것이 있어야한다고 확신합니다. 모든 vi 키가 기본적으로 바인딩 된 것은 아닙니다. 자신에게 맞는 모습을 보여주고 레이스에서 벗어납니다.
터미널에을 입력하십시오
export EDITOR=vi
.
이 설정을 저장하려면 이 줄을 ~ / .profile 파일에 넣으십시오.
$EDITOR
)를로 설정 vi
합니다. 쉘 명령을 vi
(적어도 직접적으로는) 사용하여 편집 할 수는 없습니다 .
$EDITOR
포함하는 경우 기본적으로 vi 편집 모드로 설정됩니다 vi
. 나는 이것이 유일한 쉘이라고 생각합니다.