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 fgterminal, aby wznowić pracę z vimem.
Dodatkowa wskazówka: Działa to na prawie wszystkich aplikacjach terminalowych. Użyj, bgaby umożliwić kontynuowanie działania aplikacji w tle.
%zamiast fg. Albo %1, %2itp jeśli masz dużo pracy w tle. jobspolecenie wyświetli je. (Zakładając, bashże to skorupa.)
W vimie po prostu wpisz:
:!sh
:!uruchamia proces zewnętrzny - w tym przypadku shkolejną 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-serveri 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ć :shellpolecenia (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, exitaby 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 :terminaland voila! (to jest wbudowane)