سؤال
أنا أستخدم Vim للنوافذ المثبتة في وضع Unix.بفضل هذا الموقع أستخدم الآن gf
أمر للذهاب إلى ملف تحت المؤشر.
أنا أبحث عن أمر إما:
- العودة إلى الملف السابق (على غرار كنترول+ت للعلامات)، أو
- إعادة رسم خريطة
gf
لإطلاق الملف الجديد تلقائيًا في نافذة جديدة.
المحلول
أنا أستعمل كنترول-يا
نصائح أخرى
كثيرا ما أستخدم كنترول-6 لهذا.
إنه مفيد لأنه يسمح لي بالانتقال بسرعة ذهابًا وإيابًا بين الملفين.
قد ترغب في استخدام CTRL-W gf
لفتح الملف في علامة تبويب جديدة.
يمكنك إغلاق الملف المفتوح حديثًا كما هو الحال دائمًا :bd
, ، او استعمل CTRL-6
وغيرها من الطرق المعتادة لتغيير المخازن المؤقتة.
استخدم gf للنزول إلى ملف واستخدم :bf للعودة
مجرد استخدام :e#
تليها يدخل - ينص في الأساس على تحرير الملف الأخير (الأحدث).
Ctrl-Shift-6 هو واحد.
:e#↲
هو آخر.
لا أعرف إجابة الجزء الثاني من سؤالك، ولكن يمكنني المساعدة في الجزء الأول.يستخدم
:e#
يحتفظ Vim بقائمة من الملفات (المخازن المؤقتة) التي يقوم بتحريرها.إذا كتبت
:buffers
وسوف يسرد كافة الملفات التي تقوم بتحريرها حاليا.الملف الموجود في تلك القائمة وبجانبه % هو الملف الحالي.الملف الذي بجانبه # هو الملف البديل.:e# سوف يقوم بالتبديل بين الملف الحالي والبديل.بدلاً من الكتابة بهذا القدر، أقوم بتعيين F2 إلى :e# حتى أتمكن من التنقل بسهولة بين الملفات الحالية والبديلة.أقوم بتعيين الأمر إلى F2 عن طريق إضافة هذا إلى .vimrc
nmap `<F2> :e#<CR>`
حصلت على CTRL-W f للعمل.
إنه أمر محبط للغاية أنني أمضيت وقتًا طويلاً في إتقان الخرائط لهذه الأوامر فقط لأكتشف أن هناك إصدارات مدمجة.
يرى :مساعدة الملف البديل.
عند فتح ملف جديد (مع gf أو :ن أو أمر آخر) يبقى الملف القديم في قائمة المخزن المؤقت.يمكنك سرد الملفات المفتوحة مع :ليرة سورية
إذا كنت تريد التنقل بسهولة بين المخازن المؤقتة في vim، فيمكنك إنشاء تعيين مثل هذا:
nmap <M-LEFT> :bN<cr>
nmap <M-RIGHT> :bn<cr>
يمكنك الآن التبديل بين المخازن المؤقتة باستخدام Alt + سهم لليسار أو Alt + سهم لليمين.
الوثائق الكاملة حول التعيينات موجودة هنا:
:help map.txt
أنا لم أنظر إلى الخاص بك gf الأمر ولكني أتخيل أنه يستخدم :ه أو :يجد يأمر.
على افتراض أن هذا صحيح، ببساطة استبدال :ه أو :يجد مع :جديد (أو :vnew للتقسيم الرأسي) وسيتم فتح الملف في نافذة جديدة بدلاً من النافذة نفسها.
على سبيل المثال
"Switch between header and cpp nmap ,s :find %:t:r.cpp<CR> nmap ,S :new %:t:r.cpp<CR> nmap ,h :find %:t:r.h<CR> nmap ,H :new %:t:r.h<CR> nmap ,F :new =expand("<cfile>:t")<CR><CR> nmap ,d :new =expand("<cfile>")<CR><CR>