विम इग्लेयर्स अलायस


11

अगर मैं कुछ का उपयोग करके विम में एक कमांड मैप करता हूं

map <f4> :! pdflatex %<cr>

विम pdflatex के लिए मेरे उपनाम को अनदेखा करेगा (alias pdflatex = 'pdflatex --temp-dir = something')। क्या विम को अनदेखा करना संभव है?


क्या यह संभव है कि आपका विम शेल या शेल्टाइप आपके लॉगिन शेल से मेल न खाए?
डेवपैरिलो सेप

जवाबों:


16

विम अपने उपनामों को 'नजरअंदाज' करता है क्योंकि आपका खोल आपके पार्स करने के लिए 'मूड' में नहीं है .bash_profile/.bashrc(आपने निर्दिष्ट नहीं किया है, जहां आपके उपनाम परिभाषित हैं) क्योंकि यह लॉगिन / इंटरेक्टिव शेल के रूप में शुरू नहीं हुआ है ( इसके बारे में अधिक जानने के लिए यहां पढ़ें कब और किस कारण से पढ़ा जाता है)।

तो, आपके पास कई विकल्प हैं:

  1. अपने pdflatexउपनाम में उपयोग किए गए कोड को स्क्रिप्ट में रखें और कॉल करें
  2. vimrc:, 'set shell=/bin/bash\ -l'अपने उपनामों को .bash_profile पर रखें
  3. एक इंटरैक्टिव / लॉगिन शेल के रूप में अपने शेल को कॉल करें: :! bash -l -i -e 'pdflatex .'

2
लॉगिन / गैर-लॉगिन के लिए कोई फर्क नहीं पड़ता ~/.bashrc- केवल इंटरैक्टिव / गैर-इंटरैक्टिव करता है।
user1686

मेरे एलियासेस .bash_profile .. हम्म में मैंने सवाल को थोड़ा बदल दिया है। बल्कि मैं इसे वर्तमान शेल में चलाऊंगा। आपका दूसरा समाधान सबसे 'स्वीकार्य' लग रहा था, यह एक नया शेल खोलने के बाद से% चर को बेकार बनाता है जो आमतौर पर होम फ़ोल्डर में शुरू होता है।
वॉनोजन

यह एक अद्भुत और गहन जवाब है। धन्यवाद!
हाबिल
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.