كيف يمكنك لصق خطوط مبوبة متعددة في Vi؟[مغلق]
سؤال
أريد لصق شيء قمت بقصه من سطح المكتب في ملف مفتوح في Vi.
ولكن إذا قمت بلصق علامات التبويب، قم بتضمينها فوق بعضها البعض عبر الصفحة.
أعتقد أنه نوع من تغيير الوضع المرئي ولكن لا يمكنني العثور على الأمر.
المحلول
إذا كنت تستخدم عادي السادس:
ربما لديك autoindent
على.لإيقاف تشغيله أثناء اللصق:
<Esc> :set noai
<paste all you want>
<Esc> :set ai
لدي في بلدي .exrc
الاختصارات التالية:
map ^P :set noai^M
map ^N :set ai^M
لاحظ أن هذه يجب أن تكون أحرف التحكم الفعلية - أدخلها باستخدام كنترول-الخامس كنترول-ص وما إلى ذلك وهلم جرا.
إذا كنت تستخدم vim:
استخدم ال paste
خيار.بالإضافة إلى تعطيل autoindent
سيتم أيضًا تعيين خيارات أخرى مثل textwidth
و wrapmargin
إلى الإعدادات الافتراضية الملائمة لللصق:
<Esc> :set paste
<paste all you want>
<Esc> :set nopaste
يمكنك أيضًا تعيين مفتاح لتبديل وضع اللصق.لي .vimrc
لديه السطر التالي:
set pastetoggle=<C-P> " Ctrl-P toggles paste mode
نصائح أخرى
إذا كنت تستخدم VIM، فيمكنك استخدام "*p (أي.علامات الاقتباس المزدوجة، النجمة، الحرف p).
لقد وجدت أنه إذا قمت بنسخ الأسطر المبوبة أولاً إلى محرر نصوص ثم أعدت نسخها من هناك إلى vim، فإن علامات التبويب صحيحة.