เครื่องมือแก้ไขใดที่ฉันสามารถใช้เป็นทางเลือก vi / vim แบบง่าย


17

ฉันเป็นผู้ใช้ Windows ที่จะมาถึงของ Ubuntu ขอบคุณทุบตีเพื่อWSL ตอนนี้ฉันต้องแก้ไขไฟล์บางไฟล์และฉันเกลียด Vi จริงๆ ฉันต้องจัดการกับมันหรือมีทางเลือกที่ง่ายกว่านี้หรือไม่?

คุณสมบัติที่ฉันกำลังมองหาคือ:

  • ตาม CLI
  • ใช้งานง่าย (การพิมพ์และการแก้ไขควรคล้ายกับ Notepad)
  • ความสามารถในการแก้ไขง่าย ๆ ก็เพียงพอแล้ว

ฉันจะพยายามเป็นกลุ่ม Vim แต่ฉันต้องแก้ไขอย่างรวดเร็วตอนนี้!


มันเป็นเรื่องของความเห็น เริ่มต้นใช้นาโนhowtogeek.com/howto/42980/... vim (ปรับปรุงให้ดีขึ้น vi) มีเส้นโค้งการเรียนรู้เล็กน้อย แต่มีประสิทธิภาพมาก - ดูlinux.com/learn/vim-101-beginners-guide-vimหรือคำแนะนำเป็นกลุ่มหรือกวดวิชา vim, vimtutor (รวมอยู่ในเสียงเรียกเข้า)
Panther

โปรดทราบว่าคำถามนี้อาจถูกปิดตามความเห็น คุณอาจต้องการตั้งรหัสใหม่ให้เหมาะกับกฎของเว็บไซต์ (เช่นฉันจะใช้อะไรเป็นทางเลือกแทนกลุ่มได้)
Andrea Lazzarotto

3
การลงคะแนนเพื่อปิดนี้เป็นคำถามตามความคิดเห็น คำแนะนำ: เริ่มต้นด้วยนาโนและต่อมาเปลี่ยนเป็นกลุ่มด้วยขั้นตอนสำหรับทารก มันจะจ่ายออกในระยะยาวเพราะเป็นกลุ่มอยู่บนระบบ Linux ใด ๆ โดยทั่วไป
Sergiy Kolodyazhnyy

1
ตามความคิดเห็นของฉันการติดตามชื่อปัจจุบันยังคงเป็นที่ถกเถียงกันและอาจนำไปสู่การปิด ผู้คนอาจมองว่าตัวเองเป็น "ดี" และนี่เป็นเรื่องส่วนตัว ฉันขอแนะนำให้ใช้คำว่า "ง่ายขึ้น" แทนได้ไหม? การระบุคุณสมบัติที่ต้องการบางอย่างอาจช่วยในการ จำกัด คำถามให้แคบลง
Andrea Lazzarotto

2
@Jos เรากำลังพูดถึง WSL ที่สามารถใช้โปรแกรม GUI ได้ แต่ไม่สำคัญ อีกทั้งยังไม่มีคำถามสำหรับบรรณาธิการ GUI เพราะทุกอย่างง่ายกว่าเสียงเรียกเข้า
Andrea Lazzarotto

คำตอบ:


24

หากคุณกำลังมองหาเครื่องมือแก้ไขทางเลือกคุณไม่ได้อยู่คนเดียว โดยทั่วไปชีวิตสั้นเกินไปที่จะเรียนรู้viและฉันบอกว่านี่เป็นนักพัฒนาซอฟต์แวร์เพื่อการดำรงชีวิต แต่คุณควรเรียนรู้วิธีการออกจากมันเพราะมันเป็นปัญหาสำหรับหนึ่งออกจาก 20k โปรแกรมเมอร์ การดำเนินการผนวก / แทรกขั้นพื้นฐานบางอย่างอาจคุ้มค่ากับการเรียนรู้เพราะในเซิร์ฟเวอร์ที่ดื้อรั้นคุณจะไม่พบเครื่องมือแก้ไข

nanoตอนนี้ตอบคำถามของคุณน่าจะเป็น

หากคุณกำลังรันสคริปต์บิลด์อัตโนมัติบางตัวโดยใช้gitหรือรันคำสั่งอื่นสคริปต์เหล่านั้นอาจเปิดvimโดยที่คุณไม่ต้องการมัน คุณสามารถป้องกันสิ่งนี้ได้ด้วยการรันสิ่งต่อไปนี้ก่อนดำเนินการต่อ:

export EDITOR=nano

1
ขอบคุณ! จุดพิเศษสำหรับEDITORเคล็ดลับ
sebagomez

3
"โดยทั่วไปชีวิตสั้นเกินไปที่จะเรียนรู้ vi" ไม่จำเป็นต้องใช้ทั้งชีวิตแม้ว่าจะทำได้หากพวกเขารักเป็นกลุ่ม ฉันใช้เวลา 2 ชั่วโมงในการดูบทช่วยสอนที่ดีบน YouTube และเพิ่งฝึกฝนพื้นฐานที่ฉันเรียนรู้จากวิดีโอ ตอนนี้ 70% ของคำตอบทั้งหมดของฉันใน Ask Ubuntu เขียนเป็นกลุ่ม
Sergiy Kolodyazhnyy

7
ใน "ชีวิตสั้นเกินไป" ฉันคิดว่าบทความนี้มีจุดดี หนึ่งในสิ่งกีดขวางบนถนนที่ใหญ่ที่สุดในการเรียนรู้ Vim คือหลักฐานเท็จที่คุณต้องดำดิ่งสู่การเป็นผู้ใช้ "ฮาร์ดคอร์" ทันที คุณทำไม่ได้ ใช้ปุ่มลูกศร ใช้ทางลัด GUI เพื่อคัดลอก / วาง แฮงเอาท์ในโหมดแทรก ดูรายละเอียดแท็บและลงทะเบียนและระฆังและนกหวีด (ตอนนี้) การเข้าใช้ฟังก์ชันระดับนาโนใน Vim นั้นค่อนข้างรวดเร็วและคุณสามารถเพิ่มคุณสมบัติขั้นสูงได้ในภายหลังตามที่คุณต้องการ
RM

ทางลัด @RM GUI หรือไม่
Andrea Lazzarotto

1
@Sergiy เป็นกลุ่มเหมาะสมถ้าคุณต้องการใช้คุณสมบัติขั้นสูง ถ้าฉันใช้ vim เหมือนฉันใช้ nano ฉันจะใช้ nano ต่อไป (ตามความเป็นจริงฉันทำ ... ฉันใช้ vim เมื่อฉันอยู่บนเซิร์ฟเวอร์ที่ฉันไม่สามารถเพิ่มซอฟต์แวร์ได้เช่นเครื่องของลูกค้า)
Andrea Lazzarotto

11

มันเป็นเรื่องของความเห็น

เริ่มต้นใช้นาโน

เป็นกลุ่ม ("ปรับปรุงให้ดีขึ้นแล้ว") มีเส้นโค้งการเรียนรู้เล็กน้อย แต่มีประสิทธิภาพมาก ดูคำแนะนำของผู้เริ่มต้นนี้สำหรับกลุ่มหรือคำแนะนำกลุ่มอื่น ๆ หรือคำแนะนำกลุ่มvimtutor(รวมอยู่ในกลุ่ม)

ตอนนี้ฉันขอแนะนำนาโน

nano -B /path/to/file/to/edit

-B ทำให้การสำรองข้อมูล

คำสั่งถูกใช้พร้อมกับปุ่มควบคุมและจะแสดงรายการที่ด้านล่างของหน้าต่างตัวแก้ไข

มีคำแนะนำเกี่ยวกับการเน้นไวยากรณ์ที่: ฉันจะเปิดใช้งานการเน้นไวยากรณ์ในนาโนได้อย่างไร?

นาโน

emacsเป็นทางเลือกให้ทั้งสองvimและnanoและมีประโยชน์มากมายเช่นกัน emacsซับซ้อนกว่านาโน ท่านสามารถเข้าดูทัวร์ Emac ของ

เพียงเพื่อความสมบูรณ์ธีมเสียงเรียกเข้าเช่น Zenburn อาจมีประโยชน์ทีเดียว

Zenburn


2
ไม่เพียง แต่ผู้เริ่มต้นโดยพื้นฐานแล้วมนุษย์ทุกคนที่ไม่ต้องการเข้าร่วมสงครามกับกลุ่ม emacs : P
Andrea Lazzarotto

1
+1 ฉันจะไปกับนาโนด้วยเหมือนกันแม้จะเป็นเวลานานผู้ใช้ vi ดูเหมือนว่าอึเก่า ๆ
xavier_fakerat

เพื่อความเป็นธรรมคุณสามารถธีมเสียงเรียกเข้าและ. vimrc ไปไกล เสียงเรียกเข้าและ emacs มีคุณสมบัติขั้นสูงที่ไม่สามารถใช้งานได้ในนาโน แต่เป็นการสิ้นเปลืองหากคุณไม่ได้ใช้คุณสมบัติขั้นสูง สำหรับการแก้ไขพื้นฐานอย่างรวดเร็วฉันใช้นาโนแม้ว่าโดยรวมแล้วฉันเป็นกลุ่มแฟนโบอิ kippura.org/zenburnpage
Panther

1
vi/vimเรียน :) มันอยู่ในอุปกรณ์ทุกเครื่อง :) พื้นฐานไม่ใช่เรื่องยาก
ผู้ลี้ภัย

3
"emacs ซับซ้อนกว่านาโน" : p นี่อาจเป็นการพูดคุยของปี
Daniel Jour

3

ในฐานะที่เป็น windows poweruser หลังจากพยายามvimและnanoฉันพบว่าฉันต้องการบางสิ่งบางอย่างในระหว่างความซับซ้อนที่ชาญฉลาด ดังนั้นฉันจึงพยายามตบและมันเป็นสิ่งที่ฉันกำลังมองหา

ตบภาพ

slap เป็นเท็กซ์เทอร์มินัลเหมือนเทอร์มินัลที่พยายามแก้ไขจากเทอร์มินัลให้ง่ายขึ้น


การติดตั้ง:

curl -sL https://raw.githubusercontent.com/slap-editor/slap/master/install.sh | sh

1
คุณลืมที่จะพูดถึงจุดขายหลัก, การสนับสนุนเมาส์ระดับเฟิร์สคลาส (แม้ผ่านการเชื่อมต่อ SSH)
blueray

2

คุณเคยผิดหวังบ้างไหมที่โปรแกรมแก้ไขข้อความไม่ได้ทำในสิ่งที่คุณต้องการ? โกรธที่คุณจำไม่ได้ ...

  • ... จะขอความช่วยเหลือได้อย่างไร
  • ... what: wq หมายถึงอะไร
  • ... เสียงกระซิบตัวเล็ก ๆ ที่คุณอ่านในระดับปริญญาตรีบ้างไหม?

โลกที่เล็กและกล้าหาญกำลังรอคอย!

ขณะที่เรากำลังเรียกร้องให้แก้ไขข้อความที่เราชื่นชอบที่มีน้ำหนักเบาให้ฉันแนะนำที่ยอดเยี่ยมขนาดเล็กและรวดเร็ว(exofrills)xo

เป็นไฟล์ Python 3 ไฟล์เดียวและมีการสนับสนุนที่ดีสำหรับการเน้นไวยากรณ์ผ่าน Pygments (แม้ว่าจะไม่สมบูรณ์แบบกับที่ไม่ใช่ Python):

ป้อนคำอธิบายรูปภาพที่นี่

นอกจากนี้ยังมีการผสมผสานคีย์ที่เรียบง่ายและมีประโยชน์อย่างยิ่งซึ่งสามารถเปลี่ยนได้อย่างง่ายดายและง่ายดายกับเนื้อหาหัวใจของคุณ:

ป้อนคำอธิบายรูปภาพที่นี่

คุณสมบัติอื่น ๆ :

  • โค้ดน้อยกว่า 850 บรรทัดในไฟล์เดียว!
  • เน้นไวยากรณ์!
  • การจับคู่และการแทนที่นิพจน์ปกติ!
  • ค้นหาประวัติแคช!
  • WTFPL ได้รับใบอนุญาต!
  • ปรับแต่งได้อย่างเต็มที่!
  • เริ่มที่สถานที่ที่ไม่ใช่แหล่งกำเนิด!
  • กระโดดระหว่างคำในบรรทัด!
  • ข้ามไปที่ใดก็ได้ในไฟล์!
  • การแทรกไฟล์ทั้งหมด!
  • เริ่มต้นเป็นมิตร - บางทีคุณอาจจะยังใหม่ต่อคำพูด!
  • คัดลอกและวางข้อความ!
  • สถานะของเส้นและคอลัมน์!
  • พื้นที่แก้ไขที่ไม่ใช่ข้อความแถวเดียวเท่านั้น!
  • ทั้งการออมและการโหลด!

แหล่ง Python3 อยู่บน gitHub และคุณสามารถติดตั้งได้ง่ายขึ้นโดยใช้:

sudo apt install python3-pip
sudo pip3 install exofrills 

exofrills: ข้อความของคุณถูกแก้ไข ... แต่คุณยังหิวอยู่

ข้อจำกัดความรับผิดชอบ: ฉันไม่มีส่วนเกี่ยวข้องกับโครงการ exofrills


1
นี่ดูเรียบร้อยมาก +1 จากฉัน แม้ว่าจำนวนของเครื่องหมายอัศเจรีย์จะรบกวน : P
Andrea Lazzarotto

0

ในขณะที่ฉันไม่สามารถปฏิเสธได้ว่าฉันต่อสู้กับ vi ในตอนแรกฉันคิดว่าการโต้แย้งสามารถทำให้ vi นั้นง่ายมากที่จะเรียนรู้ (เมื่อฉันเริ่มใช้ Unix ตัวเลือกคือ vi หรือ emacs ดังนั้นในขณะที่ฉันเลือก ed, ed เป็นตัวแก้ไขเส้นเรียบง่ายมากซึ่งฉันได้เรียนรู้แล้วจากการอ่านตำรา Unix ยุคต้น) ฉันใช้ vi ทุกวัน แต่ฉันอาจ ใช้คุณลักษณะย่อย ๆ เพียงเล็กน้อยเท่านั้น

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

และนี่คือวิธีการเรียนรู้ชุดย่อยที่มีประโยชน์ของ vi: อันดับแรก: หยุดคิดถึง vi ในรูปแบบโต้ตอบ "แก้ไข" เทอร์มินัล - GUI และดูว่าเป็นภาษาการเขียนโปรแกรมสำหรับจัดการไฟล์ข้อความ ในการเริ่มต้น "vi" หมายถึงโหมด VIsual และ vi มีคู่ที่ไม่ได้มาซึ่งเป็นจุดเริ่มต้นที่ดี พิมพ์ ex ที่ shell prompt (ฉันจะใช้¬เพื่อแทน return):

$ ex¬
Entering Ex mode.  Type "visual" to go to Normal mode.
:

ตอนนี้กด Enter

:¬
E749: empty buffer
:

ดังนั้นให้ใส่อะไรลงไป พิมพ์ "a¬" และพิมพ์บรรทัดข้อความตามด้วยเครื่องหมายจุดบนบรรทัด:

:a¬
Hello World¬
.¬
:

นั่นคือคำสั่งผนวก ง่ายสั้นและช่วยในการจำ แต่มันจะดีถ้าได้เห็นสิ่งที่อยู่ในบัฟเฟอร์:

:%p¬
Hello World
:

นั่นคือคำสั่งพิมพ์, p, แน่นอน % เป็นชวเลขช่วงของช่วงบรรทัด แต่ละคำสั่งอาจนำหน้าด้วยหมายเลขบรรทัดหรือช่วงที่คำสั่งควรนำไปใช้ % หมายถึง "ทุกบรรทัด" $ หมายถึงบรรทัดสุดท้ายและจุดหมายถึงบรรทัดปัจจุบัน ตัวเลขหมายถึงบรรทัดนั้นโดยเฉพาะ ช่วงถูกเขียน n, m และสามารถเพิ่มหรือลบตัวเลขได้ดังนั้น + 1, $ - 1 ค่าเฉลี่ยจากบรรทัดถัดไปถึงบรรทัดที่สอง คำสั่งที่ประกอบด้วยเพียงหมายเลขบรรทัดไปที่บรรทัดนั้น นี่เป็นชุดคำสั่งย่อยที่เหลือที่ฉันใช้:

:1i¬
this text is inserted before line 1.¬
.¬
:

:w /tmp/filename¬
"/tmp/filename" [New] 2L, 49C written
:

w เขียนบรรทัดทั้งหมด (หรือช่วงที่เลือก) ไปยังไฟล์

:1d¬

ลบบรรทัด 1

:.s/Hello/Hello,/¬
Hello, World
:.s/$/!/¬
Hello, World!

s ใช้แทนนิพจน์ทั่วไป มันเป็นการดีที่จะรู้ว่าการแสดงออกปกติ!

:q¬
E37: No write since last change (add ! to override)

q ออกจาก wq เขียนและออก Q! เลิกโดยไม่ต้องเขียนและในหลอดเลือดดำที่คล้ายกัน w! บังคับให้เขียนไฟล์ถ้าเป็นไปได้

ตอนนี้เป็นคนที่ยอดเยี่ยม:

:p
Hello, World!
:.!tr a-z A-Z
:p
HELLO, WORLD!

! เป็นคำสั่งกรองบรรทัดลงในคำสั่งเชลล์

และในที่สุดก็:

:vi¬

เข้าสู่โหมด VISUAL อย่าหลงกล ดูเหมือนว่าเป็นตัวแก้ไข แต่มันก็เป็นเพียงเปลือกโปรแกรมมิงแบบโต้ตอบ คุณเพิ่งจะดูบัฟเฟอร์ตลอดเวลาและอีกสองสามคำสั่ง ในโหมดภาพ a: แสดงพร้อมต์: จากโหมด ex ปุ่มลูกศร (ถ้าทำงาน) เลื่อนไปมาและถ้าไม่ทำ hjkl ก็ทำเช่นนั้น! h เหลือ, j ลง, k ขึ้นและขวา 0 ย้ายไปที่อักขระตัวแรกและ ^ (คิดว่า regex ที่นี่!) ไปยังอักขระที่ไม่ใช่ช่องว่างบรรทัดแรกบนบรรทัด $ (regex อีกครั้ง!) ย้ายไปยังจุดสิ้นสุดของบรรทัด การพิมพ์: 999¬ไปที่บรรทัด 999 โดยธรรมชาติเหมือนกับในโหมด ex

"i" เข้าสู่โหมดแทรกซึ่งตอนนี้แทรกตัวอักษรแทนที่จะเป็นบรรทัดและลงท้ายด้วยการกดปุ่มลัดแทน ".¬" "I" แทรกที่จุดเริ่มต้น "a" หลังอักขระภายใต้เคอร์เซอร์และ "A" หลังจากสิ้นสุดบรรทัดปัจจุบัน กดปุ่ม Escape เสมอเมื่อพิมพ์ข้อความเสร็จ "x" ลบอักขระใต้เคอร์เซอร์และ "D" จะลบจากเคอร์เซอร์จนถึงท้ายบรรทัด "Y" ดึง (คัดลอก) บรรทัดปัจจุบันและ "P" วางกลับ ": pu" ทำเช่นเดียวกัน แต่สามารถนำหน้าด้วยหมายเลขบรรทัด ": ya" เทียบเท่ากับ "Y" และอีกครั้งมีประโยชน์ในการใช้กับช่วงของเส้น ฉันคิดว่ามีคำสั่ง mark เช่นกัน แต่ฉันจะยอมรับว่าฉันจำไม่ได้ ฉันไม่ควรพลาด

ด้านบนคือสิ่งที่ฉันใช้และฉันรู้ว่าฉันอาจไม่ใช่ผู้ใช้ vi ที่ "มีประสิทธิภาพ" ในทางกลับกันฉันใช้ความเก่งกาจของอดีตตัวอย่างเช่นไฟล์การแก้ไขสคริปต์ ต้องการเปลี่ยนชื่อโฮสต์ของคุณ foo.bar.com เป็น www.foobar.com ในไฟล์ conf จำนวนหรือไม่

for file in conf/*
do (echo "%s/foo.bar.com/www.foobar.com/" ; echo "wq") |ex $file ; done

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


3
ขออภัย แต่ ... ไม่ตอบคำถาม OP ขอทางเลือกให้เป็นกลุ่มและคำตอบควรให้สิ่งนั้น
Andrea Lazzarotto

1
ฉันขอชมเชยงานที่คุณใส่ลงไปในคำตอบนี้ แต่มันไม่ได้ตอบคำถามจริงๆ - การสอนเกี่ยวกับและปลั๊กสำหรับกลุ่มไม่ได้อยู่ที่นี่เลย แต่มันเป็นของบล็อกของคุณ
แมว

คำตอบนี้เป็นเหตุผลว่าทำไมผู้คนจำนวนมากจึงขอทางเลือกจาก viemacs ยิ่งเราบอกว่าพวกเขาใช้สิ่งที่ไม่พึงประสงค์ยิ่งยืนยันยิ่งกลับกลายเป็นว่าเราพยายามใช้ให้มากขึ้น
Shukri Adams

0

หากคุณต้องการ Sublime แบบเทอร์มินัลเช่นโปรแกรมแก้ไขข้อความพร้อมรองรับเมาส์ให้ไปที่Micro , SlapหรือSuplemon

แต่ถ้าคุณกำลังมองหาโปรแกรมแก้ไขข้อความกิริยามองไม่เพิ่มเติมกว่าKakoune

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