Czy istnieje sposób na dostęp do terminala podczas korzystania z Vima ?
Nie lubię otwierać innego terminala ani zapisywać i wychodzić z bieżącego terminala.
Czy istnieje sposób na dostęp do terminala podczas korzystania z Vima ?
Nie lubię otwierać innego terminala ani zapisywać i wychodzić z bieżącego terminala.
Odpowiedzi:
Możesz wysłać vimowi sygnał SIGTSTP. Robisz to, naciskając ctrl+ z. Vim zostanie zawieszony w tle i będziesz mógł korzystać z terminala. Wpisz fg
terminal, aby wznowić pracę z vimem.
Dodatkowa wskazówka: Działa to na prawie wszystkich aplikacjach terminalowych. Użyj, bg
aby umożliwić kontynuowanie działania aplikacji w tle.
%
zamiast fg
. Albo %1
, %2
itp jeśli masz dużo pracy w tle. jobs
polecenie wyświetli je. (Zakładając, bash
że to skorupa.)
W vimie po prostu wpisz:
:!sh
:!
uruchamia proces zewnętrzny - w tym przypadku sh
kolejną powłokę. Kontrola powróci do vima po wyjściu z powłoki. Jeśli chcesz używać powłoki jednocześnie z vimem, dodaj &
na końcu polecenia sh:
:!sh&
:shell
.
http-server
i wypisuje dzienniki, które chcę wyświetlić? Chciałbym mieć możliwość przełączania się na moje pliki, dokonywania edycji, a następnie powrotu do dzienników.
Możesz użyć :shell
polecenia (lub skróconego formularza :sh
). Od :help :shell
:
To polecenie uruchamia powłokę. Kiedy powłoka wychodzi (po komendzie „exit”) powracasz do Vima. Nazwa polecenia powłoki pochodzi od opcji „shell”.
Domyślnie w Ubuntu daje ci to bash. wpisz, exit
aby powrócić do vima, gdy skończysz.
Od ostatniego vima możesz teraz:
:terminal
Zostało to początkowo dodane w Vimie 8.0.693 , ale z dużą ilością błędów. Zobacz :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.
Jako dodatek do wszystkich odpowiedzi.
Możesz zainstalować wtyczkę ConqueTerm
Ta wtyczka zapewnia możliwość uruchamiania interaktywnych programów wewnątrz buforów vim.
Po instalacji możesz dodać 2 wiersze do .vimrc
:
:nnoremap <S-w> :q!<CR>
:nnoremap <S-t> :ConqueTermSplit bash<CR>
Będziesz mógł uruchomić bash
, naciskając Shift+ T, i zamknij bieżącą kartę Conque, naciskając Shift+W
Jest to idealne rozwiązanie, jeśli potrzebujesz szybkiego otwierania / zamykania bash
.
Oto gif pokazujący, jak to wygląda
Inną opcją z ekranem lub byobu jest otwarcie karty w tych programach. Programy te dość łatwo utrzymują otwartą powłokę cq sesji terminalowej i przełączają się między tymi ekranami za pomocą klawiatury.
Dzięki nowej wersji vim 8.1 wszystko, co musisz zrobić, to just :terminal
and voila! (to jest wbudowane)