Linux 터미널에서 VIM 인스턴스를 재사용하십시오
문제
VIM에서 원격 기능을 사용하면 VIM 인스턴스를 재사용하여 필요에 따라 여러 파일을로드 할 수 있습니다.
동일한 터미널 인스턴스 내에서 해당 시설을 갖는 것이 좋을 것입니다.
VIM 7+에서 사용할 수있는 탭 기반 인터페이스를 갖고 싶어합니다. 시나리오는
- 열린 터미널
- vim file1.cpp
- 편집 - 저장 -Ctrl+z를 프롬프트하려면 ctrl+z
- 다른 파일을 엽니 다
- vim file2.cpp
- 이제 동일한 편집기에 File1.cpp 및 File2.cpp가 열려 있습니다.
가능합니까?!
해결책
나는 당신이 말하는 것도 정확히 말하지는 않지만 당신을위한 몇 가지 제안이 있습니다. 첫 번째는입니다 괴상한 나무, 다른 파일을 열기위한 멋진 트리 기반 파일 브라우저를 제공합니다. 매우 편리합니다. 나는 또한 뜨거운 열쇠를 설정했다 (ctrl+o
) 열기 위해 괴상한 나무 나를 위한. 나는 내가있는 모든 프로젝트의 별칭을 유지합니다. ~/curr/trunk
, 그래서 이것은 항상 나에게 적합합니다.
map <C-O> :NERDTreeToggle ~/curr/trunk/<CR>
내가 제안 할 또 다른 것은 Ctrl+z를 없애는 것입니다. 그것은 다소 어리 석고, 그 방법을 사용하는 사람을 아는 모든 사람은 길을 잃고 3 ~ 4 Vim이 백그라운드에서 달리는 경향이 있습니다. 직접 쉘을 열는 방법을 살펴보십시오. 쉘 스크립트를 실행하기 위해 맵을 사용합니다.
map ;s :!~/.vim/shell.sh<CR>
실행 :
#!/bin/sh
/usr/local/bin/bash -l;
나는 또한 내 .profile에 약간의 마법이 있습니다.
if [ "$VIMRUNTIME" != "" ] ; then
export PS1="\u@\h \W \t$ vim> "
fi
u003C/2 cents>
다른 팁
이것이 당신이 지정하는 방식으로 정확하게 수행 할 수 있는지 확실하지 않지만 로컬 컴퓨터에서 실행되는 VIM 서버를 사용하여 매우 유사한 작업을 수행 할 수 있습니다.
살펴보십시오 :help remote.txt
vim에서.
VIM 버전이 컴파일 된 경우 +clientserver
vim을 사용하여 vim 서버를 작성한 다음 다른 파일을 열기 위해 명령을 실행할 수 있습니다.
그만큼 --servername
스위치는 새 서버를 생성 할 수 있습니다 --remote
스위치는 추가 명령이나 파일을 보낼 수 있습니다.
예를 들어
vim --servername test file1.txt
vim --servername test --remote file2.txt
나는 보았고, 내 컴퓨터 중 하나의 Xubuntu에서 표준으로 사용하는 Vim은 그것을 가지고 있지 않지만 몇 가지 지침이 있습니다. 여기 당신이 그것을 편집 한 경우 도움이 될 수 있습니다. 그렇지 않은 경우 GVIM 및 Symlinking을 설치하는 것은 분명히 옵션 (GVIM이 기본적으로 포함 된 것처럼) 또는 소스에서 바이너리를 컴파일하는 것입니다.
편집하다:
나는 GVIM과 더 많은 놀이를 가지고 있었고 이것은 터미널 내에서 이것을 할 수없는 것처럼 보이지 않습니다. Control-Z는 프로세스 수준에서 작업을 중단합니다. 화면에서 작동 할 수 있다고 생각했지만 GVIM이 그래픽 창에서 시작되지 않으면 커뮤니케이션이 발생하지 않는 것 같습니다.
VIM을 컴파일하면 쉽게 할 수 있습니다. +clientserver
, 처럼 Andy는 이전 답변에서 제안했습니다.
나는 다음을했다 :
나는 서버로 vim을 시작했습니다.
vim --servername abc
나는 그것을 정지했다 CTRL+Z
그리고 그랬습니다 :
vim --servername abc --remote ~/.cshrc
fg
이제 Vim이 있었다 ~/.cshrc
열려 있는.
그럼 나는했다 :
vim --servername abc --remote ~/.aliases
fg
이제 Vim은 하나의 버퍼를 가지고있었습니다 ~/.cshrc
그리고 또 다른 ~/.aliases
.
그럼 나는했다 :
vim --servername abc --remote-tab ~/foo_bar
fg
그리고 지금 나는 vim이 이전 버퍼 두 개를 열고 다른 탭이있는 하나의 탭을 가지고있었습니다. ~/foo_bar
열려 있는.
콜 케이스의 경우 Vim은 GUI가 아닌 터미널에서 실행되었습니다.
현재 화면을 분할하고 다음과 같은 방식으로 두 개 (또는 그 이상) 파일을 열 수 있습니다.
수평 분할의 경우 :
:sp 'filename'
그리고 수직 분할을 위해 : do :
:vsp 'filename'
둘 사이의 탭을 탭하려면 Ctrl+W를 누른 다음 화살표 키를 사용하여 편집 할 파일을 탐색하십시오.
또한 파일을 전환하려면 (그리고 하나만 열려있는 경우) 다음을 수행 할 수 있습니다.
:e 'filename'
g'day,
또는 여러 파일을 갖고 싶지만 한 번에 하나의 파일에 전체 vim 창을 사용하려면 입력 할 수 있습니다.
:e 'filename'
새 파일을 엽니 다. 이 작업을 여러 번 수행 할 수 있습니다. 현재 열린 내용을 보려면 입력하십시오
:ls
열린 파일 사이를 반사하려면 CNTL-^ (Shift-CNT-6)를 사용할 수 있으며 메인 파일과 보조 파일 사이를 번갈아 가며 (파일 목록에 %와 #가 표시됨)
또는 입력 할 수 있습니다
:n b
여기서 n은 'ls'command에 표시된 목록에 원하는 파일의 시작 부분에있는 숫자입니다.
HTH
건배,
당신은 설정할 수 있습니다 hidden
VIM의 기능, 여러 파일을 열 수 있도록 :
:set hidden
그런 다음 "버퍼"를 전환 할 때마다 저장하지 않고 원하는만큼 많은 파일을 열 수 있습니다.
:e 'filename'
버퍼를 탐색하기위한 몇 가지 명령이 있습니다.
:bnext
:bprev
:buffers
물론 Samoz가 언급했듯이 화면을 분할하여 동일한 창에서 여러 버퍼를 볼 수 있습니다.
나는 읽을 것을 제안한다 이것 VIM에 대한 좋은 소개를 위해 많은 시간을 절약 할 수 있습니다.
행운을 빕니다!