سؤال

أريد أن أبقي تكوينات VIM و EMACS ضمن التحكم في الإصدار ، لكنني لا أريد مجلد منزلي بالكامل هناك (أو بالأحرى ، أفعل ، ولكن يجب أن يكون هناك 3 مستودعات منفصلة). مع emacs الأمر سهل ؛ إذا ~/.emacs غير موجود ، إذن ~/.emacs.d/init.el يستخدم كملف init. لذلك يمكنني الحصول على repo git منفصلة في ~/.emacs.d/. مع VIM ، على ما يبدو .vimrc يستطيع فقط موجود في مجلد المنزل وليس في ~/vimfiles (ما يعادل ~/.emacs.d). هو هذه أفضل طريقة لوضعها .vimrc تحت السيطرة على الإصدار؟

هل كانت مفيدة؟

المحلول

ربما تحريك الخاص بك .vimrc إلى ~/.vim/ وسوف تفعل Symlinking إلى المنزل؟

هناك طريقة أخرى أكثر حداثة هي نقل البرنامج النصي لبدء التشغيل إلى ~/.vim/plugins/, ، ربما قم بإنشاء دليل فرعي هناك ، ونصوص init واحدة أو متعددة: VIM سيفعل أ :runtime! plugin/**/*.vim عند البدء.

نصائح أخرى

فقط ضع دمية .vimrc في ~ مع سطر واحد فقط:

source ~/path/to/real/vimrc  

يعمل كالسحر

كما يقترح @بروجو في إجابتهم ، ~/.vimrc يمكن نقل الإعدادات إلى البرنامج النصي "المكون الإضافي" داخل ملف مثل ~/.vim/plugin/00rc.vim.

هناك بعض الأشياء التي يجب وضعها في الاعتبار عند السير في هذا الطريق:

يتوقع المستخدمون والمكونات الإضافية على حد سواء أن الإعدادات في ~/.vimrc تم تحميلها قبل أن يتم وصف الإضافات في :help startup. ~/.vim عادة ما يكون أولاً في "RunTimePath" ، ولكن إذا كان لدى المستخدم مكونات إضافية في ~/.vim/plugin, ، ال .vimrc يجب أن يكون الاستبدال معجميًا أولاً لضمان تحميله أولاً ، ربما ~/.vim/plugin/00rc.vim.

عندما تنتقل عملية بدء التشغيل VIM من الخطوة 3 "تنفيذ الأوامر السابقة" (حيث .vimrc كان من الممكن أن تقرأ مرة أخرى ، انظر :help startup) إلى الخطوة 4 "تحميل البرامج النصية المكون الإضافي" ، يتم تشغيله :runtime! plugin/**/*.vim. يبحث هذا الأمر من خلال "RunTimePath" لمطابقة الملفات للمصدر ثم يبدأ في الحصول على مصادرها. هذا يعني أنه إذا كان هناك شيء ما ~/.vim/plugin/00rc.vim يعدل "RunTimepath" ، ثم قد فات الأوان للتأثير على المكونات الإضافية التي يتم تشغيلها. يحدث هذا بشكل شائع مع العوامل الممرضة وفي هذه الحالة ، يمكن العمل حولها عن طريق إضافة الأسطر التالية إلى نهاية ~/.vim/plugin/00rc.vim:

" Since this "vimrc" is really run as a plugin, vim has already compiled the
" list of paths/plugins that it wil execute at startup.
" As a result, the pathogen plugins must be run manually.
runtime! bundle/*/plugin/**/*.vim
runtime! bundle/*/after/plugin/**/*.vim

أخيرًا ، (مرة أخرى كما هو موضح في :help startup)، اذا كان ~/.vimrc الملف غير موجود ، سوف يبحث VIM عن ملفات أخرى مثل ~/.exrc لذلك قد يكون من الضروري إزالتها إذا كانت محتوياتها غير مرغوب فيها.

يضيف خطوة إلى العملية ، لكن لديّ نص باش فقط Deploy.sh في إعدادات VIM الخاصة بي.

#!/bin/bash

if [ -f ~/.vimrc ] && [ ! -L ~/.vimrc ]
then
    echo "Backing up existing ~/.vimrc to ~/.vimrc.bak"
    mv ~/.vimrc ~/.vimrc.bak
fi
if [ -L ~/.vimrc ]
then
    echo "Already have ~/.vimrc symlink, we're good"
else
    echo "Creating symlink ~/.vimrc, which points to ~/.vim/vimrc"
    ln -s ~/.vim/vimrc ~/.vimrc
fi

git submodule init
git submodule update

يمكنك فقط الاحتفاظ بنسخة احتياطية في التحكم في الإصدار ونشره (أي تحركه) إلى الدليل المنزلي عندما تحتاجه. يمكنك كتابة برنامج نصي سهل لإدارة كل هذا التعامل مع الشفافية على الأقل لن يبدو الأمر وكأنه الكثير من العمل المزعج لنقله ذهابًا وإيابًا.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top