Vim에있는 동안 터미널에 액세스


40

Vim 을 사용하는 동안 터미널에 액세스하는 방법이 있습니까?

다른 터미널을 열거 나 현재 터미널을 저장하고 종료하는 것을 좋아하지 않습니다.


새 탭을여시겠습니까? (Ctrl + Shift + T)
Wilf

2
몇 번이나 :) 나는 그 일을 좋아하지 않는다 D :
Mohammad Reza Rezwani

1
tmux와 같은 터미널 창 관리자를 사용해 보셨습니까?
jrg

답변:


67

vim에 SIGTSTP 신호를 보낼 수 있습니다. ctrl+ 를 눌러이를 수행합니다 z. Vim은 백그라운드에서 일시 중단되며 터미널을 사용할 수 있습니다. fgvim으로 다시 시작하려면 터미널을 입력 하십시오.

보너스 팁 : 거의 모든 터미널 응용 프로그램에서 작동합니다. 사용하여 bg백그라운드에서 계속 실행 응용 프로그램을 활성화합니다.


21
또는 %대신에 fg. 또는 %1, %2등 당신은 많은 백그라운드 작업이있는 경우. jobs명령은 그들을 나열합니다. ( bash쉘로 가정 )
Ruslan

4
^ z (그리고 나중에 fg) 방법에 투표합니다.이 방법은 거의 모든 셸 프로세스에서 사용할 수 있기 때문에 vim 일이 아니며 다른 상황에서 믿을 수 없을 정도로 유용한 셸 트릭입니다.
dman

35

vim에서 다음을 입력하십시오.

:!sh

:!외부 프로세스 (이 경우 sh다른 쉘)를 시작합니다. 쉘을 종료하면 컨트롤은 vim으로 돌아갑니다. vim과 동시에 쉘을 사용 &하려면 sh 명령 끝에 다음을 추가하십시오 .

:!sh&

9
또는 그냥 사용하십시오 :shell.
wchargin

2
이것은 대부분의 목적에 가장 적합한 답변입니다.
Frank Conry

훌륭하지만 명령이 서버를 실행할 때 http-server어떻습니까?보고 싶은 로그를 인쇄합니까? 파일로 전환하고 편집 한 다음 로그로 다시 전환하고 싶습니다.
Costa

21

:shell명령 (또는 짧은 형식 :sh)을 사용할 수 있습니다 . 보낸 사람 :help :shell:

이 명령은 쉘을 시작합니다. "exit"명령 후 쉘이 종료되면 Vim으로 돌아갑니다. 쉘 명령의 이름은 'shell'옵션에서 비롯됩니다.

기본적으로 우분투에서는 bash를 제공합니다. exit완료되면 vim으로 돌아가려면 입력하십시오 .


8

최근 vim부터 다음을 수행 할 수 있습니다.

:terminal

이것은 Vim 8.0.693 에서 처음 추가 되었지만 많은 버그가 있습니다. 참조 :help terminal:

WARNING: THIS IS ONLY PARTLY IMPLEMENTED, ANYTHING CAN STILL CHANGE

The terminal feature is optional, use this to check if your Vim has it: 
        echo has('terminal')
If the result is "1" you have it.   

[...]

The terminal feature requires the +multi_byte, +job and +channel features.

==============================================================================
1. Basic use                                            terminal-use

This feature is for running a terminal emulator in a Vim window.  A job can be
started connected to the terminal emulator. For example, to run a shell: 
     :term bash

Or to run a debugger: 
     :term gdb vim

The job runs asynchronously from Vim, the window will be updated to show
output from the job, also  while editing in any other window.

7

모든 답변 외에도.

ConqueTerm 플러그인을 설치할 수 있습니다

이 플러그인은 vim 버퍼 내에서 대화식 프로그램을 실행하는 기능을 제공합니다.

설치 후이 두 줄을 다음에 추가 할 수 있습니다 .vimrc.

:nnoremap <S-w> :q!<CR>
:nnoremap <S-t> :ConqueTermSplit bash<CR>

그리고 당신은 실행할 수 bash눌러 Shift+를 T눌러, 닫습니다 현재 Conque 탭 Shift+를W

빠른 열기 / 닫기가 필요한 경우에는 이상적 bash입니다.

여기에 어떻게 보이는지 gif 가 있습니다.


게시물 업데이트를 고려할 수 있습니까? 언급 한 링크는 구식 인 것 같습니다
ggulgulia

4

화면 또는 byobu가있는 또 다른 옵션은 해당 프로그램 내에서 탭을 여는 것입니다. 이 프로그램을 사용하면 터미널 세션 cq 쉘을 열어두고 키보드를 사용하여 해당 화면을 쉽게 전환 할 수 있습니다.


1

vim 8.1의 새로운 버전으로 당신이해야 할 일은 단지 :terminal짜잔입니다! (내장)

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