창, 분할 및 버퍼 레이아웃을 저장하는 방법은 무엇입니까?


56

하나의 저장소에서 여러 작업을 수행하고 있습니다. 작업을위한 "작업 공간"을 만들고 싶습니다.

하나의 "작업 공간"또는 "버퍼 배치"(사용하여 내가 원하는 레이아웃에서 열려있는 작업을하는 데 필요한 모든 파일이 것 ^w+v, ^w+s창을 분할).

그런 다음 다른 작업을 시작할 때 현재 레이아웃을 저장하고 다른 레이아웃으로 이동하고 싶지만 이전 레이아웃으로 돌아가고 싶습니다.

이것을 달성하는 가장 좋은 방법은 무엇입니까?

답변:


48

당신은 정력의를 사용할 수 있습니다 :mksession사용하여 세션을 다시하고, 다른 파일에 "작업 공갂"각 쓰기 vim -S session_file: 당신은 다음 플러그인을 사용하여 열려 있다면 나는 Startify 플러그인 내가 시나리오 이런 종류의 필요한 정확히 찾을 수 있습니다, 그러나, HTTPS : //github.com/mhinz/vim-startify

vim 및 mccvim에서 세션을 관리하는 훌륭한 작업을 수행하며 vim을 열 때 최신 파일 목록을 제공합니다. 올바른 작업 디렉토리로 자동 변경됩니다. 또한 파일을 startify 시작 화면에 고정 할 수도 있습니다..vimrc


23

tpope의 vim-obsession 플러그인을 사용하여 세션을 쉽게 관리 할 수 ​​있습니다. Vim의 내장 래퍼와 비슷 mksession하지만 다른 기능도 제공합니다.

명령을 제공하여 현재 세션 (또는 버퍼 레이아웃)을 저장할 수 있습니다 :Obsess. 인수를 제공하지 않으면 Session.vim기본적으로 호출 된 세션 파일이 작성 됩니다.

세션을 다시로드하려면을 사용 vim -S <session-name>하거나 :source <session-name>이미 Vim에있는 경우 사용하십시오 .

좋은 점은 Vim을 종료 할 때마다 세션을 저장하지 않아도된다는 것입니다. 플러그인에 의해 자동으로 관리됩니다.

vim-obession의 또 다른 중요한 특징은 옵션과 맵을 저장하지 않는다는 것입니다. mksession버퍼 레이아웃을 저장하려는 경우에는 원하지 않는 현재 옵션 및 맵을 캡처합니다. 또한 플러그인 업데이트 등을 방해합니다.


여러 세션 파일을 관리 할 수 ​​있습니까?
Nebril

1
@Nebril 그것은 할 수 있습니다. 세션을 저장할 때 형식을 사용하십시오 :Obsess <session-name>. 다시로드 할 때 원하는 특정 세션 이름을 사용하십시오.
thameera 2019

나는 강박 관념이 수직 분할을 기억하지 않는 반면, mksession은 그것을 기억했습니다. 그래도 오늘 밤에 엉망이되었습니다. 놓친 것이 있습니까?
baxx

1
@baxx Obsession은 모든 종류의 분할을 기억합니다. vim을 종료하기 전에 분할을 닫았습니까?
thameera

2
@baxx 이것은 오래되었지만 다른 사람을 돕기 위해 메모를 추가하고 싶었습니다. 강박 관념이 분할을 잊고있는 것처럼 보이는 이유는 아마도 모든 분할을 종료하여 vim을 떠나기 때문일 것입니다. 이것은 vim을 닫을 때 마지막 상태가 마지막 창이라는 것을 의미합니다. 나는 탭과 같은 문제가 있었고 대답은 : qa를 사용하여 열려있는 모든 창, 분할, 탭을 종료하는 것입니다. 더 나은 옵션이 있으면 알려주십시오.
TC0072

12

부수적으로, 나는 또 다른 플러그인 dhruvasagar / vim-prosessiontpope / vim-obsession 의 확장으로 빌드 하여 중앙 저장소에서 기본적으로 vim 세션을 생성하고 관리 하는 기능을 향상 시켰습니다. 디렉토리에 따라 구성별로 디렉토리에 인수없이 vim을 시작하면 자동으로로드됩니다. 또한 편의상 다른 세션간에 전환 할 수 있습니다.


대단해 실행 취소 및 백업 파일과 비슷한 폴더에서 세션 파일을 관리하여 프로젝트가 혼란 스왑 파일로 혼동되지 않도록 할 수 있다면.
dragon788

1

vim-workspace 플러그인을 사용해 볼 수 있으며 , 세션 관리 기능은 자동화되어 있으며 현재 작업 디렉토리에 대해 범위가 지정되며 매우 간단합니다 ( ToggleWorkspace한 번만 실행 하면 됨).

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.