سؤال

كيف يمكنني تكرار سطر كامل في Vim بطريقة مشابهة لـ كنترول+د في IntelliJ IDEA/Resharper أو كنترول+بديل+/ في الكسوف؟

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

المحلول

ذذ أو ي لنسخ السطر
أو
دد لحذف (قطع) السطر

ثم

ص للصق النص المنسوخ أو المحذوف بعد الخط الحالي
أو
ص للصق النص المنسوخ أو المحذوف قبل الخط الحالي

نصائح أخرى

الوضع العادي:انظر الإجابات الأخرى.

ال السابق طريق:

  • :t. سوف يكرر السطر
  • :t 7 سيتم نسخه بعد السطر 7،
  • :,+t0 سيتم نسخ السطر الحالي والتالي في بداية الملف (,+ هو مرادف للنطاق .,.+1),
  • :1,t$ سيتم نسخ الخطوط من البداية حتى موضع المؤشر إلى النهاية (1, هو مرادف للنطاق 1,.).

إذا كنت بحاجة إلى النقل بدلاً من النسخ، فاستخدم :m بدلاً من :t.

يمكن أن يكون هذا قويًا حقًا إذا قمت بدمجه معه :g أو :v:

  • :v/foo/m$ سينقل كافة الأسطر التي لا تطابق النمط "foo" إلى نهاية الملف.
  • :+,$g/^\s*class\s\+\i\+/t. سيتم نسخ جميع الأسطر اللاحقة من النموذج class xxx مباشرة بعد المؤشر.

مرجع: :help range, :help :t, :help :g, :help :m و :help :v

YP أو Yp أو yyp.

copy and paste in vim

لا يوجد شيء أبسط من هذا!من الوضع العادي:

yy

ثم انتقل إلى السطر الذي تريد اللصق فيه و

p

ذذ

سوف ينتزع السطر الحالي دون حذفه

دد

سيتم حذف السطر الحالي

ص

سوف put خط تم التقاطه بواسطة أي من الطرق السابقة

إذا كنت تريد طريقة أخرى :-)

"ayy سيؤدي هذا إلى تخزين الخط في المخزن المؤقت a

"ap سيؤدي هذا إلى وضع محتويات المخزن المؤقت a عند المؤشر.

هناك العديد من الاختلافات في هذا الشأن.

"a5yy سيؤدي هذا إلى تخزين الأسطر الخمسة في المخزن المؤقت a

يرى http://www.vim.org/htmldoc/help.html لمزيد من المتعة

افعل هذا:

أولاً، ذذ لنسخ السطر الحالي، وبعد ذلك ص لصق.

ذذص - تذكرها بـ "yippee!"

أسطر متعددة بينها رقم:

ذ7ذص

ذذص - لصق بعد

ذذص - لصق من قبل

يمكنك أيضًا تجربة <C-x><C-l> الذي سيكرر السطر الأخير من وضع الإدراج ويجلب لك نافذة إكمال تحتوي على جميع الأسطر.إنه يعمل تقريبًا مثل <C-p>

خيار آخر سيكون الذهاب مع:

nmap <C-d> mzyyp`z

يمنحك ميزة الحفاظ على موضع المؤشر.

بالنسبة لشخص لا يعرف vi، فإن بعض الإجابات الواردة أعلاه قد تضلله بعبارات مثل "لصق...بعد قبل الخط الحالي".
انها في الواقع "لصق ..."بعد قبل المؤشر".

ذذ أو ي لنسخ السطر
أو
دد لحذف السطر

ثم

ص للصق النص المنسوخ أو المحذوف بعد ال المؤشر
أو
ص للصق النص المنسوخ أو المحذوف قبل ال المؤشر


لمزيد من الارتباطات الرئيسية، يمكنك زيارة هذا الموقع: vi قائمة ربط المفاتيح الكاملة

انا يعجبني:يحول+الخامس (لتحديد السطر بالكامل فورًا ويتيح لك تحديد أسطر أخرى إذا أردت ذلك)، y، p

1 مسكتك:عندما تستخدم "p" لوضع السطر، فإنه يضعه بعد الخط الذي يوجد عليه المؤشر، لذا إذا كنت تريد إضافة السطر بعد السطر الذي تقوم بسحبه، فلا تحرك المؤشر لأسفل سطرًا قبل وضع السطر الجديد.

الافتراضي هو ذذص, ، لكنني كنت أستخدم إعادة الربط هذه لمدة عام أو نحو ذلك وأحبها:

" set Y to duplicate lines, works in visual mode as well. nnoremap Y yyp vnoremap Y y`>pgv

أعلم أنني تأخرت عن الحفلة، لكن أيا كان؛لدي هذا في .vimrc الخاص بي:

nnoremap <C-d> :copy .<CR>
vnoremap <C-d> :copy '><CR>

ال :copy يقوم الأمر فقط بنسخ السطر المحدد أو النطاق (الأسطر الكاملة دائمًا) إلى أسفل رقم السطر المحدد كوسيطة له.

في الوضع العادي ما يفعله هذا هو copy . انسخ هذا السطر إلى أسفل هذا الخط مباشرةً.

وفي الوضع المرئي يتحول إلى '<,'> copy '> انسخ من بداية التحديد إلى نهاية التحديد إلى السطر الموجود أسفل نهاية التحديد.

بالنسبة لأولئك الذين بدأوا في تعلم vi، إليك مقدمة جيدة لـ vi من خلال إدراج أوامر vi جنبًا إلى جنب لحركة مؤشر Windows GUI Editor النموذجية ومفاتيح الاختصار.يسرد جميع الأوامر الأساسية بما في ذلك yy (خط النسخ) و ص (لصق بعد) أو ص(لصق من قبل).

السادس (Vim) لمستخدمي Windows

إذا كنت ترغب في تكرار سطر ولصقه على الفور أسفل الشكل الحالي، تمامًا كما هو الحال في Sublime كنترول+يحول+د, ، ثم يمكنك إضافة هذا إلى ملفك .vimrc ملف.

imap <S-C-d> <Esc>Yp

أحب استخدام هذا التعيين:

:nnoremap yp Yp

لأنه يجعلها متسقة للاستخدام بجانب المواطن الأصلي YP يأمر.

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