Mogę otworzyć powłokę za pomocą polecenia: shell w Vimie, jednak nie mogę edytować pliku i jednocześnie używać powłoki.
Czy istnieje sposób na podzielenie Vima na wiele okien (lub zakładek) i otwarcie powłoki w jednym z nich?
Mogę otworzyć powłokę za pomocą polecenia: shell w Vimie, jednak nie mogę edytować pliku i jednocześnie używać powłoki.
Czy istnieje sposób na podzielenie Vima na wiele okien (lub zakładek) i otwarcie powłoki w jednym z nich?
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.
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.
: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
.
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
lub 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.
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 :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 twoja vim
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.
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.
Możesz chcieć otworzyć program "ekranowy", podzielić ekran, otworzyć powłokę na jednym i vim na drugim. Pracuje dla mnie.
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.