내 경험에 대한 최신 업데이트
0"+y$dd다음 매핑 의 일부 는 실제로 신중하게 생각하고 취향 / 워크 플로우 / 경험에 맞게 조정 해야하는 것입니다.
예를 들어, 매우 자주 버퍼에서 여러 줄로 끝나는 것을 발견했습니다. 여기서 커서가있는 줄만 실행하려고합니다. 이 경우 0"+y$dd:%d<CR>대신 사용할 수 있습니다 0"+y$dd.
그리고 이것은 가능한 시나리오 중 하나 일뿐입니다.
좋아하는 사람들을위한 최종 답변 vim
- /
vim로 설정 하면 명령 줄을 편집 할 때 편집하는 데 사용 됩니다.EDITORVISUALvim
- " 명령을 편집 할 때 거의 사용하지 않는) 파일을 " 후행 EOL없이 레지스터 에서 현재 행을 삭제하십시오 "조치 에 맵핑
au BufEnter /tmp/bash-fc.* nn <Leader>d 0"+y$dd:wq<CR>할 ~/.vimrc파일을 넣으십시오 .
Leaderd+
vim편집기 에서 명령 편집을 마치면를 누르십시오 EscapeLeaderd.
- 클립 보드를 터미널에 붙여 넣습니다 (이것은 터미널에 따라 다릅니다).
원래 답변
나는 종종 똑같이해야하며 다음과 같이합니다. (I 일반적으로 사용 set -o vi에서를 bash사용하는 경우 다음의 점 1과 2는 다른, 그래서 set -o emacs이 통일되는 점 1과 2과 같은 질문을 기반으로, 기본 Ctrl+ x다음 Ctrl+ e입력 어렵습니다, 이럴 .)
- 히트 Escape정상 모드로,
- 공격 v명령을 편집 에디터를 입력,
- 내가 원하는대로 명령을 편집
(여기서 질문하십시오.)
- 히트 Escape0"+y$dd:wq,
- 참고 : 0"+y$, 단순히 "+yy, 후자는 너무 줄 바꿈을 복사 할 것이고,이 명령 행에 붙여 넣기에 명령을 실행 초래하는 것처럼,
- 명령 행에 클립 보드 붙여 넣기
- 이 작업을 수행하는 방법은 사용중인 터미널에 따라 다릅니다. 나는 명중 Ctrl+ Alt+ v에서
URxvt.
- 승인 / 수동 편집으로 진행하십시오.
분명히 이것은 전체 명령을 삭제하기 전에 편집 된 명령을 클립 보드에 복사하여 편집기를 종료 할 때 아무것도 실행되지 않도록하는 해결 방법 일뿐입니다. 그러나 내가 직접 얻을 수있는 최선입니다.
최신 정보
내 EDITOR(및 VISUAL)가와 같으 vim므로 명령을 편집 할 때에서 편집하십시오 vim.
이 점에서, 나는 버퍼의 이름은 것을 눈치 챘을 /tmp/bash-fc.random경우, random6 자 영숫자 임의의 문자열입니다.
vim편집기로 사용 .vimrc하는 경우 전체 시퀀스를 실행 하기 위해 일부 매핑을 정의 할 수 있기 때문에 이것은 많은 가능성에 공간을 제공합니다 Escape0"+y$dd:wq. 예를 들어, 명령 행을 편집 할 때 거의 사용하지 않는 명령은 Leaderd; 따라서 파일에 다음 map핑을 넣을 수 .vimrc있습니다
au BufEnter /tmp/bash-fc.* nn <Leader>d 0"+y$dd:wq<CR>
위 레시피의 4 단계가
- 히트 EscapeLeaderd
edit-and-execute-command.