문제

이 일반적인 IDE 기능을 사용할 수 있는지 궁금합니다.

VIM을 사용하여 많은 파일을 열고 있다고 가정 해 봅시다 vsplit 그리고 split. 그런 다음 모든 것을 닫습니다.

그 다음날, 나는 그 파일을 복구하고 싶습니다. 즉, 개방 된 방식을 복구하고 각각을 열 필요가 없습니다 (사용 split 그리고 vsplit) 다시.

그게 가능합니까?

업데이트:

사용 mksession! 그리고 source 명령, 매핑 명령 .vimrc 파일, 특정 파일을 작성하기 위해 매핑을 매개 변수화하는 방법이 있습니까?

예를 들어:

map <F2> :mksession! ~/vim_session @INSERT_HERE<cr> "Save session to @INSERTHERE file

미리 감사드립니다

도움이 되었습니까?

해결책

MKSESSION을 사용하여 맵핑 할 수 있습니다. 다음은 f2와 f3을 사용하는 .vimrc의 예입니다.

map <F2> :mksession! ~/vim_session <cr> " Quick write session with F2
map <F3> :source ~/vim_session <cr>     " And load session with F3

다른 팁

:mksession 명령, a session:

세션은 모든 Windows의보기와 전역 설정을 유지합니다. 세션을 저장할 수 있으며 나중에 복원하면 창 레이아웃이 동일하게 보입니다. 세션을 사용하여 다른 프로젝트간에 빠르게 전환하여 해당 프로젝트에서 마지막으로 작업 한 파일을 자동으로로드 할 수 있습니다.

사용을 고려할 수 있습니다 GNU 화면. 요컨대 : 사용자가 단일 터미널 세션 내에서 여러 개의 별도 터미널 세션에 액세스 할 수있는 명령 줄 창 관리자입니다. 나에게 가장 큰 장점은 세션을 분리하고 터미널 창을 닫고 나중에 세션을 다시 붙잡고 계속 작업 할 수 있다는 것입니다.

내가 찾은 가장 좋은 방법은 Vim-Session 플러그인을 사용하는 것입니다. http://github.com/xolox/vim-session 추가하여 설치할 수 있습니다.

Plugin 'xolox/vim-session'

.vimrc에 다음과 같이

:PluginInstall

이 플러그인은 여러 세션을 지원합니다. 이름별로 세션을 식별 한 다음 해당 이름으로 관리합니다. 세션을 추가, 삭제, 업데이트, 나열된 ...

나는 지금 몇 달 동안 그것을 사용해 왔습니다. 추천.

이 책에 관심이있을 수 있습니다.

http://www.swaroopch.com/notes/vim#download

Vim이 얼마나 위대한 지에 대한 예로 그들이 보여주는 첫 몇 가지 중 하나입니다. ;)

또한, <cr> 캐리지 리턴을 나타냅니다.

세션 맨 http://www.vim.org/scripts/script.php?script_id=2010더 쉬운 기능을 제공합니다. Minibufexplorer에주의하십시오. vim_use의 Andrew가 만든 수정 된 버전을 사용하지 않는 한 양립 할 수 없습니다 (그때도 중간에만 호환됩니다).

내 솔루션은 다음과 같습니다. .VIMRC 파일에 넣습니다. HTH.

" session related.
" Default session is located `~/.session_'. The suffix `_' is a dirty
" solution, just like the one-element tuple `(tuple_eliment,)' in Python..
cnoremap <C-O> source ~/.session_
cnoremap <C-S> mksession! ~/.session_
nnoremap <silent> <C-S><C-S> :mksession! ~/.session_ <CR>

더 복잡한 것처럼 보이지만 저장 및로드 할 여러 세션이있는 경우 매우 유용합니다.

추신
여기, 나는 친숙한 것을 채택합니다 <Ctrl-S> 그리고 <Ctrl-O> 단축키, 세션을 저장 및로드하기위한 바로 가기. IMHO, 이것은 내 손을 내 손에 닿는 것보다 더 편안합니다. <Fn> 열쇠. ;-)

사용하는 것이 좋습니다 Vim-Obsession. 기본값보다 훨씬 낫습니다 mksession 당신이 원하는 것을하고있는 동안 그것은 당신의 상태에서 벗어나면서.

HGMNZ의 답변과 업데이트 확장을 기반으로합니다.

당신은 그것을 떨어 뜨릴 수 있습니다 <cr> 매핑에서 명령을 완료하기 위해 명령 모드로 연결됩니다.

map <F2> :mksession! ~/<will stop here and you can type>

명령 모드로 이동하면 %를 입력 한 다음 탭을 누르면 현재 파일의 절대 경로로 확장되면 % : p : h 및 탭을 눌러 현재 파일의 디렉토리로 확장 할 수 있습니다.

또한 각 세션을 작업 디렉토리에 저장할 수 있으며 로컬 버퍼 디렉토리를 사용하면 작업 디렉토리에 대한 여러 세션을 가질 수 있습니다.

map <F2> :mksession! ./.vim_sessions <cr> " Will save session to current buffers directory.
map <F3> :source ./.vim_sessions <cr>
:lcd " Changes the current's buffer directory

또한 모든 전류로드 버퍼를 내릴 때 세션을 재 장전에주의하십시오 (http://vimdoc.sourceforge.net/htmldoc/starting.html#%3amksession)

  1. 현재로드 된 모든 버퍼를 모두 내립니다.
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top