سؤال لماذا لا يتم لصق Ctrl + V في Bash (shell shell)؟


عندما نسخ شيء ما إلى الحافظة واضغط السيطرة + الخامس في باش ، لا شيء يحدث. ومع ذلك ، النقر بزر الماوس الأيمن وتحديد معجون لا وظيفة.

لماذا ا؟ هل هناك أي مشكلة معقولة (أنا متأكد من وجود) وراء هذا السلوك في لينكس؟


174
2018-05-07 07:44


الأصل


Shift-Insert يعمل أيضا - bonyiii
أنا أفضل Ctrl-Shift-Vشخصيا - amalloy
تستطيع ايضا استخذام Shift + Insert في معظم بيئات shell. - Fabian
ماذا لو لم يكن لديك مفتاح Insert؟ - TR3B
انها لا تعمل في موجه الأوامر ويندوز 'أيضا - phuclv


الأجوبة:


في أيام المادية محطاتلم تكن هناك لوحات نصية على مستوى الجلسة ، ولم تدعم سوى القليل من البرامج النسخ / اللصق الداخلي - غالبًا تحت اسم "المخازن المؤقتة" أو "حلقات القتل" - واستخدمت ضغطات مفاتيح مختلفة مختلفة. على سبيل المثال ، سحق يستخدم قذيفة السيطرةك أو السيطرةU لقتل (قطع) ، السيطرةY ل "يانك" (لصق) ؛ هذا يأتي من ال ايماكس محرر.

السيطرةC تقريبا في كل مكان في يونيكس كان مفتاح "المقاطعة"، وتستخدم لإلغاء البرنامج الحالي أو العملية. ال السيطرةالخامس في كثير من الأحيان يعني "إدراج حرفيا" - وهذا هو ، إدراج الحرف التالي حرفيا دون تنفيذ أي إجراء المرتبطة بها. على سبيل المثال ، عادي زر Esc فى الكيبورد التبديل إلى وضع القيادة في السادس محرر ، ولكن السيطرةالخامس، زر Esc فى الكيبورد سوف تدرج ESC شخصية في الوثيقة.

استخدام السيطرةC لنسخ و السيطرةالخامس للصق من الحافظة على مستوى الجلسة تم تقديمه بواسطة Mac OS في عام 1983 و Microsoft Windows 3.x في عام 1990. (الإصدارات السابقة من Windows (1.x و 2.x) ، وكذلك IBM OS / 2 ، دعمت فقط IBM CUA مفاتيح السيطرةإنس لنسخ و تحولإنس لصق؛ تظل هذه الاختصارات مدعومة بواسطة كافة إصدارات Windows.)

عندما وصلت واجهة المستخدم الرسومية مع دعم الحافظة أخيرا يونكس ، و السيطرة كانت مفاتيح الضغط مستخدمة بالفعل من قبل العديد من البرامج الطرفية. بالإضافة إلى ذلك ، كانت الواجهة الرسومية X إلى حد ما آليات مختلفة: "التحديدات" و "قطع مخازن مؤقتة". حتى الآن ، يمكنك تحديد النص في برنامج واحد وإدراجه باستخدام زر الماوس الأوسط ، دون أي إجراء نسخ صريح.

باختصار ، في الوقت الذي كتبت فيه Xterm و GNOME Terminal (أظن أنك تستخدم هذا الأخير) ، السيطرةالخامس  بالفعل معنى مختلف تماما لسنوات عديدة ولا يمكن تغييره. بالإضافة إلى ذلك ، كانت هناك طريقة بديلة لنسخ النص - "التحديد" - موجودة بالفعل في X11 ، لذا ربما تم اعتبار إجراء النسخ / اللصق الصريح غير مهم كما هو الحال في Windows. هذا يعني أنه كان لابد من تحديد اختصارات مختلفة للوحة المفاتيح - على سبيل المثال ، تستخدم معظم البرامج الطرفية الحديثة ، مثل GNOME Terminal السيطرةتحولC و السيطرةتحولالخامس. (إذا كنت تستخدم Xterm ، فيمكن إضافة الاختصارات نفسها يدويًا باستخدام إكس تيرم * VT100 * ترجمة Xresource. Rxvt لا يملك مثل هذا الخيار.)

(تدعم مجموعة أدوات X11 أيضًا مفاتيح "نسخة" و "لصق" CUA التي لا تتعارض مع البرامج الطرفية. لسوء الحظ ، فإن التطبيقات غير متناسقة - السيطرةإنس نسخ إلى "الحافظة" في معظم البرامج (GTK ، Qt4 ، ولكن تجاهلها من قبل XAW) ؛ ومع ذلك، تحولإنسمعاجين من "الاختيار الأساسي" في معظم برامج GTK و Qt4 ، ولكن من "الحافظة" في Firefox ، ومن المخازن المؤقتة المتقطعة الآن في Xaw الذي عفا عليه الزمن الآن.)


كل ما يقال ، بعض المحطات أو وحدات التحكم (على وجه الخصوص ، وحدة تحكم Windows 10) فعل دعم هذه المفاتيح. نظرًا لأن وحدة تحكم Windows كان لها دائمًا وضع "تحديد / تحديد" منفصل ، السيطرةC الآن أيضا معنيين على أساس السياق - في الوضع العادي يرسل مقاطعة ، في وضع تحديد ينسخ إلى الحافظة (مثل فقط أدخل اعتدت ان).

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


341
2018-05-07 08:03



هم. في Vim ، تعني "yank" النسخ بدلاً من اللصق. يبدو هذا أكثر منطقية أيضًا. هل أنت متأكد من معنى هذا المصطلح هنا؟ - Konrad Rudolph
نعم أنا متأكد. Bash يرث الاختصارات الافتراضية من معادلاتهم Emacs. - grawity
grawity: التعليق الأخير الخاص بك هو بت المراهق مضللة. يقدم Bash وضعين لتحرير سطر الأوامر ، وضع vim ووضع emacs. يحدث أن وضع emacs هو الإعداد الافتراضي في معظم عمليات التثبيت. وهذا يثير اللبس في استخدام المصطلح نثرحتى لباش. - rahmu
A-ها! أنا عرف أخطأ مطورو Vimperator عندما قاموا بالتبديل <C-v> إلى i في الإصدار 3 ، لكنني لم أتمكن من وضع إصبعي لماذا ا. - Izkata
@ Colorin: لا يزال غاب عن التمييز بين الحافظة واختيار العاشر. هناك عدة اختيارات (PRIMARY ، SECONDARY ، CLIPBOARD) ، ولكن واحد منها فقط يسمى عادة "clipboard" - اختيار CLIPBOARD ، لأنه هنا حيث Ctrl-C ينسخ ، وهذا هو المكان الذي Ctrl-V معاجين منه. الاختيار الأساسي ليس الحافظة. - grawity


استعمال السيطرةتحولالخامس للصق.

السيطرة مع أحرف أخرى تستخدم عادة من قبل شل للوظائف الخاصة.


42
2018-05-07 07:45



فلماذا لا يقوم Linux بتسجيل CTRL + SHIFT للوظائف الخاصة بدلاً من ذلك ؛ أعتقد أن النسخ واللصق أكثر نموذجية من قبل بعض المستخدمين من تلك الوظائف الخاصة ، أليس كذلك؟ - Yasser Zamani
توجد الأصداف قبل أن تكون هناك محطات رسومية ورسومية (GUI) مع وظيفة القص واللصق ، لذلك لا تكون حجتك صحيحة. YasserZamani - slhck
يتم تنفيذ Ctrl + Shift + V بواسطة المحاكي الطرفي (على افتراض أنك تستخدم GNOME Terminal) وليس بواسطة bashبحد ذاتها. إذا كنت خارج بيئة واجهة المستخدم الرسومية (GUI) ، أو إذا كنت تستخدم محاكي مصطلح آخر ، فمن المحتمل ألا يعمل هذا. لا أعتقد أن هذا الأمر محمول. - rahmu
rahmu أوه ، ليس لديه أي فكرة عن ذلك. استخدم فقط تثبيت أوبونتو الأسهم. هل هناك قيادة عالمية؟ - Akash
ربما لا يوجد واحد للوصول إلى الحافظة (فقط Shift + Ins للاختيار الأساسي). حتى الحافظة نفسها هي X11 شيء ، لا يمكن الوصول إليها من tty. ومع ذلك ، فإن Ctrl + Shift + V مدعوم من طرف GNOME Terminal ، Xfce4 Terminal ، KDE Konsole؛ هذا يغطي بيئات واجهة المستخدم الرسومية الأكثر شعبية. - grawity


إليك إعدادات لصق نسخة الأغراض العامة الخاصة بك مع محطات شعبية:

gnome-terminal (الأكثر شيوعًا على Linux)
نسخ: السيطرةتحولC
معجون: السيطرةتحولالخامس
ملحوظة: حدد للنسخ و فوق المتوسطة لصق يعمل أيضا ، لكنه يستخدم الحافظة البديل.

PuTTY (المحطة الأكثر شعبية في Windows)
نسخ: (حدد بالماوس ، دون تفاعل لوحة المفاتيح)
معجون: انقر بزر الماوس الأيمن  (أو أكثر موثوقية: تحولانقر بزر الماوس الأيمن)
ملحوظة: التطبيقات التي تأخذ إدخال الماوس (مثل vim و linksيمكن أن يسرق انقر بزر الماوس الأيمن - تحولانقر بزر الماوس الأيمن ستعمل دائمًا في أي تطبيق.

OSX الطرفية
نسخ: تفاحةC
معجون: تفاحةالخامس
ملحوظة: التطبيقات التي تأخذ السيطرة على الماوس (مثل vim و links) قد يتجاوز ما يعنيه تحديد النص ، وفي هذه الحالة لن تعمل النسخة بالطريقة التي تتوقعها. في تلك الحالات ، اضغط باستمرار مراقبة بينما تقوم بسحب الماوس لتحديده. يتم تعطيل تفاعل الماوس مع التطبيقات افتراضيًا في إعدادات المحطة الطرفية الخاصة بك ، لذلك لا يعرف معظم الناس عن هذا الأمر.


17
2018-05-07 21:22



ليس cmd.exe أكثر شعبية من PuTTY على ويندوز؟ :-) - Ben
Ben ليس كمحطة SSH. - tylerl
لا، cmd.exe ليس محطة SSH. هذا صحيح جدا. - Ben
@ بن: إنها ليست محطة على الإطلاق - فقط قذيفة. المحطة الافتراضية في Windows هي مكون "وحدة تحكم Windows" من csrss. - grawity
@ بن ولكن الحق انقر فوق لصق أيضا يعمل على cmd.exe (وهي الطريقة الوحيدة هناك ، إذا كنت لا ترغب في فتح القائمة> تحرير> لصق) وضع تحرير سريع. لا يوجد اختصار في موجه الأوامر قبل - win10 - phuclv


إنه تقليد عميق الجذور السيطرة المفتاح مع حرف ينشئ أحرف تحكم ASCII العثور على بطرح 64 من قيمة ASCII لحرف الأحرف الكبيرة. هذه الحسابات حساب السيطرة-ا إلى 1 ، وهلم جرا. على سبيل المثال السيطرة-أنا هو التبويب و السيطرة-J هو تغذية.

لا يوجد تقليد مماثل ل السيطرة-تحول. السيطرة-تحول-الخامس لا يتوقع أن تنتج أي شخصية محددة.

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

ومع ذلك ، فإن المحاكيات الطرفية لها حرية الاعتراض السيطرة-تحول-الخامسالذي لا يتوقع أن يولد شخصية. السيطرة-تحول-الخامس ليس معيارًا انها شيء Gnome الطرفية (والذي قد يكون في بعض المحطات الأخرى).

على أجهزة كمبيوتر سطح المكتب Unix المستندة إلى X هو أن هناك حاجة إلى أي أمر للنسخ. ما عليك سوى اختيار النص. ويلصق الزر الأوسط هذا النص في مكان آخر. ستجد أنه يعمل في Xterm ، و Gnome Terminal و Firefox على حد سواء.

السيطرة-الخامس هو اصطلاح مايكروسوفت ويندوز ، وهو تقليد تفاحة-الخامس من ماكنتوش.


16
2018-05-07 14:34



ليس بالضبط الطرح - تقليديا له السيطرة مسح بت 6 و 7 من الشخصية وبسبب ذلك ، يعمل حرف Ctrl + Shift + بشكل متماثل مع Ctrl + Letter في معظم الأجهزة الطرفية (ما لم يتم تجاوزه بشكل صريح بواسطة الجهاز ، كما هو الحال في اختصارات النسخ / اللصق). - grawity
نظرًا لأن المفاتيح يتم ترتيبها بشكل عشوائي وفقًا لمعيار ASCII ، يشتمل ROM ROM على العديد من جداول البحث التي تساعد في إنشاء رموز ASCII. ... الاستمرار في تملك مفتاح CONTROL عند الضغط على مفتاح آخر يؤدي إلى البحث عن جدول آخر. [VT100 series Technical Manual، 4.4.9.3، Digital]. - Kaz
Linger شكرا على التعديل. يجعلها لطيفة ، ولكن لا توجد طريقة أنا أكتب كل هذه <kbd> علامات في المشاركات المستقبلية. - Kaz
Ctrl-A هو 1. كيف أحاول هذا؟ لا تفعل مطابقته في Gnome شيئًا عندما أضغط Ctrl-A. - robert


يمكننا استخدام زر إدراج لوحة المفاتيح للقيام بالنسخ واللصق (في لوحات المفاتيح القديمة يمكن أن يكون مفقودًا)

نسخ: السيطرةإدراج
معجون: السيطرةتحولإدراج 


2
2018-05-08 13:42





بالنسبة لي ، فإن أبسط طريقة لنسخ اللصق في الغلاف هي:

حدد الرمز الذي تريده ثم قم بتجاوزه بالنقر فوق الماوس في منتصف مفتاح


2
2017-08-03 12:57



ما دام لديك مفتاح ماوس متوسط. - jpierson
jpierson لا يعني أنني أوصي بشدة بهذا ، ولكن يمكنك كتابة نص صغير يستخدم ببساطة xdotool click 2 لمضاهاة نقرة الزر الثالث لك. بعد ذلك ، في أي بيئة مدير / سطح مكتب نافذة أنت فيها ، يمكنك ربط هذا البرنامج النصي بمفتاح - على سبيل المثال mod  i (للإدراج) أو أياً كانت المفاتيح التي قد تكون متوفرة لديك (أو أيا كان ما قد يعنيه mod) - وهو ما يعتمد في الواقع على المكان الذي تربطه به) - dylnmc


يمكنك أيضًا استخدام الزر الأوسط بالماوس إذا كنت تشعر بالكسول واختر أمرًا من مستند نصي أو برنامج نصي أو ويب أو منتدى. بمجرد تحديد الأمر المقصود ، ما عليك سوى الانتقال إلى الجهاز الخاص بك والنقر فوق الزر الأوسط على الماوس. أنا استخدم هذه الطريقة وأنا أستخدم جرو لينكس الذي لا يبدو لدعم السلوك الطبيعي للنقر واللصق الصحيح. لا في إطار معالج ملف ، فقط ليس في نافذة طرفية. لا أعرف لماذا ولكن أنا سعيد بالسكاكين اكتشفت عن طريقة زر الأوسط ، سهل للغاية! ؛-)


1
2018-05-19 16:08