เมื่อฉันต้องการเข้าถึงบางส่วนของคำใน Vim (แนวนอน) ฉันเพียงกด w, b, f หรือ t (บางอย่าง) มีวิธีที่ดีในการทำสิ่งนี้ในแนวตั้งหรือไม่? ตัวอย่างเช่นฉันต้องการได้คำหรือตัวอักษรของบรรทัดที่ต่ำกว่าหรือสูงกว่าบรรทัดที่ฉันอยู่
PS: โดยไม่ใช้: (หมายเลขบรรทัด)
เมื่อฉันต้องการเข้าถึงบางส่วนของคำใน Vim (แนวนอน) ฉันเพียงกด w, b, f หรือ t (บางอย่าง) มีวิธีที่ดีในการทำสิ่งนี้ในแนวตั้งหรือไม่? ตัวอย่างเช่นฉันต้องการได้คำหรือตัวอักษรของบรรทัดที่ต่ำกว่าหรือสูงกว่าบรรทัดที่ฉันอยู่
PS: โดยไม่ใช้: (หมายเลขบรรทัด)
คำตอบ:
H
, M
และL
จะเลื่อนเคอร์เซอร์ไปด้านบนกลางและล่างของหน้าจอตามลำดับ จากนั้นคุณสามารถกดzz
เพื่อให้หน้าจออยู่กึ่งกลางบรรทัดที่เคอร์เซอร์อยู่
g
กระโดดเล็ก ๆไปที่บรรทัดแรกของเอกสารG
กระโดดไปที่บรรทัดสุดท้ายของเอกสารมีอีกหลายพันล้านวิธีที่แตกต่างกันมีความยืดหยุ่นในแง่นี้มาก ฉันอยากจะแนะนำให้รับแผ่นโกงเป็นกลุ่มเป็นครั้งแรกสำหรับคำสั่งพื้นฐานและจากนั้นเมื่อคุณมีเวลาให้อ่านเอกสารเป็นกลุ่มในหัวข้อนี้
เชื่อมโยงไปยังหนึ่งสูตรโกง: แผ่นโกง
นอกจากนี้:
/
+ string + (Enter)
ค้นหาการเกิดขึ้นครั้งถัดไปของสตริงจากเคอร์เซอร์ไปข้างหน้าจนถึงท้ายเอกสาร?
- ทำแบบเดียวกัน แต่จากเคอร์เซอร์ไปด้านหลังจนถึงจุดเริ่มต้นของเอกสารฉันกระโดดไปรอบ ๆ โดยค้นหาสตริงที่ไม่เหมือนใครที่ฉันต้องการไป ในกลุ่มคุณสามารถทำได้ด้วย:
/ ค้นหาสตริง
ฉันมักจะเลื่อนไปข้างหน้าและข้างหลังโดยใช้ n และ N เมื่อฉันเข้าสู่การค้นหา
ฉันเลื่อนโดยใช้ Ctrl-F และ Ctrl-B เพื่อเลื่อนดูโค้ดอย่างรวดเร็ว แต่ฉันใช้เคล็ดลับการค้นหาบ่อยที่สุด บางครั้งคุณอาจหลงทางเมื่อผ่านผลการค้นหาด้วย n และ N คำสั่งที่ดีสำหรับการปรับทิศทางของคุณคือ Ctrl-G ซึ่งพิมพ์สิ่งนี้ที่ด้านล่างของหน้าจอ Vim:
"script.pl" บรรทัด 219 จาก 328 --66% - col 19-23
ลอง:: เขา motion.txt และ: เขาเคลื่อนไหวขึ้นลง
มันมีรายการเคลื่อนไหวที่เป็นไปได้ทั้งหมดขึ้นลง
คุณควรลองใช้ปลั๊กอิน easymotionของLokaltog : http://www.vim.org/scripts/script.php?script_id=3526
ดังที่ได้กล่าวไว้ก่อนหน้านี้ H, M, L (ในกรณีที่สูง, กลาง, ต่ำ) hjkl เป็นคำสั่งเกมคอนโซลทั่วไปสำหรับซ้าย, ลง, ขึ้น, ขวาและทำงานเหมือนกันใน vi (j, k ทำงานใน gmail หากคุณเปิดใช้งาน คำสั่งที่สำคัญ)
<Ctrl>+D
- ลง
<Ctrl>+U
- ขึ้น
<c-f>
และ<c-b>
นอกเหนือจากการเคลื่อนไหวตามแนวตั้งปกติฉันใช้/programming/4946421/vim-moving-with-hjkl-in-long-lines-screen-linesเวอร์ชันที่แก้ไขแล้ว ฉันมักจะย้ายไปอยู่กับปุ่มลูกศรไม่ใช่ hjkl (ผู้ใช้งานเวลานานของบรรณาธิการอื่น ๆ ก่อนที่ฉันจะพบ Vim ใช้กับลูกศร / Home / end / PgUp / PgDn เพื่อสลับแม้หลังจากใช้ Vim 5 ปีขึ้นไป)
function! ScreenMovement(movement)
if &wrap
return "g" . a:movement
else
return a:movement
endif
endfunction
map <expr> <C-Down> ScreenMovement("j")
map <expr> <C-Up> ScreenMovement("k")
map <expr> <C-Home> ScreenMovement("0")
map <expr> <C-End> ScreenMovement("$")
ด้วยการกดปุ่ม Ctrl ฉันสามารถมองเห็นเพื่อเริ่ม / สิ้นสุดหรือขึ้น / ลงแถวที่แสดง สำหรับฉันนี้มีประสิทธิภาพมากกว่าทางเลือกอย่างน้อย
เกือบลืม: ฉันต้องการแก้ไข. Xdefaults เพื่อให้ทำงานใน urxvt โดยเฉพาะ แต่นั่นอาจเป็นปัญหานอกหัวข้อ (พร้อมคำตอบบน Google)