Công ty chúng tôi sử dụng hệ thống linux mũ đỏ và phân bổ cho mọi người một tài khoản trong / nhà. Thật không may, hệ thống của chúng tôi đang sử dụng tsch, điều này không thuận lợi cho tôi. Hơn nữa, vì tôi không có quyền siêu người dùng, tôi không thể sử dụng lệnh chsh để thay đổi thành bash cho chính mình. Thậm chí tệ hơn, ypchsh cũng không có sẵn cho tôi. Vì vậy, cuối cùng, tôi thêm các dòng sau vào .cshrc:
bash
echo $0
và cấu hình .bashrc một cách thích hợp (sao chép từ .cshrc gốc và sửa lỗi cú pháp cần thiết). Bây giờ, vỏ rõ ràng trở thành bash (như có thể được hiển thị từ lệnh "echo $ 0").
Bây giờ vấn đề xuất hiện:
Khi tôi sử dụng vim để chỉnh sửa tệp cpp (ví dụ: Hello_World) và sử dụng ":! G ++ -g Hello_World.cpp -o hw.out" trong vim để biên dịch tệp, sẽ không có kết quả nào được hiển thị và vim bị thoát với "Bash" được hiển thị (như khi một thiết bị đầu cuối được mở), nhưng không có "nhấn phím" thông thường để quay lại công việc của tôi trong vim. Trong thư mục Hello_World.cpp, có tệp .Hello_World.cpp.swp, nhưng không phải hw.out. Khi vim Hello_World.cpp một lần nữa, hóa ra tệp cpp này đã được mở.
Tuy nhiên, nếu tôi g ++ tệp cpp trong thư mục nhưng không sử dụng vim và:!, Mọi thứ đều ổn. Trong thực tế, :! bây giờ dường như là bất hợp pháp cho vim.
Nếu tôi sử dụng tcsh gốc, mọi thứ cũng ổn.
Làm thế nào tôi có thể sửa lỗi tò mò này?
Cảm ơn bạn đã giúp đỡ của bạn trước.
qing
BTW: Tôi thích bash hơn tcsh chủ yếu vì sự tiện lợi của HISTIGNORE và HISTCONTROL, mặc dù tcsh cũng có cài đặt histdup.
Tôi thấy sau đây một chút hữu ích nhưng vẫn không thỏa đáng cho vấn đề của tôi.
chsh
để thay đổi vỏ đăng nhập của bạn.