2013-11-15 4 views
1

예를 들어, vim을 사용하여 5 개의 파일을 열려면 쉘 스크립트를 작성하고 싶습니다. 첫 번째 탭에는 첫 번째 파일 만 표시되고 두 번째 탭에는 나머지 4 개의 파일이 왼쪽 상단 모서리, 오른쪽 상단 모서리, 왼쪽 하단 모서리, 오른쪽 하단 모서리에 표시됩니다. 현재 탭은 첫 번째 탭에 있습니다. 이 작업을 수행하는 방법? 내가Vim에서 특정 패턴의 파일을 명령 줄에서 열기

vim -option file -option 

같은 한 줄의 명령으로이 작업을 수행 할 수 있다면 좋을 것입니다. 그러나 나는 조금 노력했고 그렇게하지 않았다. 그것에 대한 제안이 있습니까?


추신. vim에서 여러 파일을 편집하는 방법을 알고 있습니다. 나는 매일 이런 종류의 일을한다. 내가 지금하고있는 일은 bash에서 동시에 여러 파일을 여는 것이다. 그리고 네, 저는 bash에서 -p와 -O 그리고 -o 옵션을 알고 있습니다. 하지만 그들은 같은 방식으로 반복적으로 열린 파일을 열어 내 요구 사항에 맞지 않습니다. 내가 찾고있는 것은 위에 명시된 요구 사항을 충족시키는 쉘 스크립트를 빌드하는 방법이다. 감사.

+0

무엇을 시도했는데 실패 했습니까? – romainl

+0

읽었습니까? [링크] (http://stackoverflow.com/questions/53664/how-to-effectively-work-with-multiple-files-in-vim) – Antarus

답변

4

사용자 지정된 스크립트 파일에 이러한 구성을 넣은 다음 해당 스크립트 파일을 선택적으로 사용하여 작업 영역 구성을 열 수 있습니다.

스크립트 파일 :

:bl 
:bf 
:tabe 
:n 
:split 
:vsplit 
:wincmd l 
:n 
:wincmd j 
:n 
:n 
:vsplit 
:wincmd l 
:n 
:wincmd h 
:wincmd k 
:tabn 

그리고 당신과 같은 호출 할 수는 :

vim -S script.vim file1.txt file2.txt file3.txt file4.txt file5.txt 

이 구성에 따라, 그 옆에 열려있는 탭,은 File2.txt에 정력을 엽니 다 , 전환 할 때 커서를 왼쪽 상단 파일 (file2.txt)에 놓습니다. 각 라인의

추가 설명 : 우리가 분할 할 때, 커서가 원래 창에 머물 것으로, 각 창 :n:N를 사용하여 독립적으로 탐색 할 수있는 다른 파일을 보여줄 것

참고. 새 창을 만들면 창을 만들 때와 같은 파일이 표시됩니다.

내 의견에 언급했듯이 처음 두 줄은 VIM에 모든 파일을 읽었 음을 알려주므로 VIM은 세션이 끝날 때 "편집 할 파일이 4 개 더 많습니다."라고 불평하지 않습니다.

:bl  Go to last file 
:bf  Go to first file 
:tabe  Create new tab 
:n  Open next file (file2.txt) 
:split Split horizontally (will create new window below with the content of file2.txt) 
:vsplit Split vertically (will create new window on the top right with the content of file2.txt) 
:wincmd l Go to the window to the right (which currently displays file2.txt) 
:n  Open next file (file3.txt) 
:wincmd j Go to window at the bottom 
:n  Open next file (file3.txt, because bottom window was displaying file2.txt) 
:n  Open next file (file4.txt) 
:vsplit Split vertically (will create new window on the right with content file4.txt) 
:wincmd l Go to window to the right (which is bottom right) 
:n  Open next file (file5.txt, because bottom-right window was displaying file4.txt) 
:wincmd h Go to window to the left 
:wincmd k Go to window above (this sets the cursor on file2.txt on top left) 
:tabn  Go to next tab (the first one, displaying file1.txt) 
+0

그래서 그것은 명령에서 자동으로 bash 명령에서 다음 파일을 읽습니다 스크립트에서 tabe 분할 및 esplit 등? – Chong

+1

예. 스크립트에서': n'을 사용하여 탭의 여러 파일을 탐색하고 원하는 탭을 각 탭에 표시합니다. ': bl : bf'는 처음에 vim에게 모든 파일을 읽었 음을 알려주기 때문에 세션이 끝날 때 "편집 할 파일이 4 개 더"라고 불평하지 않습니다. – justhalf

관련 문제