Sublime 3 - ตั้งค่าการแมปคีย์สำหรับนิยาม Goto ของฟังก์ชัน


143

ฉันต้องการสร้างทางลัดสไตล์ Eclipse Ctrl+ MouseClickเพื่อเปิดฟังก์ชั่น / วิธี Sublime ข้อความที่มีอยู่แล้ว 3 ฟังก์ชั่นนี้เรียกว่าแต่มันถูกผูกไว้กับgoto_definitionF12

แต่ฉันไม่แน่ใจว่าจะสร้างการเชื่อมโยงนี้ได้อย่างไร ฉันดูเอกสารที่นี่แต่มันซับซ้อนเกินไป คุณสามารถช่วยฉันด้วยการผูกกุญแจแบบง่าย ๆ นี้ได้ไหม

แก้ไข: ทำตามบทความนี้ฉันบอกให้ทำเช่นนี้: http://webtempest.com/better-definition-navigation-in-sublime-text-3/

[
    {
        "button": "button1", 
        "count": 1, 
        "modifiers": ["super", "shift"],
        "press_command": "drag_select",
        "command": "goto_definition"
    }
]

ดูเหมือนจะใช้งานไม่ได้ctrl+ shift+ clickดำเนินการอะไรเลย


3
superเป็นคีย์ windows สำหรับ Windows และ Linux และคีย์คำสั่งสำหรับ OS X ไม่ใช่การควบคุม ลองและดูว่าคุณได้รับพฤติกรรมที่คุณต้องการหรือไม่
skuroda

คำตอบ:


244

สำหรับคนอื่น ๆ ที่ต้องการตั้งค่าคำจำกัดความลักษณะข้ามไปของ Eclipse คุณต้องสร้าง.sublime-mousemapไฟล์ในUserโฟลเดอร์Sublime

Windows - สร้างDefault (Windows).sublime-mousemapใน%appdata%\Sublime Text 3\Packages\User

ลินุกซ์ - สร้างDefault (Linux).sublime-mousemapใน~/.config/sublime-text-3/Packages/User

Mac - สร้างDefault (OSX).sublime-mousemapใน~/Library/Application Support/Sublime Text 3/Packages/User

ตอนนี้เปิดไฟล์นั้นและวางการกำหนดค่าต่อไปนี้ภายใน

[
    {
        "button": "button1", 
        "count": 1, 
        "modifiers": ["ctrl"],
        "press_command": "drag_select",
        "command": "goto_definition"
    }
]

คุณสามารถเปลี่ยนmodifiersรหัสได้ตามต้องการ


เนื่องจากCtrl- button1บน Windows และ Linux ใช้สำหรับการเลือกหลายอย่างการเพิ่มคีย์ตัวที่สองอย่างเช่นAltอาจเป็นความคิดที่ดีถ้าคุณต้องการใช้คุณสมบัติทั้งสอง:

[
    {
        "button": "button1", 
        "count": 1, 
        "modifiers": ["ctrl", "alt"],
        "press_command": "drag_select",
        "command": "goto_definition"
    }
]

หรือคุณสามารถใช้ปุ่มเมาส์ขวา ( button2) Ctrlเพียงอย่างเดียวและไม่รบกวนการทำงานของฟังก์ชั่นในตัว


4
ดูเหมือนว่าคำตอบที่ถูกต้อง แต่ฉันทำทุกสิ่งที่คุณพูดแล้วก็ยังไม่ทำงานฉันctrl+ clickและมันไม่ทำอะไรเลยฉันได้รับข้อผิดพลาดUnable to parse binding
Kivylius

คุณตรวจสอบชื่อไฟล์การกำหนดค่าแล้วหรือยัง คุณสามารถโพสต์ภาพหน้าจอข้อผิดพลาดได้ที่ไหน?
Boris Brdarić

ไม่มีใครรู้ว่าคุณคลิกขวาเพื่อสิ่งนี้หรือไม่? ฉันสามารถเพิ่มคำสั่งไฟล์เมนู Context.sublime แต่ไม่สามารถหาวิธีส่งผ่าน args สำหรับข้อความที่เลือกในปัจจุบัน ... หรือบรรทัด ... ฉันค้นหาสิ่งที่ดีในขณะที่พยายามค้นหาเอกสาร (และลองใช้ "args": "drag_select") แต่ไม่สามารถหาได้ ฉันควรคลิกขวาและข้ามไปยังคำจำกัดความว่าสิ่งนี้ใช้ได้ดี! ขอบคุณ
Tom

ฉันสามารถผูกปุ่ม Enter เพื่อทำสิ่งนี้ได้ดังนั้นฉันไม่ต้องกดด้วยตนเองทุกครั้งที่ฉันกด ctrl + คลิก?
user3388884

@ BorisSamardžijaฉันจะสร้างสคริปต์ด้านบนเพื่อหานิยามฟังก์ชันในไฟล์ปัจจุบันของฉันได้อย่างไรแทนที่จะข้ามไปยังไฟล์ภายนอกอื่น ๆ
Alexander Solonik

90

หากต้องการตั้งค่าไปที่การกำหนดเป็น alt + d จากการตั้งค่าเมนู> การโยงคีย์ - ผู้ใช้ จากนั้นเพิ่ม JSON ต่อไปนี้

[
    { "keys": ["alt+d"], "command": "goto_definition" }
]

1
ไม่แน่ใจว่าทำไมฉันถึงลงคะแนน แต่วิธีนี้ใช้ได้อย่างสมบูรณ์แบบสำหรับฉันใน Sublime 3
mbokil

9
คุณอาจถูกลดระดับลงเนื่องจากคำถามเดิมถามว่า "ฉันต้องการสร้าง shorcut สไตล์ Eclipse Ctrl + MouseClick เพื่อเปิดฟังก์ชั่น / วิธีการ" ฉันพบว่าคำตอบของคุณมีประโยชน์เพราะฉันไม่สนใจรุ่นปุ่มลัดของเมาส์ดังนั้นฉันจึง upvoted :)
Charles Roper

1
ดูเหมือนจะเป็นตัวเลือกที่ดีกว่า cmd + opt + down
uday

เป็นไปได้ที่จะใช้button1แทนd... ดังนั้นเรามี"alt" + "button"
IROEGBU

22

หากคุณต้องการดูวิธีการกำหนดที่เหมาะสมให้เข้าไปที่ Sublime Text-> Preferences-> Key Bindings - Default และค้นหาคำสั่งที่คุณต้องการแทนที่

{ "keys": ["f12"], "command": "goto_definition" },
{ "keys": ["super+alt+down"], "command": "goto_definition" }

นี่คือสองสิ่งที่แสดงในค่าเริ่มต้นของฉัน

ใน Mac ฉันคัดลอกวินาทีเพื่อลบล้าง

ใน Sublime Text -> Preferences -> การโยงคีย์ - ผู้ใช้ฉันเพิ่มสิ่งนี้

/* Beginning of File */

[
    {
        "keys": ["super+shift+i"], "command": "goto_definition" 
    }
]

/* End of File */

สิ่งนี้จะรวมเข้ากับชุดค่าผสม Command + Shift + 1 บน mac


6

สำหรับ Mac คุณต้องตั้งค่าการผูกกุญแจด้วยตัวเอง เพียงไปที่

Sublime --> Preference --> Key Binding - User  

และป้อนข้อมูลต่อไปนี้:

{ "keys": ["shift+command+m"], "command": "goto_definition" }

สิ่งนี้จะเปิดใช้งานการเชื่อมโยงคีย์Shift + Command + Mเพื่อเปิดใช้การกำหนดข้ามไป คุณสามารถตั้งค่าการเชื่อมโยงปุ่มกดเป็นสิ่งที่คุณต้องการแน่นอน


4

ctrl! = super บนเครื่อง windows และ linux

หาก "Foto Definition" รุ่น F12 สร้างผลลัพธ์ของไฟล์หลายไฟล์เวอร์ชั่น "ctrl + shift + คลิก" อาจทำงานได้ไม่ดี ฉันพบข้อผิดพลาดนั้นเมื่อดูโครงการ golang ด้วยแพ็คเกจ GoSublime


1
CMD + SHIFT + MOUSE1 ไม่ทำงาน! ซินแทกซ์ที่เหมาะสมในการคลิกที่คำจำกัดความ GoTo คืออะไร?
Magico

@Magico จำเป็นต้องติดตั้ง GoSublime และอาจใช้ได้กับโครงการ Golang เท่านั้น GoSublime: Godoc / Goto Definition ctrl+dot,ctrl+gหรือctrl+shift+left-clickบน Windows แทนที่ ctrl เป็นคำสั่งบน Mac
Ivan Chau

0

ฉันใช้รุ่นพกพา Sublime (สำหรับ Windows) และสิ่งนี้ (การวางเมาส์ไว้ในSublimeText\Packages\Userโฟลเดอร์) ไม่ได้ผลสำหรับฉัน

ฉันต้องวางไฟล์ mousemap ในSublimeText\Data\Packages\Userโฟลเดอร์เพื่อให้มันทำงานได้ซึ่งSublimeTextเป็นไดเรกทอรีการติดตั้งสำหรับเวอร์ชั่นพกพาของฉัน Data\Packages\Userเป็นที่ที่ฉันพบไฟล์ keymap เช่นกัน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.