Vim-하나의 명령으로 버퍼 저장 및 닫기


25

디렉토리에 많은 텍스트 파일이 있으며 각 파일을 개별적으로 편집해야한다는 것을 알고 있습니다.

나는 칭찬 라인에서 시작

vim *.txt

vim에서 파일을 별도의 버퍼로 열고 첫 번째 파일을 보도록 남겨 둡니다. 나는 그것을 편집 한 다음 ': w'를 사용하여 저장하고 ': bd'를 사용하여 버퍼를 닫고 다음으로 이동합니다.

버퍼를 저장하고 닫는이 ': w : bd'는 오랫동안 느낌이 들었습니다. 더 많은 vim 닌자 방법이 있다고 생각합니다. 한 번에 느꼈을 때 버퍼를 저장하고 닫는 권장 방법은 무엇입니까?


권장되는 방법은 :next버퍼 로 이동 하여 작업이 끝나면 모든 것을 쓰거나 닫는 것입니다 :wqa. 이것은 귀하가 :set hidden에 있다고 가정 합니다 ~/.vimrc.
romainl

답변:


22

명령 행에서 파일을 Vim에 전달할 때 파일은 버퍼에서 열릴뿐만 아니라 인수 목록을 채 웁니다 . 따라서 :nextand와 같은 명령 :first을 사용하여 탐색 할 수 있습니다 (그리고 :argdo일괄 처리에는 멋진 트릭이 될 수 있음). 귀하의 질문에 권장하는 명령은 :wnext(짧은 형식 :wn)이며 :write, 현재 버퍼이며 그다음으로 이동합니다 :next.

:bdelete특히 일련의 파일을 사용하여 명령 줄에서 Vim을 시작할 때가 아니라면 버퍼 를 명시 적으로 지정할 필요가 없습니다 . (내가 생각할 수있는 유일한 예외는 시스템 메모리를 절약하기 위해 큰 파일을 언로드하거나 여러 가지 편집을 위해 단일 GVIM 인스턴스를 재사용하는 것입니다.)

그러나 실제로 원하는 경우 사용자 정의 명령을 정의하십시오.

:command Wd write|bdelete

5
OP가 요청한 것을 달성하는 두 가지 방법을 언급했지만 두 번째 방법은 명확하지 않습니다 :w|bd.
Jonno

-> 이것은 OP가 사용하는 접근 방식을 맞추는 이점이 있지만 :next어떤 경우에는 더 합리적입니다.
Jonno

4

난 당신이하지 않는 것에 동의하지만 현재 사용하지 않는 모든 버퍼를 삭제, 내가 가지고 있기 때문에이를 삭제할 VIM-항공사 의 상단에서의 탭 라인이 활성화되는 쇼 열려있는 모든 버퍼 모든 시간을 창문. 내 안에 다음이 있습니다 .vimrc.

nnoremap qq :w\|bd<cr>

qq 현재 버퍼를 저장하고 닫을뿐 아니라 vim의 "레코드 매크로"기능도 엉망입니다.


2
내장 기능 ZZ이 마음에 들지만 버퍼를 삭제하는 대신 Vim을 완전히 저장하고 종료하게됩니다. zz현재 커서 라인의 뷰를 중앙에 배치하는 것보다 매크로가 더 가치있는 것을 발견하는 사람에게는 소문자 가 흥미로운 대체 맵핑 일 수 있습니다.
8bittree

1
QVim에서 얼마나 소중한 녹음이 가능한지 깨달은 후 최근에로 변경했습니다 .
apostl3pol
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.