La nostra azienda utilizza il sistema Red Hat Linux e alloca a tutti un account in / home. Sfortunatamente, il nostro sistema utilizza tsch, il che non è favorevole per me. Inoltre, poiché non ho il permesso per superutente, non posso usare il comando chsh per cambiare da solo a bash. Ancora peggio, anche ypchsh non è disponibile per me. Quindi, alla fine, aggiungo le seguenti righe in .cshrc:
bash
echo $0
e configurare il .bashrc in modo appropriato (copiando dal file .cshrc originale e correggendo l'errore di sintassi necessario). Ora la shell apparente diventa bash (come si può vedere dal comando "echo $ 0").
Ora il problema si presenta:
Quando uso vim per modificare un file cpp (ad es. Hello_World) e uso ":! G ++ -g Hello_World.cpp -o hw.out" in vim per compilare il file, nessun risultato verrà mostrato e vim verrà chiuso con "bash" mostrato (come quando un terminale è aperto), ma senza il solito "premere un tasto" per tornare al mio lavoro in vim. Nella cartella Hello_World.cpp, c'è un file .Hello_World.cpp.swp, ma non hw.out. Quando vim Hello_World.cpp di nuovo, si scopre che questo file cpp è stato aperto.
Tuttavia, se g ++ il file cpp nella cartella ma non usando vim e:!, Tutto è OK. Infatti, :! ora sembra essere illegale per vim.
Se uso l'originale tcsh, va tutto bene.
Come posso risolvere questo curioso errore?
Grazie per il vostro gentile aiuto in anticipo.
qing
A proposito: preferisco bash a tcsh principalmente per la sua convenienza di HISTIGNORE e HISTCONTROL, sebbene tcsh abbia anche l'impostazione histdup.
Ho trovato quanto segue un po 'utile ma ancora non soddisfacente per il mio problema.
chsh
per modificare la shell di accesso.