เริ่มดีขึ้นที่ Vim [ปิด]


116

ฉันใช้ Vim มานานแล้ว แต่ฉันอยู่ในระดับที่ฉันใช้โหมดแทรกเป็นส่วนใหญ่และฉันยังคงใช้ปุ่มลูกศรเพื่อเลื่อนไปมา (!)

ฉันรู้สึกว่าฉันไม่ได้รับประโยชน์สูงสุดจากตัวแก้ไขที่น่ารักของฉันโดยเฉพาะอย่างยิ่งเกี่ยวกับการนำทาง (โดยเฉพาะโค้ด) การคัดลอกและวางและการปรับแต่งโค้ดที่มีอยู่อื่น ๆ (แม้ว่าฉันจะค่อนข้างพอใจกับรูปแบบการค้นหา / แทนที่ที่ซับซ้อน)

  • ฉันจะเรียนรู้เพิ่มเติมได้อย่างไร
  • ผู้คนจะแนะนำแหล่งข้อมูลใด

8
เกิดอะไรขึ้นกับการใช้ปุ่มลูกศรในการเคลื่อนที่ไปรอบ ๆ ? นั่นคือสิ่งที่พวกเขามีไว้ !
Vilx-

39
@Vilx คุณไม่ขยับด้วยปุ่มลูกศรแม้แต่ในเกมแอคชั่นคอมพิวเตอร์ ! นับประสาแก้ไขข้อความ ...
P Shved

6
@Vilx: ปุ่มลูกศรบนแป้นพิมพ์อยู่ในสถานที่ที่ไม่สะดวกอย่างมากสำหรับการนำทางทุกประเภท นั่นเป็นเหตุผลที่ Canon ใน ViM ใช้ HJKL เช่นเดียวกับที่คุณใช้ WASD ในเกมมุมมองบุคคลที่หนึ่ง
Will Vousden

4
WASD อยู่ที่นั่นเพราะใช้งานง่ายกว่าด้วยมือซ้ายเนื่องจากตัวขวาควบคุมเมาส์ คนถนัดซ้ายใช้ลูกศร และ HJKL นั้นใช้งานง่ายมาก คนไหนย้ายไปไหน
Vilx-

8
ฉันคิดว่ามันไม่เกี่ยวกับ "arrows vs hjkl" เพราะมันคือ "cursor movement vs text objects"
Matteo Riva

คำตอบ:


78

"ทำไมโอ้ทำไมพวก #? @! nutheads ใช้ vi?" เป็นคำแนะนำที่ดีสำหรับ "the Vim way" โดยเฉพาะอย่างยิ่งเกี่ยวกับวัตถุข้อความซึ่งเป็นหนึ่งในคุณสมบัติที่กำหนดมากที่สุดของ Vim


3
เป็นโบนัสมีแผ่นโกงกราฟิกที่ดี (ลิงก์ที่ท้ายบทความ)
Csaba_H

ดูเหมือนว่าฉันไม่สามารถเข้าถึงลิงค์นั้นได้ ไม่ถึงกับลอน มีใครยืนยันได้ไหม
H. Rabiee

66

นี่คือบางส่วนที่มีภาพหน้าจอที่น่ากลัวที่ควรให้ความคิดของสิ่งที่จะเรียนรู้ต่อไป นอกจากนี้ยังมีวิดีโอสำหรับหัวข้อระดับกลางและขั้นสูง แต่อันที่จริงแล้วผู้เริ่มต้นมีความสำคัญที่สุด

นอกจากนี้เมื่อฉันรู้สึกว่าฉันกำลังหยุดนิ่งและไม่ได้เรียนรู้ "ทางเป็นกลุ่ม" จริงๆฉันเลือกที่จะปิดใช้งานปุ่มลูกศรทั้งในโหมดปกติและโหมดแทรก สิ่งนี้บังคับให้คุณใช้ ESC เพื่อไปที่ไหนสักแห่งและทำให้คุณคิดเหมือนเป็นกลุ่มมากขึ้น ในที่สุดฉันก็เปิดใช้งานปุ่มลูกศรอีกครั้งในโหมดแทรก แต่แทบจะไม่เคยใช้เลย มีวิธีที่ดีกว่าในการเดินทาง

map <up> <nop>
map <down> <nop>
map <left> <nop>
map <right> <nop>

และโดยเฉพาะอย่างยิ่ง

imap <up> <nop>
imap <down> <nop>
imap <left> <nop>
imap <right> <nop>

5
ฉันชอบแนวคิดในการปิดใช้งานปุ่มลูกศรมันเป็นวิธีที่ดีในการบังคับตัวเองให้หยุดใช้ปุ่มเหล่านี้
Idan K

1
มันทำงานได้ดีสำหรับฉัน แต่สองสามวันแรกนั้นน่าหงุดหงิดมาก เมื่อคุณคุ้นเคยกับมันและเปลี่ยนนิสัยในการเคลื่อนที่ไปรอบ ๆ มากเกินไปในโหมดแทรกฉันขอแนะนำให้เปิดใช้งาน imaps อีกครั้ง
Sarah

screencasts เหล่านี้ยอดเยี่ยมมาก ขอบคุณที่ชี้ให้เห็น
Mert Nuhoglu

2
การปิดใช้งานปุ่มลูกศรเป็นความคิดที่ยอดเยี่ยมตอนนี้ฉันกำลังทำอยู่
gorsky

การปิดใช้งานปุ่มลูกศรจะขึ้นอยู่กับสมมติฐานที่ว่าปุ่มลูกศรผิดปกติมากกว่า hjkl ดีกว่าคือการได้รับคีย์บอร์ดที่ดีกว่า ฉันใช้ Kinesis Advantage แม้ว่าฉันจะใช้แป้นพิมพ์มาตรฐาน แต่ hjkl ก็ยังไม่สมเหตุสมผลเพราะฉันใช้ dvorak สิ่งที่ฉันหมายถึงคือประเด็นไม่ใช่ "อย่าใช้ปุ่มลูกศร" ประเด็นคือ "ใช้วิธีการที่มีประสิทธิภาพสูงสุดและอย่าหลบเลี่ยงประสิทธิภาพที่เพิ่มขึ้นเนื่องจากเส้นโค้งการเรียนรู้"
การชดใช้อย่าง จำกัด

23
  1. พิมพ์vimtutorในบรรทัดคำสั่ง
  2. เข้าไปในกลุ่มพิมพ์: help หรือ <F1>
  3. สมัครสมาชิกรายชื่อผู้รับจดหมาย
  4. เอกสารกลุ่มอย่างเป็นทางการ

1
สิ่งหนึ่งที่ฉันคิดไม่ถึงคือการเข้าร่วมรายชื่อผู้รับจดหมาย: เสร็จแล้ว :)
เจมส์

1
เป็นสถานที่ที่ดีในการรับความช่วยเหลือและฝึกฝนทักษะการเป็นกลุ่มโดยการแก้ปัญหาของผู้อื่น
ghostdog74

1
+1 สำหรับ vimtutor - วิธีที่ยอดเยี่ยมในการนำ vim เข้าสู่หน่วยความจำกล้ามเนื้อของคุณ
Hamish Downer

16

สองเคล็ดลับเพิ่มเติม:

  • ใช้เป็นกลุ่มเพื่อแก้ไขทุกอย่าง (อีเมล, เว็บฟอร์ม, รหัส, ... ) เมื่อรู้สึกว่าช้าอาจมีวิธีที่เร็วกว่านี้ :helpgrepเป็นเพื่อนของคุณ.

  • ตรงไปที่http://vimgolf.com/และแข่งขัน ฉันได้เรียนรู้กลเม็ดเคล็ดลับมากมายแล้ว [ Disclaimer : ไม่มีการยอมรับความรับผิดชอบเป็นเวลานานที่ "หายไป" ขณะแข่งขันที่VimGolf ]


2
เรียบร้อยฉันไม่รู้เกี่ยวกับ vimgolf!
เจมส์

1
@Autopulated: ได้เพิ่มข้อจำกัดความรับผิดชอบ
Johnsyweb

2
@Johnsyweb: ฉันอยากจะใช้ vim สำหรับทุกอย่าง - แต่ยังไงล่ะ การได้รับ vim clone ที่เหมาะสมในทุกรูปแบบของเว็บจะดีที่สุด - เนื่องจากส่วนเสริมของเบราว์เซอร์ทั้งหมดที่ฉันพบมักจะใช้คุณลักษณะกลุ่มย่อยแบบสุ่มเล็ก ๆ น้อย ๆ และการเชื่อมโยงคีย์การแมปใหม่เพื่อรองรับความจริงที่ว่าเบราว์เซอร์ยังคงต้องการ เข้าถึงคีย์แมปบางอย่าง
คอนราดดีน

13

บทความที่น่าสนใจจากบรามมูเลนายร์ตัวเอง: นิสัยเจ็ดแก้ไขข้อความที่มีประสิทธิภาพ


2
มีวิดีโอของงานนำเสนอของแบที่ Google หัวข้อนี้นี่คือvideo.google.com/videoplay?docid=2538831956647446078
Pierre-Antoine LaFayette

10

นี่คือวิธีที่ฉันได้เรียนรู้ Vim (และสิ่งอื่น ๆ อีกมากมาย) มันค่อนข้างง่าย

เรียกดูเอกสารวิธีใช้และค้นหาคำสั่งสำหรับบางสิ่งที่คุณทำอยู่ตลอดเวลา ลบทั้งคำเช่น ทำให้เป็นจุดที่ต้องจำนี้

ตอนนี้ในครั้งต่อไปที่คุณพบว่าตัวเองกดปุ่ม "xxxxx" เพื่อลบคำหยุดใส่กลับและใช้คำสั่งใหม่ มองขึ้นถ้าคุณต้อง ดังนั้นแทนที่จะกด "xxxxxx" คุณกลับไปและกด "dw"

ทำแบบนี้ซ้ำแล้วซ้ำเล่าตอนแรกจะช้า แต่สุดท้ายก็ติด

เมื่อคุณมีคำสั่งนั้นแล้วให้เริ่มที่ด้านบน ค้นหาคำสั่งอื่นสำหรับการกระทำที่คุณทำตลอดเวลา ...

คุณจะแปลกใจว่าคุณสามารถรับคำสั่งและเทคนิคใหม่ ๆ ได้เร็วแค่ไหน


7

การแมปใหม่ / ปิดใช้งานปุ่มลูกศรตามที่แนะนำเป็นวิธีที่ดีในการบังคับตัวเองไม่ให้ใช้ปุ่มเหล่านี้

สิ่งที่ควรพิจารณาอีกประการหนึ่ง: หากการกดปุ่ม Esc บนแป้นพิมพ์ของคุณไม่สะดวกคุณอาจต้องการทำการแมป Caps Lock เป็น Esc ใหม่ในระบบปฏิบัติการของคุณ สำหรับฉันนี่เป็นขั้นตอนที่มีประโยชน์อย่างมากเนื่องจาก Esc เป็นการเข้าถึง KB ของฉันที่ไม่สะดวกและนั่นเป็นอีกอุปสรรคหนึ่งที่ทำให้ฉันอยู่ในโหมดแทรก (เพราะมันยากที่จะออกไป) การมี Esc บน Caps Lock ทำให้การเข้าถึงเพียงเล็กน้อยและการกระโดดเข้าและออกจากโหมดแทรกนั้นรวดเร็วมาก

สำหรับการเรียนรู้ขั้นสูงใน Vim แหล่งข้อมูลที่ดีที่สุดคือ: help แต่สำหรับการเรียนรู้พื้นฐานคุณเพียงแค่ต้องทำ มันเป็นหน่วยความจำของกล้ามเนื้อมากกว่าสิ่งใด ๆ คุณบอกว่าคุณรู้จักการค้นหา ใช้มันเป็นเครื่องมือนำทางอย่างมีสติ การค้นหา [/,?] และการค้นหาแบบอินไลน์โดยใช้ถ่าน [f, F, t, T] เป็นเครื่องมือนำทาง Vim ที่สำคัญบางส่วน เพียงแค่ใช้พวกเขา เมื่อใช้งานร่วมกับปุ่มเคอร์เซอร์ที่ปิดใช้งานคุณจะสามารถนำทางไปยังหน่วยความจำของกล้ามเนื้อเพียงอย่างเดียวได้ในเวลาไม่นาน

วัตถุข้อความ หนึ่งในคุณสมบัติที่ดีที่สุดของโปรแกรมแก้ไขได้อย่างง่ายดาย นี่เป็นอีกสิ่งหนึ่งที่ควรปฏิบัติอย่างมีสติทันที สิ่งต่างๆเช่น "yiw" "dit" ฯลฯ มีพลังและรวดเร็วมาก การเรียนรู้และใช้ประโยชน์จากสิ่งเหล่านี้เพียงอย่างเดียวจะทำให้คุณรู้สึกเหมือนเป็นผู้ใช้ Vim

เมื่อคุณมีวัตถุข้อความและการนำทางพื้นฐานแล้วก็ถึงเวลาอ่านและเรียนรู้จาก: help เป็นประจำและล้างเว็บเพื่อหาปลั๊กอินที่ยอดเยี่ยม อย่างจริงจังคุณสามารถใช้ Vim เป็นเวลาหลายปีและมี "ah ha!" ช่วงเวลาที่บังเอิญสะดุดกับเรื่องเล็กน้อยที่ไม่ชัดเจนใน: ความช่วยเหลือที่คุณไม่เคยรู้มาก่อน


แทนที่จะทำการแมปใหม่เป็น Caps Lock ฉันขอแนะนำ Ctrl-C พิมพ์ง่ายและค่อนข้างคุ้นเคยกับผู้ใช้ linux
BandGap

6

3
ในฐานะผู้เขียนคำตอบ "ข้อแรก" ฉันต้องบอกว่าด้วยความเป็นธรรมทั้งหมดนี้ไม่จำเป็นต้องเป็นคำแนะนำที่ดีที่สุดสำหรับการปรับปรุงความเชี่ยวชาญของบรรณาธิการโดยทั่วไป มันครอบคลุมพื้นฐานมากมายเกี่ยวกับสิ่งที่สามารถทำได้ด้วย vi เมื่อคุณคิดว่ามันเป็นภาษาสำหรับแสดงวิธีที่คุณต้องการจัดการกับข้อความหน้าจอ / เทอร์มินัลของคุณและสภาพแวดล้อมของตัวแก้ไขเอง อย่างไรก็ตามสิ่งต่างๆในนั้นค่อนข้างล้ำยุค
Jim Dennis

1
ฉันไม่ได้เรียนรู้มากนักจากการอ่านคำตอบนั้นซึ่งฉันไม่คิดว่าฉันจะไม่ได้เรียนรู้จากการอ่านเอกสาร!
เจมส์


3

ฉันจะเรียนรู้เพิ่มเติมได้อย่างไร

อ่านคู่มือกลุ่มอย่างสมบูรณ์ (พิมพ์:hคุณสามารถเรียกดูได้จากที่นั่น) นี่คือวิธีที่คุณจะได้รับรู้การเคลื่อนไหวและคำสั่งทั้งหมด จะมีประโยชน์ที่สุดหากคุณรู้พื้นฐานแล้วและต้องการปรับปรุง

ผู้คนจะแนะนำแหล่งข้อมูลใด

vim.org ดูผ่านมากที่สุดสคริปต์ที่เป็นกลุ่มที่นิยม ตรวจสอบแหล่งที่มาหากคุณพบสิ่งที่น่าสนใจ หรือเพียงแค่ติดตั้งและเพลิดเพลิน ไซต์ดังกล่าวประกอบด้วยลิงก์จำนวนมากไปยังสคริปต์ที่ช่วยในการเรียกดูซอร์สโค้ดในภาษาต่างๆ และหาได้ง่ายที่นั่น

StackOverflow.com อาจช่วยได้


3

ฉันสร้างเกมนี้เพื่อช่วยให้หลานชายของฉันเรียนรู้ แต่มันใช้งานได้บน Firefox และ Chrome เท่านั้น>. < http://kikuchiyo.org

สำหรับตอนนี้มันเกี่ยวข้องกับการเคลื่อนไหวและเข้าสู่โหมดแทรก เวอร์ชันเบต้าช่วยให้คุณสามารถโจมตีศัตรูด้วยกระบี่แสง 'i' ไปทางซ้ายและ 'a' ไปทางขวา: P

พยายามเรียนรู้ Vim ต่อไปมันคุ้มค่ากับความพยายาม!

:)


ตอนนี้ว่าเป็นความคิดที่ดีจริงๆ!
James

UPDATE: เว็บไซต์ที่kikuchiyos-vim-game.herokuapp.comในขณะนี้
kikuchiyo


2

ฉันยังคงใช้ปุ่มลูกศรเพื่อเลื่อนไปรอบ ๆ (!)

ฉันไม่เห็นปัญหาเกี่ยวกับเรื่องนี้

ตรงไปตรงมาความเป็นไปได้ที่คุณจะต้องใช้เป็นกลุ่มและแป้นพิมพ์ที่ไม่มีปุ่มลูกศรคืออะไร?

คุณรู้ไหมว่าคนส่วนใหญ่ใช้ vim เพราะมันทำงานได้ดี (โอ้ดีเพราะพวกเขาเชี่ยวชาญในระดับหนึ่งเมื่อมันทำงานให้พวกเขา) ไม่ใช่เพื่อเป็นชนชั้นสูง (เช่นไม่ใช้ปุ่มลูกศร)

คำแนะนำสองสามข้อสำหรับการปรับปรุงความรู้ที่เป็นกลุ่มของคุณ:

  • เปิด vim help เป็นระยะ ๆ ในสถานที่สุ่มและอ่านเกี่ยวกับคุณลักษณะที่แตกต่างแบบสุ่ม คุณจะใช้เวลาสองถึงสามนาที เป็นไปได้ว่าคุณจะไม่ใช้คุณสมบัตินี้ในช่วง X ปีข้างหน้า แต่ถ้าคุณโชคดีคุณจะตกอยู่ในสถานการณ์ที่คุณจะเห็นว่าคุณสามารถใช้ความรู้ของคุณเกี่ยวกับคุณสมบัตินั้นเพื่อทำงานบางอย่างให้สำเร็จ คุณจะเปิดวิธีใช้อีกครั้งเพื่อรีเฟรชหน่วยความจำของคุณ หลังจากใช้คุณสมบัตินี้ในทางปฏิบัติสองสามครั้งมันจะติด ณ จุดนี้ความรู้กลุ่มของคุณจะดีขึ้น
  • ใช้: helpgrep เพื่อขุดลงในสถานที่สุ่มของเอกสาร หากคุณต้องการทำอะไรสักอย่างและคุณพบสถานที่ที่อธิบายไว้ในเอกสารอย่าหยุดเพียงแค่นั้น อ่านตัวอย่างเอกสารอีกครั้ง ค้นหาคำหลัก สำหรับคำหลักแต่ละคำให้ใช้คีย์เวิร์ด: helpgrep เพื่อค้นหาลิงก์เชิงตรรกะกับส่วนอื่น ๆ ของเอกสารกลุ่ม

ผมคิดว่าปัญหาที่ฉันมีกับเพียงแค่การอ่านเอกสารคือการที่ผมพบว่าผมไม่ได้เรียนรู้สิ่งต่าง ๆ ได้อย่างมีประสิทธิภาพมากจริงโดยไม่ทำพวกเขา
เจมส์

1
การใช้ปุ่มเคอร์เซอร์เพื่อเลื่อนเคอร์เซอร์ของคุณในระยะทางสั้น ๆ อาจมีประสิทธิภาพพอ ๆ กับการใช้ปุ่ม [h], [j], [k], [l] ... หากนิ้วของคุณอยู่ใกล้ ๆ ด้วยเหตุผลอื่น การใช้การเคลื่อนไหวของเคอร์เซอร์เชิงเส้นนั้นน่ากลัวสำหรับคอลัมน์หรือเส้นการเคลื่อนไหวมากกว่าสองสามคอลัมน์ โดยปกติแล้วคุณควรคิดถึงสิ่งที่คุณกำลังมองหาและแสดงออกโดยตรงใน vi โดยใช้ / หรือ? คำสั่งและนิพจน์ทั่วไป บิตสุดท้ายของข้อความใกล้ foo? G? foo [Enter] (การกดแป้นพิมพ์หกครั้ง) บรรทัดแรกด้วย "bar ... something .. bang in it? 1G / bar. * bang [Enter] (about a โหล keystrokes) ... และอื่น ๆ
Jim Dennis

แม้ว่าปุ่มลูกศรอาจมีประสิทธิภาพมากกว่าการเอื้อมเมาส์ แต่หากคุณพิมพ์โดยใช้ปุ่มแถวแรกเพื่อจัดกลุ่มมือของคุณใหม่หลังจากพิมพ์ตามลำดับอักขระแล้วก็ไม่จำเป็นต้องมีการเคลื่อนไหวใด ๆ เพื่อป้อนหนึ่งในปุ่มการเคลื่อนไหวพื้นฐาน ของ 'j', 'k', 'l' และ 'กระตุก' ไปทางซ้ายเล็กน้อยเพื่อรับปุ่ม 'h' หากคุณทำสิ่งต่างๆด้วยวิธี Vim มือของคุณควรอยู่ใกล้กับแป้นแถวแรกมากกว่าปุ่มลูกศร ฝึกฝนไปเรื่อย ๆ แล้วคุณจะทำได้ :)
kikuchiyo


2

วิธีที่ฉันหยุดใช้ปุ่มลูกศรไม่ได้ปิดใช้งาน (ฉันยังคงใช้พวกเขาในโหมดแทรก) แต่ถ้าคุณคิดว่าถ้าคุณต้องการไปทางขวาให้ใช้นิ้วก้อยของคุณซึ่งเป็นlกุญแจให้ใช้นิ้วชี้ไปทางซ้ายที่hปุ่ม & นิ้วนางขึ้น ("แหวนขึ้น") kแป้น & "เลือก" ที่jสำคัญ

อันดับแรกของตัวเลขสี่หลักในมือของคุณ (อย่าลืมใช้นิ้วโป้ง) ดัชนีจะอยู่ซ้ายสุดและพิ้งกี้อยู่ขวาสุด ใช้นิพจน์ "ดังขึ้น" เช่นเดียวกับในการโทรศัพท์สำหรับนิ้วนางของคุณและนิ้วกลางไม่มีที่อื่นให้ไปนอกจากลง

นอกจากนี้ยังช่วยได้มากที่ฉันพบว่าลืมว่าคีย์ชื่ออะไร (h, j, k, l) ไม่มีวิธีการจำที่ดีในการจดจำพวกเขาในแบบที่ฉันพบและไม่มีการแมปมากเกินไปโดยใช้คีย์เหล่านั้น





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