2010-05-06 4 views
81

Vim에서 : shell 명령을 사용하여 쉘을 열 수는 있지만 파일을 편집하는 동시에 쉘을 사용할 수는 없습니다.Vim 창 내부에서 어떻게 셸을 열 수 있습니까?

많은 Windows (또는 탭)에서 Vim을 분할하고 그 중 하나에서 셸을 열 수 있습니까?

+1

vim에는 이전에 쉘 패치가 있었지만 afaik는 더 이상 컴파일하지 않습니다. 진정한 쉘에 가려면 스크린이나 tmux를 사용해야합니다. 이것이 내가 vim에서 놓친 가장 큰 것입니다. –

+2

http://stackoverflow.com/questions/1236563/how-to-run-a-terminal-inside-of-vim의 복제본처럼 보이는 –

답변

43

그럼 OS에 달려 있습니다. 실제로는 MS Windows에서 테스트하지 않았지만, Conque은 최고의 플러그인 중 하나입니다.

실제로 더 좋을 수도 있지만 작동합니다.

+4

Vundle을 사용하여 플러그인을 관리하는 경우 .vimrc 파일에 'jewes/Conque-Shell'번들을 추가하고 BundleInstall을 실행하여 설치할 수 있습니다. –

+0

주의해야 할 사항 : vi에 대한 + python 또는 + python3 요구 사항은 일부 작업 환경에서 킬러가 될 수 있습니다. – cfi

+0

업데이트 된 URL (스크린 샷 포함) : https://github.com/wkentaro/conque.vim –

17

:vsp 또는 :sp - vim을 2 개의 인스턴스로 분할하지만 쉘 중 하나에서만 쉘을 사용할 수 없습니다.

터미널의 다른 탭을 vim의 다른 탭으로 표시하지 않는 이유는 무엇입니까? 당신이 아이디어를 좋아한다면 당신은 그것을 시도 할 수 있습니다 : Ctrl-shift-t.을하고 몇 쉘 당신이 예를 :!./a.out를 들어 !

사용하여 정력에있는 쉘 명령을 할 수 명령을 원하는 경우 Ctrl - pageupCtrl - pagedown

와 그들 사이에 이동합니다.

+1

그리고 현재 열려있는 실행 파일을 실행하려면 다음과 같이'vim' 경로 마법을 사용할 수 있습니다 그래서 :':! ./%' – cprn

7

tmux 또는 screen (둘째 패치없이 가로 분할 만 가능)을 사용하여 터미널을 분리 할 수 ​​있습니다. 그러나 두 칸 모두에서 Vim의 인스턴스를 하나씩 보유 할 수있는 방법을 알지 못합니다.

+3

git에서 화면을 빌드하면 화면이 수직선을 할 수 있습니다. –

8

아직 알지 못했다면 놀라운 screen plugin을 사용할 수 있습니다.

Conque도 뛰어난하지만 난 찾을 (예를 들어 실 거예요 "쓰레기"당신의 버퍼와 당신이 당신의 버퍼를 편집 한 후 당신이 정말로 원하는 명령을 보낼 수 있습니다)

3

쇼고의 타테의 VimShell 훨씬 더 실제 화면, neocomplcache와 함께 사용하는 경우 파일 이름을 자동 완성 할 수 있습니다.

1

내 플러그인 vim-notebook에 관심이 있으실 수 있습니다.이 플러그인을 사용하면 백그라운드 프로세스를 유지하고 해당 파일의 일부분을 평가할 수 있습니다. 현재 문서 (및 문서에 출력을 쓰려면). 평가할 코드 조각이 포함 된 노트 스타일 문서에 사용하기위한 것입니다.

0

"화면"프로그램을 열고, 분할 화면을 열고, 하나는 쉘을 열고 다른 하나는 열 수 있습니다. 저에게 맞습니다.

+0

설명이 없기 때문에 -1을 취소했습니다. 게다가 vim screen 플러그인 솔루션을 테스트했는데 mrcybul의 솔루션과 크게 다르지 않습니다. @mrcybul : 도움을 청하기위한 탱크. downvoted되는 것을 피하기 위해, 신중하게 다른 답변을 읽고 그것이 뭔가 새로운 것을 가져올 것이라고 생각하는 경우에만 자신의 것을 추가하십시오. 또한 경우에 따라 솔루션이 더 좋은 이유를 설명하십시오. – Titou

6

늦게 있지만 Google을 통해 여기에 도착한 사람들에게 유용한 힌트입니다.

Neovim은 terminal 명령을 통해이 기능을 기본적으로 지원합니다.

+2

vim 8에서도 똑같은 명령을 사용할 수 있습니다. – roryrjb

0

현재 tmux를 사용 중입니다.

설치 : sudo는은 apt-get을 TMUX 실행 설치한다 : Ctrl 키 + B 클릭률 + %의 다음

을 TMUX : 그것은 두 개의 수직 반쪽에서 터미널 창을 분할합니다.

Ctrl + "왼쪽 화살표 | 오른쪽 화살표": 터미널간에 이동합니다.

2

이것은 꽤 오래된 질문이지만, 지금은 2017 년입니다. 우리는 터미널 지원을 추가하는 vim 포크 인 neovim을 가지고 있습니다.

따라서 :term을 호출하면 터미널 창이 열립니다. tmux (터미널 멀티플렉서)를 사용하는 것과는 대조적으로이 솔루션의 장점은 vim 설정과 동일한 창 바인딩을 사용한다는 것입니다. neovim은 vim과 호환되므로 기본적으로 .vimrc을 복사하여 붙여 넣기 만하면됩니다.

더 많은 장점은 열려있는 터미널에서 일반 모드로 전환 할 수 있으며 기본 복사 및 편집을 할 수 있다는 것입니다. git 커밋에도 유용합니다. 버퍼에있는 모든 것을 자동 완성으로 사용할 수 있기 때문입니다.

vim도 vim 8.1에서 터미널 지원을 릴리스 할 예정이므로이 대답을 업데이트 할 것입니다. 여기서 진행 상황을 확인할 수 있습니다. https://groups.google.com/forum/#!topic/vim_dev/Q9gUWGCeTXM

릴리스되면 tmux를 사용하는 것보다 더 우수한 설정이라고 생각합니다.

+1

Vim 8.0에서 릴리스되었습니다. – LangeHaare

관련 문제