<leader> ในไฟล์. vimrc คืออะไร


1069

ฉันเห็น<leader>ในหลาย ๆ.vimrcไฟล์และฉันสงสัยว่ามันหมายความว่าอะไร?

ใช้ทำอะไร?

เพียงแค่ภาพรวมทั่วไปของวัตถุประสงค์และการใช้งานก็ดี


10
ฉันตระหนักดีว่าฉันคิดว่าความเข้าใจที่สำคัญคือการใช้<leader>แป้นพิมพ์ลัดของคุณทำให้คุณสร้างเนมสเปซได้อย่างมีประสิทธิภาพ ดูคำตอบของ @Pete Schlette ด้านล่างสำหรับข้อมูลเพิ่มเติม
ผู้ใช้

3
หากคุณต้องการที่จะตรวจสอบสิ่งที่คุณ<leader>มีการใช้งานหรือ:echo mapleader :let mapleaderหากไม่ได้กำหนดก็จะใช้ค่าเริ่มต้นซึ่งเป็นแบ็กสแลช"\"
wisbucky

คำตอบ:


984

<Leader>ที่สำคัญคือแมปไป\โดยปริยาย ดังนั้นถ้าคุณมีแผนที่ของ<Leader>tคุณสามารถดำเนินการได้โดยเริ่มต้นด้วย+\ tสำหรับรายละเอียดเพิ่มเติมหรือกำหนดใหม่โดยใช้mapleaderตัวแปรโปรดดู

: ช่วยผู้นำ

ในการกำหนดการจับคู่ซึ่งใช้ตัวแปร "mapleader" สตริงพิเศษ
"<Leader>" สามารถใช้ได้ มันถูกแทนที่ด้วยค่าสตริงของ "mapleader"
หากไม่ได้ตั้งค่า "เมเดอร์" หรือว่างเปล่าจะใช้เครื่องหมายแบ็กสแลชแทน  
ตัวอย่าง:
    : map <Leader> เส้น oanother <Esc>
ทำงานเหมือน:
    : map \ A oanother line <Esc>
แต่หลังจาก:
    : let mapleader = ","
มันทำงานเหมือน:
    : map, A oanother line <Esc>

โปรดทราบว่าคุณค่าของ "เมเปิ้ล" จะถูกใช้ในขณะที่ทำการทำแผนที่
ที่กำหนดไว้ การเปลี่ยน "mapleader" หลังจากนั้นไม่มีผลต่อการกำหนดไว้แล้ว
แมป



48
การเปลี่ยนแปลง,เป็นสิ่งที่ดี เข้าถึงได้ง่ายกว่า\\ และใครใช้,เป็นกลุ่มอยู่แล้ว
Gabe Moothart

41
@Gabe Moothart : h, ให้คุณ "ทำซ้ำ f ล่าสุด, T, F หรือ T ในทิศทางตรงกันข้าม [นับ] ครั้ง" มันค่อนข้างสะดวก
Maxim Kim

10
นอกจากนี้ยังมีการเขียนที่ดีที่นี่: stevelosh.com/blog/2010/09/coming-home-to-vim/#using-the-leader
Sukotto

66
ฉันชอบพื้นที่(' ')ในฐานะที่เป็นผู้นำเพราะฉันสามารถกดมันด้วยมือทั้งสองทำคีย์ติดตาม (ไม่ว่าจะอยู่ทางด้านซ้ายหรือด้านขวาของคีย์บอร์ด) อย่างรวดเร็วเท่ากันเพื่อกระตุ้นหลังจากนั้น การมีปุ่มผู้นำที่ตัวเองอยู่ด้านเดียวของแป้นพิมพ์ทำให้การกดแป้นติดตามบนด้านเดียวกันของแป้นพิมพ์นั้นยุ่งยากเล็กน้อย nitpicky ฉันรู้ว่า :)
jefflunt

3
@jefflunt นิ้วโป้งขวาของฉันเป็นสัปดาห์แล้วเพราะฉันไม่เคยใช้มันพิมพ์ ดังนั้นฉันจะใช้นิ้วหัวแม่มือซ้ายเพื่อกดช่องว่าง รหัสผู้นำพื้นที่นั้นไม่ได้ให้ประโยชน์แบบเดียวกันกับฉัน
off99555

263

โปรดระวังว่าเมื่อคุณกด<leader>ปุ่มคุณจะมีเพียง 1000ms (โดยค่าเริ่มต้น) เพื่อป้อนคำสั่งที่ตามมา

สิ่งนี้เลวร้ายลงเนื่องจากไม่มีการตอบกลับด้วยภาพ (โดยค่าเริ่มต้น) ที่คุณได้กด<leader>คีย์และ vim กำลังรอคำสั่งอยู่ และดังนั้นจึงไม่มีวิธีที่จะมองเห็นได้เมื่อเกิดเหตุการณ์เช่นนี้

ถ้าคุณเพิ่มset showcmdเข้าไปvimrcแล้วคุณจะเห็น<leader>กุญแจปรากฏขึ้นที่มุมล่างขวาของกลุ่ม (ทางด้านซ้ายของตำแหน่งเคอร์เซอร์) และที่สำคัญกว่านั้นคือคุณจะเห็นมันหายไปเมื่อหมดเวลา

ความยาวของการหมดเวลายังสามารถตั้งค่าในของคุณvimrcดู:help timeoutlenข้อมูลเพิ่มเติม


11
«: set showcmd »แสดงคำสั่งปัจจุบันดังนั้นรหัสผู้นำเมื่อเวลาที่ใช้งานอยู่
greg

4
การขาดของข้อเสนอแนะในขณะที่เริ่มต้นโดยไม่มีการแสดงผลภาพจะปรากฏเป็นกลุ่มที่จะส่งเสียงระฆังระบบถ้ามันไม่ได้รับคำสั่งใน 1000ms <leader>หลังจากที่คุณกด
Bailey Parker

113

"ปุ่มผู้นำ" เป็นวิธีการเพิ่มพลังของทางลัดของ VIM โดยใช้ลำดับของคีย์เพื่อดำเนินการคำสั่ง คีย์ผู้นำเริ่มต้นคือแบ็กสแลช ดังนั้นหากคุณมีแผนที่เป็น <Leader> Q คุณสามารถดำเนินการดังกล่าวได้โดยพิมพ์ \ Q


4
\Qในเวลาเดียวกัน? หรือ` release it and then Q` ครั้งแรก
Arnold Roa

9
@ArnoldRoa เมื่อใดก็ตามที่คำสั่ง vim ถูกแสดงรายการไวยากรณ์ggdGหมายถึงการกดทั้งสี่ปุ่มตามลำดับ ไวยากรณ์เช่น<C-w><C-j>หมายถึงการกด CTRL + w แล้วตามด้วย CTRL + j
gobernador

91

<leader>คีย์ของ Vim เป็นวิธีการสร้างเนมสเปซสำหรับคำสั่งที่คุณต้องการกำหนด เป็นกลุ่มแล้วแผนที่ส่วนใหญ่และการรวมกันของCtrl+ (บางคีย์) ดังนั้น<leader>(some key)เป็นที่ที่คุณ (หรือปลั๊กอิน) สามารถเพิ่มพฤติกรรมที่กำหนดเอง

ตัวอย่างเช่นหากคุณพบว่าตัวเองลบบ่อยครั้ง 3 คำและ 7 ตัวอักษรคุณอาจจะสะดวกในการแมปคำสั่งผ่านnmap <leader>d 3dw7xการกดปุ่มผู้นำตามด้วย d จะลบ 3 คำและ 7 ตัวอักษร เนื่องจากมันใช้รหัสผู้นำเป็นคำนำหน้าคุณจึงมั่นใจได้เลยว่าคุณไม่ได้กระทืบพฤติกรรมที่มีอยู่แล้ว

คีย์เริ่มต้นสำหรับ<leader>คือ\แต่คุณสามารถใช้คำสั่ง:let mapleader = ","เพื่อทำการแมปใหม่ไปยังคีย์อื่น ( ,ในกรณีนี้)

หน้า Usevim บนปุ่มผู้นำมีข้อมูลเพิ่มเติม


ลิงค์ที่มีให้ 404s
evanb

8

ในระบบของฉันมัน\สำคัญ มันใช้สำหรับคำสั่งเพื่อให้คุณสามารถรวมกับตัวอักษรอื่น ๆ

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