هل من الممكن ربط أوامر الربط الرئيسية في النص السامي 2؟

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

  •  10-12-2019
  •  | 
  •  

سؤال

هناك أوقات في Sublime Text عندما أرغب في الكشف عن الملف الحالي في الشريط الجانبي ثم التنقل حول بنية المجلد.

ويمكن تحقيق ذلك باستخدام الأوامر reveal_in_side_bar و focus_side_bar ومع ذلك، يجب أن تكون مرتبطة بمجموعتين منفصلتين من المفاتيح، لذا يجب أن أقوم بمجموعتين من لوحات المفاتيح لتحقيق هدفي عندما أرغب في واحدة فقط (أنا كسول).

هل هناك أي طريقة لربط أوامر متعددة بمجموعة مفاتيح واحدة؟على سبيل المثالشيء من هذا القبيل:

{
  "keys": ["alt+shift+l"], 
  "commands": ["reveal_in_side_bar", "focus_side_bar"]
},

حل

بناءً على إجابات @artem-ivanyk و@d_rail

1) الأدوات → البرنامج المساعد الجديد

import sublime, sublime_plugin

class RevealInSideBarAndFocusCommand(sublime_plugin.WindowCommand):
    def run(self):
        self.window.run_command("reveal_in_side_bar")
        self.window.run_command("focus_side_bar")

احفظ باسم RevealInSideBarAndFocus.py

2) نص سامية 2 → التفضيلات → روابط المفاتيح - المستخدم

ربطه بالاختصار:

{ "keys": ["alt+shift+l"], "command": "reveal_in_side_bar_and_focus" }
هل كانت مفيدة؟

المحلول

تحديث إجابة Eartem Ivanyk.أنا لا أعرف ما الذي تغير في سامية، لكن هذا الحل لم يعمل بالنسبة لي، لكنني حصلت على هذا العمل: giveacodicetagpre.

. giveacodicetagpre.

btw، أنا أستخدم بناء 2220

نصائح أخرى

على الرغم من أن السؤال عمره عام، إلا أن هذا قد يساعد الأشخاص الذين ما زالوا يبحثون عن إجابة.

في الآونة الأخيرة، تم تطوير حزمة جديدة بواسطة jisaacks، تسمى Chain of command.وتتمثل مهمتها الأساسية في القيام بما تطلبه بالضبط، أي ربط عدة أوامر في وقت واحد.

الحزمة يمكن العثور عليها هنا:https://github.com/jisaacks/ChainOfCommand

يمكن العثور على مثال للعمل أدناه.

لنفترض أنك تريد ربط مفتاح لتكرار الملف الحالي.يمكنك ضبط ربط المفتاح هذا:

{
  "keys": ["super+shift+option+d"], 
  "command": "chain", 
  "args": {
    "commands": [
      ["select_all"],
      ["copy"],
      ["new_file"],
      ["paste"],
      ["save"]
    ]
  }
}

سيؤدي هذا إلى تحديد النص بالكامل ونسخه وإنشاء ملف جديد ولصق النص ثم فتح مربع حوار حفظ الملف.

مصدر: https://sublime.wbond.net/packages/Chain%20of%20Command.

تعثرت عند مشكلة مماثلة.عند محاولة تسجيل وحدات الماكرو، والتي تنطوي عليها "يحفظ" الأمر، ألقى وحدة التحكم في وجهي "أمر حفظ وحدات ماكرو غير معروف" رسالة.لقد عملت في طريقي باستخدام البرنامج المساعد الأولي.

1) الأدوات → البرنامج المساعد الجديد

import sublime, sublime_plugin

class MyChainedActionsCommand():
    def run(self):
        self.view.run_command("reveal_in_side_bar")
        self.view.run_command("focus_side_bar")

تحتاج إلى استخدام تدوين حالة الجمل العلوي لاسم الفئة.يعرض ST2 هذه الفئة لاسم الأمر مع "يأمر" تمت إزالة اللاحقة وتحويل الباقي إلى تدوين الشرطة السفلية الصغيرة.أي.في هذا المثال MyChainedActionsCommand يمكن تشغيله في كتابة وحدة التحكم الخاصة بـ Sublime: view.run_command("my_chained_actions")

2) نص سامي 2 → التفضيلات → روابط المفاتيح - المستخدم

ربطه بالاختصار:

{ "keys": ["alt+shift+l"], "command": "my_chained_actions" }

انتبه للفواصل.

ألق نظرة على هذا GIST .

لقد كنت أحاول تنفيذ هذا منذ فترة طويلة ووجدت هذا عن طريق الصدفة.

لا تنس قراءة "الوثائق" المقدمة.ظللت أحاول جعل هذا العمل، حتى أجدني أنني لم أتمكن من اجتياز مفتاح "السياق".

يمكنك إنشاء ماكرو للقيام بذلك.بالنسبة إلى Sublime Text، فإن وحدات الماكرو هي في الأساس مجرد أوامر متسلسلة.يمكنك بعد ذلك إنشاء رابط مفتاح لهذا الماكرو.يمكنك إنشاء ماكرو باستخدام Tools > Record Macro, ، ثم تنفيذ الأوامر (احذر من أن وحدات الماكرو تسجل ضغطات المفاتيح أيضًا، لذلك ستحتاج إلى استخدام الأوامر من شريط القائمة حتى لا تتسبب في حدوث تعارضات)، ثم Stop Recording, ، ثم Save Macro.بعد حفظ الماكرو، يمكنك فتحه احتياطيًا في Sublime Text للتأكد من أنه سجل ما تريده فقط.

بناء على ارتيم ايفانيك الرد، إليك نسخة من ChainedActions التي تعمل مع الوسائط.يستغرق حجتين ل actions و args.كلاهما قائمتان ويتم تنفيذ كل أمر في القائمة باستخدام الوسيطات المقابلة.يُدرج هذا المثال الغبي المعترف به مقتطفين: view.run_command("chained_actions", {"actions":["insert_snippet","insert_snippet"],"args":[{"contents": "($0)"},{"المحتويات":"1($0)"}]})`

import sublime
import sublime_plugin

class ChainedActionsCommand(sublime_plugin.TextCommand):
    def run(self, edit, actions, args):
        for i, action in enumerate(actions):
            self.view.run_command(action, args[i])

لقد حاولت استخدام الأمر نفسه ولكن انتهى بي الأمر مع وجود خطأ عندما كان مجلد الملف قد تم تكشفه بالفعل أن سمعي نقل أعلى قمة جانبية التركيز، حيث يمكنني رؤية الملفات المفتوحة.لتحسين هذا السلوك لقد كتبت مكون إضافي جديد يضمنه أن يتصرف كما أريد، هنا هو https://github.com/miguelgraz/focusfileonsideBar

أنا أستخدم بناء Sublime text3 - 3083.إنه يحل المشكلة فقط عن طريق "الكشف عنها في الشريط الجانبي"، ويأتي التركيز تلقائيًا.

لقد أضفت اختصار لوحة مفاتيح مخصصًا لـ "Reveal in Sidebar" عن طريق إضافة العبارة التالية ضمن Preferences->Key Bindings-User:

[
    { "keys": ["ctrl+shift+r"], "command": "reveal_in_side_bar"}
]

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

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