Kiedyś istniała łatka powłoki dla vima, ale już się nie kompiluje afaik. Najbliżej prawdziwej powłoki jest użycie ekranu lub tmux. To największa rzecz, której mi brakuje w vimie.
Jeśli używasz Vundle do zarządzania wtyczkami, możesz dodać Bundle 'jewes / Conque-Shell' do swojego pliku .vimrc i uruchomić: BundleInstall, aby go zainstalować.
Mingjiang Shi
Jedna rzecz, na którą należy zwrócić uwagę: wymaganie + python lub + python3 dla vi może być zabójcze w niektórych środowiskach roboczych.
:vsplub :sp- dzieli vima na dwie instancje, ale nie możesz użyć: shell tylko w jednej z nich.
Dlaczego nie wyświetlić kolejnej zakładki terminala, a nie innej zakładki vim. Jeśli podoba Ci się ten pomysł, możesz go wypróbować: Ctrl-shift-t.i poruszać się między nimi za pomocą Ctrl - pageupiCtrl - pagedown
Jeśli potrzebujesz tylko kilku poleceń powłoki, możesz wykonać dowolne polecenie powłoki w vimie za pomocą !
Aby uruchomić aktualnie otwarty plik wykonywalny, możesz użyć vimmagii ścieżki w następujący sposób::!./%
cprn
Dlaczego nie wyświetlić kolejnej zakładki terminala - nie wszyscy używają vima w emulatorze terminala nad GUI… Od - Ctrlcokolwiek sądzę, twoja odpowiedź zakłada gnome-terminal lub podobny emulator.
törzsmókus
8
Możesz użyć tmuxlub screen(drugi jest w stanie zrobić tylko podziały poziome bez łaty), aby podzielić terminal. Ale nie znam sposobu, aby mieć jedną instancję Vima w obu panelach.
screen może robić pionowe podziały, jeśli zbudujesz go z git.
Randy Morris
8
Jeśli jeszcze się nie dowiedziałeś, możesz skorzystać z niesamowitej wtyczki ekranu .
Conque jest również wyjątkowy, ale uważam, że ekran jest znacznie bardziej praktyczny (nie "zaśmieca" na przykład twojego bufora i możesz po prostu wysłać polecenia, które naprawdę chcesz po edycji w buforze)
Wydaje mi się, że to dość stare pytanie, ale teraz w 2017 roku. Mamy neovim, który jest rozwidleniem vima, który dodaje obsługę terminala.
Więc wywołanie :termotworzyłoby okno terminala. Piękno tego rozwiązania w przeciwieństwie do korzystania z tmux (multipleksera terminala) polega na tym, że będziesz mieć takie same powiązania okien, jak twoja vimkonfiguracja. neovim jest kompatybilny z vimem, więc możesz po prostu skopiować i wkleić swój .vimrci po prostu zadziała.
Więcej zalet jest to, że możesz przełączyć się do trybu normalnego na otwartym terminalu i możesz wykonywać podstawowe kopiowanie i edycję. Wydaje mi się, że jest to również przydatne dla zatwierdzeń git, ponieważ wszystko w twoim buforze może być użyte w autouzupełnianiu.
Nie jest to absolutnie to, o co prosisz, ale możesz być zainteresowany moją wtyczką vim-notebook, która pozwala użytkownikowi utrzymać proces w tle i sprawić, by oceniał część bieżącego dokumentu (i zapisywał wynik w dokumencie). Jest przeznaczony do użytku w dokumentach w stylu notatnika, zawierających fragmenty kodu do oceny.
Anulowano -1, ponieważ nie było wyjaśnienia. Poza tym przetestowałem rozwiązanie wtyczki vim screen i nie różni się ono zbytnio od rozwiązania mrcybul. @mrcybul: czołgi za próby pomocy. Aby uniknąć negatywnego głosu, przeczytaj uważnie pozostałe odpowiedzi i dodaj własne tylko wtedy, gdy uważasz, że przynosi to coś nowego. Uwzględnij również, dlaczego Twoje rozwiązanie może być lepsze w niektórych przypadkach.
Titou
0
Obecnie używam tmux.
Instalacja: sudo apt-get install tmux Uruchom to: tmux
Ctrl + b, a następnie Ctr +%: dzieli okno terminala na dwie pionowe połowy.
Ctrl + "strzałka w lewo | strzałka w prawo": przenosi między terminalami.
Odpowiedzi:
Neovim i Vim
8.2
obsługują to natywnie za pomocą:ter[minal]
polecenia.Szczegółowe informacje można znaleźć
terminal-window
w dokumentacji.źródło
vsplit term://bash
jeśli używasz Neovim.terminal
polecenie dzieli okno i nadaje powłoce poleceń ze specjalnym kolorem na pasku stanu okna. Przysiek.To zależy od twojego systemu operacyjnego - właściwie nie testowałem tego na MS Windows - ale Conque jest jedną z najlepszych wtyczek.
Właściwie może być lepiej, ale działa.
źródło
:vsp
lub:sp
- dzieli vima na dwie instancje, ale nie możesz użyć: shell tylko w jednej z nich.Dlaczego nie wyświetlić kolejnej zakładki terminala, a nie innej zakładki vim. Jeśli podoba Ci się ten pomysł, możesz go wypróbować:
Ctrl-shift-t.
i poruszać się między nimi za pomocąCtrl - pageup
iCtrl - pagedown
Jeśli potrzebujesz tylko kilku poleceń powłoki, możesz wykonać dowolne polecenie powłoki w vimie za pomocą
!
Na przykład
:!./a.out
.źródło
vim
magii ścieżki w następujący sposób::!./%
Ctrl
cokolwiek sądzę, twoja odpowiedź zakłada gnome-terminal lub podobny emulator.Możesz użyć
tmux
lubscreen
(drugi jest w stanie zrobić tylko podziały poziome bez łaty), aby podzielić terminal. Ale nie znam sposobu, aby mieć jedną instancję Vima w obu panelach.źródło
Jeśli jeszcze się nie dowiedziałeś, możesz skorzystać z niesamowitej wtyczki ekranu .
Conque jest również wyjątkowy, ale uważam, że ekran jest znacznie bardziej praktyczny (nie "zaśmieca" na przykład twojego bufora i możesz po prostu wysłać polecenia, które naprawdę chcesz po edycji w buforze)
źródło
Wydaje mi się, że to dość stare pytanie, ale teraz w 2017 roku. Mamy neovim, który jest rozwidleniem vima, który dodaje obsługę terminala.
Więc wywołanie
:term
otworzyłoby okno terminala. Piękno tego rozwiązania w przeciwieństwie do korzystania z tmux (multipleksera terminala) polega na tym, że będziesz mieć takie same powiązania okien, jak twojavim
konfiguracja. neovim jest kompatybilny z vimem, więc możesz po prostu skopiować i wkleić swój.vimrc
i po prostu zadziała.Więcej zalet jest to, że możesz przełączyć się do trybu normalnego na otwartym terminalu i możesz wykonywać podstawowe kopiowanie i edycję. Wydaje mi się, że jest to również przydatne dla zatwierdzeń git, ponieważ wszystko w twoim buforze może być użyte w autouzupełnianiu.
Zaktualizuję tę odpowiedź, ponieważ vim również planuje udostępnić obsługę terminala, prawdopodobnie w vimie 8.1. Postęp możesz śledzić tutaj: https://groups.google.com/forum/#!topic/vim_dev/Q9gUWGCeTXM
Po wydaniu uważam, że jest to lepsza konfiguracja niż używanie tmux.
źródło
Shougo's VimShell , który może automatycznie uzupełniać nazwy plików, jeśli jest używany z neocomplcache
źródło
Nie jest to absolutnie to, o co prosisz, ale możesz być zainteresowany moją wtyczką vim-notebook, która pozwala użytkownikowi utrzymać proces w tle i sprawić, by oceniał część bieżącego dokumentu (i zapisywał wynik w dokumencie). Jest przeznaczony do użytku w dokumentach w stylu notatnika, zawierających fragmenty kodu do oceny.
źródło
Możesz chcieć otworzyć program "ekranowy", podzielić ekran, otworzyć powłokę na jednym i vim na drugim. Pracuje dla mnie.
źródło
Obecnie używam tmux.
Instalacja: sudo apt-get install tmux Uruchom to: tmux
Ctrl + b, a następnie Ctr +%: dzieli okno terminala na dwie pionowe połowy.
Ctrl + "strzałka w lewo | strzałka w prawo": przenosi między terminalami.
źródło