(G) VIM menggunakan $ PATH berbeda dari sistem saya

8

Karena Ubuntu tidak menyediakan paket terbaru untuk TeXLive, saya menginstalnya secara manual. Namun, beberapa program memerlukan TeXLive sebagai ketergantungan. Jadi yang saya lakukan adalah menginstal paket TeXLive dari repositori Ubuntu di atasnya, yang merupakan versi 2009. Saya kemudian mengubah $ PATH saya untuk memuat versi 2011 yang diinstal secara manual, jadi program-program masih selalu menunjuk dan menggunakan versi TeXLive terbaru. Sejauh ini ini bekerja dengan baik.

Tapi ini adalah snap: Ketika saya beralih ke VIM untuk mengedit file LaTeX saya, saya perhatikan setelah terlalu banyak sakit kepala yang VIM "melihat" hanya TeXLive2009! Lihat screenshot ini, kiri adalah VIM, kanan terminal:

Versi LaTeX di VIM

Saya kemudian memeriksa apa yang $ PATH VIM gunakan, dan ternyata, ia menggunakan yang berbeda, yang TIDAK mengarah ke TeXLive 2011. Lihat tangkapan layar ini:

Path di VIM dan Terminal

VIM:

:! echo $PATH
/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games

Terminal:

echo $PATH
/usr/local/texlive/2011/bin/x86_64-linux:/usr/local/texlive/2011/bin/x86_64-linux:/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games

Apakah Anda tahu cara memperbaikinya, sehingga plugin LaTeX saya dapat menggunakan TeXLive 2011, mungkin dengan membuat VIM menggunakan $ PATH yang sama? Setiap bantuan akan sangat dihargai!

Ingo
sumber
4
Di mana Anda mengubah PATH Anda?
enzotib

Jawaban:

5

Sepertinya Anda telah mengubah $PATHvariabel di salah satu file konfigurasi shell Anda, tetapi Anda memulai VIM dari entri menu ikon atau desktop. Hal-hal yang Anda atur di file konfigurasi shell (suka ~/.bashrcatau /etc/profile) hanya memengaruhi aplikasi yang dimulai dari shell .

Secara umum ada dua tiga pendekatan yang mungkin untuk masalah ini:

  • lokal : Ubah cara VIM dimulai.

[sunting]

  • per-pengguna : Ubah lingkungan pengguna Anda di ~/.profile.

[/ edit]

  • global : Memodifikasi lingkungan global.

The lokal solusi adalah yang paling aman (karena hanya mempengaruhi satu program), tapi karena Anda sudah kacau sistem dengan menginstal dua versi bersamaan dari paket perangkat lunak, saya tidak yakin apakah ini akan menakut-nakuti Anda. Bagaimanapun, Anda dapat melakukannya dengan memodifikasi .desktopentri untuk VIM di Lingkungan Desktop Anda dan mengubah perintah yang terkait dari sesuatu seperti gnome-terminal -c vimke PATH=(yourPathGoesHere) gnome-terminal -c vim.

Metode global adalah memodifikasi PATHvariabel dalam file di bawah /etc/env.d/. Seharusnya cukup untuk membuat file /etc/env.d/99-my_path_mod, berisi PATH=(yourPathGoesHere):$PATH. Anda harus mem-boot ulang agar efek ini berhasil (Yah, reboot bisa dihindari dengan beralih level init bolak-balik, tapi jauh lebih mudah seperti itu.)

[sunting]

Solusi per-pengguna mungkin yang terbaik dan, seperti yang saya lihat sekarang, dapat disebut "cara yang tepat". Seperti yang ditunjukkan oleh Gilles (di bawah), ~/.profilefile adalah tempat variabel lingkungan untuk semua sesi login Anda harus ditetapkan.

rozcietrzewiacz
sumber
Terima kasih, mengikuti solusi Anda yang paling mudah mungkin adalah dengan menelepon gvim dari terminal. Itu bekerja dengan baik!
Ingo
Jawaban ini menyesatkan dan sebagian salah. Tidak perlu mengubah apa pun di tingkat sistem; sebagai gantinya, @Ingo, solusi sederhana adalah mengatur variabel lingkungan~/.profile dan tidak pernah masuk ~/.bashrc. Melakukan sesuatu dengan benar tidak sulit dan akan mencegah masalah di masa depan .
Gilles 'SO- berhenti bersikap jahat'
@Gilles saya akui saya tidak menyadari peran utama ~/.profile, jadi jawaban saya bisa menyesatkan. Tetapi di bagian mana itu tidak benar?
rozcietrzewiacz
Ok, secara teknis saya pikir satu-satunya hal yang salah adalah "umumnya dua pendekatan yang mungkin": ada pendekatan ketiga yang umum dan disukai. Menampilkan /etc/profilesebagai file konfigurasi shell secara teknis benar tetapi menyesatkan (ini adalah file konfigurasi yang ditulis dalam shell, bukan file konfigurasi shell). Tidak menyebutkan ~/.profileadalah kelalaian besar, yang sendirian membuat jawaban Anda “tidak berguna”.
Gilles 'SANGAT berhenti menjadi jahat'
Ketika saya membuka /etc/profile, ini yang saya lihat di bagian paling atas . Jadi, setidaknya di sistem saya (Gentoo), file tersebut dapat disebut "file konfigurasi shell".
rozcietrzewiacz
2

Di mana Anda mengubah pengguna Anda PATH? Biasanya, saya akan mengaturnya ~/.profile, di mana ia harus diambil oleh manajer sesi X Anda (yaitu pada X login berikutnya) dan juga berlaku untuk semua aplikasi dalam sesi X Anda (seperti panel / desktop tempat Anda memulai gvim dari) .

patrikf
sumber