ค้นหาคำที่ต้องการแล้วแก้ไขภายใน Sublime Text 2 และ Vim


1

ฉันพยายามเรียนรู้ keybindings ของกลุ่มหนึ่งโดยหนึ่ง สิ่งที่ฉันคิดว่าฉันน่าจะดีในช่วงต้นคือการหาข้อความและแทนที่ด้วยสิ่งอื่น

ฉันทำสิ่งนี้สำเร็จแล้วกับ E-TextEditor บน Windows ซึ่งฉันจะใส่คีย์ใน v / something / \ rsomethingelse

สำหรับเอฟเฟกต์ที่ต้องการ

แต่ฉันพบว่าไม่ใช่กรณีในโหมด commmand ใน SublimeText 2 สิ่งที่เกิดขึ้นใน ST2 คือเมื่อฉันอยู่ในโหมดคำสั่งฉันกด v ซึ่งวางโปรแกรมแก้ไขในโหมดภาพแล้วถ้าฉันคีย์ใน / มันเข้าสู่ ค้นหาจากนั้นฉันป้อนคำว่า "บางอย่าง" ถ้าฉันกด "/" มันจะเป็นส่วนหนึ่งของคำค้นหาแทนการสิ้นสุด regexp โอเคฉันคิดแล้วฉันกดกลับเพื่อดูว่าอินสแตนซ์ของบางอย่างได้รับ เลือกไว้ แต่มันไม่ได้หรือไม่มี esc หรือคีย์อื่นใดที่ฉันนึกออก โปรดทราบว่าพบว่าอินสแตนซ์ของ "บางสิ่ง" แต่ไม่ได้ถูกเลือกสำหรับการดำเนินการเพิ่มเติม

คุณสมบัตินี้ไม่มีอยู่ใน SublimeText2 หรือฉันขาดหายไป


คุณช่วยยกตัวอย่างของ "ข้อความสตริง" ... ซึ่งเป็นคำที่กว้างมาก ๆ
โกง

@Idigas เช่น: พูดว่าถ้าฉันต้องการเปลี่ยนสตริงภายในฟังก์ชั่นการพิมพ์พิมพ์ ('awfullyWide') เพื่อพิมพ์ ('notReally')
Nik So

คำตอบ:


7

Nik ไม่ว่าคุณจะเรียน Vim หรือ Sublime Text 2

โหมดวินเทจของ ST2 นั้นดีที่สุดในการประมาณค่าคุณสมบัติพื้นฐานที่ดีที่สุดของ Vim ภายในข้อ จำกัด ของ Sublime Text

ตัวอย่างเช่นไม่มีบรรทัดคำสั่งเดียวกันดังนั้นจึงไม่มีคุณสมบัติการค้นหา / แทนที่ที่น่าประทับใจของ Vim

สำหรับสิ่งที่คุณจะต้องใช้การค้นหาตัวเองของ ST2 / แทนที่กลไกที่สามารถเข้าถึงได้โดยการพิมพ์+Ctrlh

เมื่อคุณพิมพ์/ใน "โหมดคำสั่ง" คุณจะเห็นแถบค้นหาปรากฏขึ้นที่ด้านล่างของหน้าต่าง เนื่องจากเป็นแถบค้นหาของ ST2 (สามารถเข้าถึงได้ผ่านCtrl+ f) จึงไม่ทำงานเหมือนแถบแทนที่ คล้ายกับบรรทัดคำสั่งของ Vim

รายการของโหมด vintage / vim คล้ายคลึงกันนั้นสั้นกว่าพันรายการที่แตกต่างกันดังนั้นฉันขอแนะนำให้คุณหยุดและคิดเกี่ยวกับสิ่งที่คุณต้องการทำ:

a) เรียนรู้วิธีใช้ Sublime Text 2 ซึ่งเป็นโปรแกรมแก้ไขข้อความที่ดีมาก

หรือ

b) เรียนรู้วิธีใช้ Vim ซึ่งเป็นหนึ่งในสองเครื่องมือแก้ไขข้อความที่ดีที่สุดในนั้น (ฉันเป็นนักการทูต)

หากคุณเลือกa)คุณไม่จำเป็นต้องเปิดใช้งานโหมดวินเทจเลยเนื่องจากคุณสมบัติส่วนใหญ่ของมันคือการแมป 1/1 กับคุณสมบัติของ ST2 หยุดดูบทความของ Vim แทนที่จะใช้เวลาของคุณในการเรียนรู้ว่า ST2 ทำงานอย่างไรและทำอย่างไรให้ดีที่สุด

หากคุณเลือกb)ขั้นตอนแรกจะต้องทำ vim tutorial ที่เข้าถึงได้ผ่าน Terminal.app: พิมพ์vimtutorและทำตาม เมื่อคุณทำเสร็จแล้วvimtutor(อาจจะสองสามครั้ง) คุณสามารถดาวน์โหลด MacVim build ล่าสุดและเริ่มใช้ความรู้ที่ค้นพบใหม่ของคุณ

การไม่เลือกตัวเลือกนี้จะไม่นำพาคุณไปทุกที่เพราะสิ่งที่คุณจะพบเกี่ยวกับ Vim ส่วนใหญ่จะไม่ทำงานใน ST2 และสิ่งที่ใช้ได้ผลนั้นมีเพียงเล็กน้อยนิดหน่อยจากสิ่งที่ทำให้ Vim น่าทึ่งมาก

ในท้ายที่สุดการเลือกของคุณไม่เกี่ยวข้อง สิ่งที่สำคัญคือคุณสร้างมันและมุ่งเน้น


ขอขอบคุณ! คุณจะได้พบกับใบ้ของเขา: มีสิ่ง vimtutor?!?! - ใช่ฉันได้ยิน MacVim จากวิดีโอของ Peepcode (อันที่จริงด้วยเหตุผลบางอย่างฉันมีความรู้สึกนี้ว่ามีหลายรสชาติที่แตกต่างจากที่เคยมีอยู่เล็กน้อยจากกันและกัน) --- คุณไม่ถูกต้องกว่านี้ เกี่ยวกับการมุ่งเน้นและ texteditor การออกนอกเส้นทาง เหตุผลเล็ก ๆ ข้อหนึ่งที่เฉพาะเจาะจงมากสำหรับฉันฉันคิดว่าการใช้เสียงเรียกเข้าคือเพื่อให้ฉันสามารถเป็นผู้ไม่เชื่อเรื่องพระเจ้าของแป้นพิมพ์หลังจากเพิ่งย้ายมาที่ mac ฉันไม่สามารถอยู่กับแป้นพิมพ์นั้นได้ดังนั้นฉันจึงคิดว่า แค่ a-z0-9 และ ctrl เป็นครั้งคราว
Nik So

ที่จริงแล้วมีรสเดียวคือ Vim มันสามารถรวบรวมโดยมีหรือไม่มีตัวเลือกจำนวนมากและมีการตั้งค่าที่แปลกใหม่มากมาย แต่คุณยังได้รับเสียงเรียกเข้า MacVim เป็นเพียง Vim ที่ห่อด้วย Mac OS X GUI ที่ดี หากคุณกระตือรือร้นสำหรับ Vim จริงๆคุณควรวาง ST2 และดำน้ำใน Vim โดยไม่ต้องเสียเวลาและเล่นกลกับกองบรรณาธิการ
romainl

2

Nik ถึงแม้ว่าฉันมั่นใจว่าความตั้งใจของคุณดีที่สุด แต่ฉันต้องบอกว่าฉันเห็นด้วย (โดยส่วนใหญ่) กับ @romaini ในเรื่องนี้

VimและSublime Text 2 ( ST2 ) คือแม้ว่าจะพยายามที่จะคล้ายกัน (ดีหนึ่งพยายามมากกว่าสองอื่น) บรรณาธิการที่แตกต่างกันสองคน ฉันไม่ได้ใช้งานST2มากนัก แต่ กลุ่มที่ฉันใช้ไปค่อนข้างมากและเก่งในเรื่องนี้ดังนั้นมันจึงคุ้มค่าที่จะเรียนรู้ อาจต้องใช้เวลาบ้างใช่ แต่เมื่อเวลาผ่านไปและคุณเรียนรู้ว่า "เทคนิคใหม่" สิ่งต่าง ๆ เริ่มเป็น "ตรรกะ" มากขึ้นเรื่อย ๆ

"พลัง" ของ Vim นั้นมาจากหลายสิ่ง แมป , ผู้ประกอบการ / การเคลื่อนไหว รวมกันและการแสดงออกปกติ

ตัวอย่างเช่นหากเรารับสตริงของคุณ:

print('AwfullyWide')
print('NotReally')

คุณอยู่ที่จุดเริ่มต้นของบรรทัดแรกและคุณต้องการแทนที่เนื้อหาภายในเครื่องหมายวรรคตอน โดยการพิมพ์ci'ซึ่งย่อมาจากchange inside apostrophe( changeเป็นผู้ประกอบการ , inside 'คือการเคลื่อนไหว (ข้อความ)ตามที่ผู้ประกอบการจะได้รับการดำเนินการ, คุณจะได้รับprint('')หลังจากที่คุณสามารถแทนที่ข้อความที่อยู่ภายใน

วิธีการทำงานของ Vim ในลักษณะนี้เป็นความคิดที่ดีที่สุดหากคุณถามตัวเองว่า "ฉันต้องการทำอะไรกับข้อความบางส่วน" จากนั้นก็เริ่มทำให้รู้สึก

แน่นอนถ้าคุณต้องการที่จะทำในหนึ่งไป:%s/AwfullyWide/NotReallyทดแทนง่ายจะบรรลุผลเดียวกัน แน่นอนว่า regexes มีศักยภาพมากกว่าการเปลี่ยนตัวง่าย ๆ นี้


ขอบคุณหนึ่งล้าน! ฉันคิดว่าบางสิ่งอาจน่าสนใจเกี่ยวกับโหมดคำสั่งของ ST2 นี่คือเหตุผลว่าทำไมฉันจึงใช้หัวใจบอกว่าวางบนหน้าต่างและเปิดและคิดว่าเป็นกลุ่มหรือตาย และฉันซื้อ peepcode และหนังสืออีกเล่มหนึ่งมาสักครู่แล้วฉันก็จำคำสั่งบางคำที่เรียนรู้จากวิดีโอของ peepcode แตกต่างจากที่เสนอให้ แต่ฉันคิดว่ามันเป็นแค่ความทรงจำของฉันเสียหายหรืออะไร .. ตอนนี้ฉันรู้แล้ว ดีที่ดูดฉันเพราะฉันชอบตัวอย่างและสิ่ง SublimeText ของ ฉันคิดว่านั่นคือ VIM พร้อมอินเทอร์เฟซที่น่าสนใจ ขอบคุณสำหรับคำอธิบายอย่างละเอียด!
Nik So
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.