2010-05-06 16 views
81

Mogę otworzyć powłokę za pomocą polecenia: shell w Vimie, jednak nie mogę edytować pliku i jednocześnie używać powłoki.Jak mogę otworzyć skorupę w oknie Vim?

Czy istnieje sposób na podzielenie Vima w wielu oknach (lub kartach) i czy w jednym z nich jest otwarta powłoka?

+1

Wcześniej istniała łatka powłoki dla vima, ale nie kompiluje ona już afaik. Najbliższe przejście do prawdziwej powłoki to użycie ekranu lub tmux. To największa rzecz, za którą tęsknię w vimie. –

+2

Wygląda na duplikat http://stackoverflow.com/questions/1236563/how-to-run-a-termin-inside-of-vim –

Odpowiedz

43

Cóż, to zależy od twojego systemu operacyjnego - w rzeczywistości nie testowałem go na MS Windows - ale Conque jest jedną z najlepszych wtyczek.

Właściwie może być lepiej, ale działa.

+4

Jeśli używasz Vundle do zarządzania wtyczkami, możesz dodać plik "jewes/Conque-Shell" do pliku .vimrc i uruchomić: BundleInstall, aby go zainstalować. –

+0

Jedna rzecz, na którą należy zwrócić uwagę: Wymóg + python lub + python3 dla vi może być zabójcą w niektórych środowiskach pracy. – cfi

+0

To jest zaktualizowany adres URL (z zrzutami ekranu): https://github.com/wkentaro/conque.vim –

17

:vsp lub :sp - dzieli vim na dwie instancje, ale nie można użyć: powłoki tylko w jednym z nich.

Dlaczego nie wyświetlić innej zakładki terminala, nie innej zakładki vima. Jeśli podoba Ci się pomysł można spróbować: Ctrl-shift-t. i przejść między nimi Ctrl - pageup i Ctrl - pagedown

Jeśli chcesz tylko kilka poleceń powłoki można dokonać żadnego polecenia powłoki w vim za pomocą !

Na przykład :!./a.out.

+1

Aby uruchomić aktualnie otwarty plik wykonywalny, można użyć magicznej ścieżki 'vim' więc: ':! ./%' – cprn

7

Możesz użyć tmux lub screen (drugi jest w stanie wykonać tylko poziome podziały bez łatki), aby podzielić terminal. Ale nie znam sposobu, aby mieć jedno wystąpienie Vima w obu panelach.

+3

ekran może wykonywać pionowe podziały, jeśli zbudujesz go z git. –

8

Jeśli jeszcze się nie dowiedziałeś, możesz użyć niesamowitego screen plugin.

Conque jest również wyjątkowy, ale uważam, ekran o wiele bardziej praktyczne (przyzwyczajenie „miot” Twój bufor na przykład i można po prostu wysłać polecenia, które naprawdę chcą po edycji je w buforze)

3

Shougo na VimShell, które może automatycznie uzupełniać nazwy plików, jeśli są używane z neocomplcache

1

Nie absolutnie tego, o co prosisz, ale może Cię zainteresować moja wtyczka vim-notebook, która pozwala użytkownikowi utrzymać proces w tle przy życiu i sprawić, że oceni on część bieżący dokument (i zapisać wynik w dokumencie). Jest przeznaczony do użytku w dokumentach w stylu notebooka zawierających fragmenty kodu do oceny.

0

Możesz chcieć otworzyć program "screen", podzielony ekran , otwórz powłokę na jednym i vim na innym. Działa dla mnie.

+0

Anulowano wartość -1, ponieważ nie było żadnego wyjaśnienia. Poza tym przetestowałem rozwiązanie wtyczki ekranu vim i nie różni się to od rozwiązania mrcybul. @mcykl: zbiorniki za próbę pomocy. Aby nie zostać odrzuconym, przeczytaj uważnie pozostałe odpowiedzi i dodaj własne, jeśli uważasz, że przynosi coś nowego. Dodaj również, dlaczego Twoje rozwiązanie może być lepsze w niektórych przypadkach. – Titou

6

Późno, ale jako pomocna wskazówka dla osób, które przybędą tutaj za pośrednictwem Google.

Neovim obsługuje teraz to natywnie za pomocą polecenia terminal.

+2

Dostępne również w vim 8, dokładnie to samo polecenie. – roryrjb

0

Obecnie używam tmux.

Montaż: sudo apt-get install tmux go uruchomić: tmux

Ctrl + B następuje Ctr +%: to dzieli okno terminala w dwóch pionowych połówki.

Ctrl + "strzałka w lewo | Strzałka w prawo": porusza się między terminalami.

2

Myślę, że jest to dość stare pytanie, ale teraz w 2017 roku. Mamy neovim, który jest widelcem vima, który dodaje obsługę terminalu.

Wywołanie :term spowoduje otwarcie okna terminalu. Piękno tego rozwiązania, w odróżnieniu od używania tmux (terminal multipleksera), polega na tym, że będziesz miał te same wiązania okienne co konfiguracja vim. neovim jest kompatybilny z vim, więc możesz po prostu skopiować i wkleić swój .vimrc i to po prostu zadziała.

Więcej zalet można przejść do zwykłego trybu na otwartym terminalu i można wykonać podstawową kopię i edycję. Jest to również bardzo przydatne dla git commits, ponieważ wszystko w twoim buforze można użyć w autouzupełnieniu.

Zaktualizuję tę odpowiedź, ponieważ vim planuje także zwolnić obsługę terminalu, prawdopodobnie w wersji 8.1. Możesz śledzić postępy tutaj: https://groups.google.com/forum/#!topic/vim_dev/Q9gUWGCeTXM

Po wydaniu uważam, że jest to lepsza konfiguracja niż użycie tmux.

+1

Został wydany w Vim 8.0 Myślę – LangeHaare

Powiązane problemy