Nasza firma korzysta z systemu red hat linux i przydziela każdemu konto w / home. Niestety nasz system używa tsch, co nie jest dla mnie korzystne. Co więcej, ponieważ nie mam uprawnień superużytkownika, nie mogę użyć polecenia chsh, aby zmienić się na bash. Co gorsza, ypchsh jest również dla mnie niedostępny. Wreszcie dodałem następujące wiersze do pliku .cshrc:
bash
echo $0
i odpowiednio skonfiguruj .bashrc (kopiowanie z oryginalnego .cshrc i naprawienie niezbędnego błędu składniowego). Teraz widoczna powłoka staje się bash (jak można to zobaczyć po poleceniu „echo $ 0”).
Teraz pojawia się problem:
Kiedy używam vima do edycji pliku cpp (np. Hello_World) i używam „:! G ++ -g Hello_World.cpp -o hw.out” w vimie do skompilowania pliku, żaden wynik nie zostanie wyświetlony, a vim zostanie zakończony z Pokazano „bash” (jak gdy terminal jest otwarty), ale bez zwykłego „wciśnięcia klawisza”, aby wrócić do mojej pracy w vimie. W folderze Hello_World.cpp znajduje się plik .Hello_World.cpp.swp, ale nie hw.out. Gdy vim Hello_World.cpp ponownie, okazuje się, że ten plik CPP został otwarty.
Jeśli jednak g ++ plik cpp w folderze, ale nie używam vim i:!, Wszystko jest w porządku. W rzeczywistości, :! teraz wydaje się być nielegalny dla vima.
Jeśli użyję oryginalnego tcsh, wszystko też będzie OK.
Jak mogę naprawić ten ciekawy błąd?
Z góry dziękuję za życzliwą pomoc.
qing
BTW: Wolę bash niż tcsh przede wszystkim ze względu na wygodę HISTIGNORE i HISTCONTROL, chociaż tcsh ma również ustawienia histdup.
Uważam, że poniższe informacje są trochę pomocne, ale nadal niezadowalające dla mojego problemu.
chsh
do zmiany powłoki logowania.