سؤال كيف أختار كل النص في Vi / Vim؟


باستخدام أداة VI لتحرير ملفات التكوين.

كيف يمكنني تحديد كل النص في ملف (حوالي 1000 سطر) ، ونسخه ، ثم الصقه في محرر مستندات Google؟


155
2017-12-30 17:05


الأصل


i  Ctrl-A  Ctrl-C، لا حاجة لأوامر vim الهوى (وهي في الواقع أسرع في الكتابة من أعلى إجابة) - Laconian Thinker


الأجوبة:


أبسط وأسرع طريقة لاستخدام: :  ٪  ذ  + ثم انتقل إلى محرر مستندات Google (أو في أي مكان) والصقها. تفسير:

  • ٪  للإشارة إلى الأمر التالي للعمل على جميع الخطوط
  • ذلإنهاء تلك الخطوط
  • +للنسخ إلى حافظة النظام

طريقة أخرى هي ز  ز  "  +  ذ  G لكنك ستعترف على الأرجح بأن ما سبق هو أسرع وأسهل.


131
2018-03-26 21:30



Tuxmentat هل يمكن أن توضح ما يفعله كل مفتاح في :%y+ - Jas
سيكون هذا الجواب أفضل إذا شرح ما يفعله كل مفتاح لكل من التسلسلات. - AsksAnyway
أفضل تخميني: يعني ":" أننا نستخدم أمر "الوضع السابق" (على ما أظن). على أي حال ، إنه أمر. "٪" هو خاص محدد نطاق سطر الأوامر الذي يحدد الملف بأكمله. يذبح كل شيء ، و "+" يحدد سجل الحافظة. : ساعدتني <command> في معرفة ذلك. - Hawkeye Parker
لا بد لي من أن تفعل شيئا خاطئا. انا اطبع :%y+واحصل على E488: Trailing characters - johny why
أحصل على "E850: اسم تسجيل غير صالح". الطريقة الثانية عملت بشكل جيد للنسخ ، ولكن لم تحصل على حافظة النظام على Ubuntu 16.04 (بالنسبة لي ، على الأقل --- لدي .vimrc التي قد تؤثر على الأشياء). - EntangledLoops


كثير من الردود أعطت أيضا الانتقاء ، الذي لم أكن أبحث عنه.

أنا استخدم ggVG لهذا الغرض (يحتاج إلى تشغيل في الوضع العادي). هذا الأمر فقط يحدد النص بأكمله داخل المستند.

حتى أنني قمت بضبطه السيطرة + A لهذا الغرض ، لأنني لا أحتاج حقا لزيادة عدد صحيح مع الاختصار (الافتراضي السيطرة + A خريطة).

فقط اضف هذا الى حسابك .vimrc:

map <C-a> <esc>ggVG<CR>

لديها <esc> أولاً ، للتأكد من أن المستخدم في الوضع العادي.


73
2018-05-29 15:09



بالضبط ما كنت أبحث عنه ، ومن الجميل أن نرى أن Ctrl + A ليست مشغولة في vim افتراضيًا. آمل ألا تكون هناك آثار جانبية. - Nikos Alexandris
أنا شخصيا استخدم ggVG، لكن gg0vG$ قد يكون أكثر ملاءمة لأنه يكرر عملية Ctrl + A "العادية". - Sheharyar


يمكنك استخدام cat file ثم حدد المخرجات وانسخها والصقها إذا كنت تريد لصقها في متصفحك.

بالنسبة إلى vi ، يمكنك تحديد كل النص وكتابته في ملف جديد:

shift v  -- visual mode
shift g -- jump to eof
"*y -- yank select text
:e my_new_file -- create a new file
"*p -- paste into a new file

من الناحية النظرية ، يجب أن يعمل هذا على كل من لينكس وويندوز - لقد جربته على نظام ماك لكنه لا يعمل.


36
2017-12-30 17:21



للصق في مستعرض الويب cat file هي الطريق للذهاب. ال shift v طريقة نسخ فقط إلى المخزن المؤقت الداخلي لفي. - Aleksandr Levchuk
لا إذا كنت تستخدم حافظة النظام الذي يستخدم * التسجيل - ولكن هذا يعمل على X فقط وسمعت على النوافذ - لذلك إذا كنت ssh تحتاج إلى -X - للتحقق مما إذا كان vim لديه دعم لهذا في vim -: ضبط الحافظة + = لم يسمها
هل هناك أي بديل للقيام بذلك دون إنشاء ملف جديد.إذا كنا نقوم بتحرير مباشر على الخادم ، فإننا بحاجة إلى الاحتفاظ بالرمز الاحتياطي على الجهاز المحلي حتى نتمكن من العودة. - Nagama Inamdar
+1 لقط وحدد في المعجون. بطبيعة الحال ، لن تعمل مع الملفات الضخمة وليست طريقة سهلة الاستخدام. ولكن نسخ ملفات البرامج النصية الصغيرة التي تخرج خارج إطار العرض جيد بما فيه الكفاية. - Arnis Juraga


استخدام ggVG. اكتب "gg" للانتقال إلى أعلى الاختبار ثم اكتب VG.


13
2017-12-29 12:47





gg"+yG

أو

gg"*yG

اعتمادا على ما إذا كان + أو * هو حافظة النظام. (في العديد من unixes ، + هو المخزن المؤقت لتحديد الماوس للنقر الأوسط ، و * هو حافظة النظام).


6
2017-12-30 19:19



أعتقد أن العكس هو الصحيح: "* هو التحديد و" + هو الحافظة. vimdoc.sourceforge.net/htmldoc/gui_x11.html#x11-selection - Mikel
أنت على حق. كنت أعرف ذلك أيضًا ، لكنني كتبت الخطأ. - frabjous


أنا أستخدم Vim 7.4 في بيئة CentOS-7. التي عملت لي لاختيار كل النص

:%y

ثم فقط p في الملف التالي حيث أريد نسخة كاملة.

أو 

يمكنك استخدام الأمر cat.

cat copyfile > pastefile

هذا git ريبو لديه بعض الأوامر المفيدة الأخرى أيضًا.


4
2017-07-17 04:07





بالنسبة لنظام Mac ، استخدم pbcopy (نسخ لوحة اللصق):

cat file.txt | pbcopy

أصبحت محتويات ملف file.txt الآن في الحافظة للصقها في تطبيق آخر (على سبيل المثال ، المتصفح).

يمكنك أيضًا لصق محتويات الحافظة في ملف باستخدام pbpaste:

pbpaste > file.txt

في حين أن هذا لا ينطوي على vi بالتحديد فإنه يحقق نفس الهدف على جهاز ماكنتوش.


3
2018-01-08 19:05





إذا كنت تستخدم سطح مكتب لينكس ، فيمكنك تحميله في الحافظة باستخدام xclip أو xsel. بالنسبة إلى شيء بهذا الحجم ، قد ترغب فقط في استخدام ميزة التحميل في مستندات Google.


1
2017-12-30 17:28