كيف يمكنك لصق خطوط مبوبة متعددة في Vi؟[مغلق]

StackOverflow https://stackoverflow.com/questions/58774

  •  09-06-2019
  •  | 
  •  

سؤال

أريد لصق شيء قمت بقصه من سطح المكتب في ملف مفتوح في 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، فإن علامات التبويب صحيحة.

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