ที่ ed
โดยค่าเริ่มต้นมันเป็นสตริงที่ว่างเปล่า q
หากคุณต้องการที่จะเลิกเพียงแค่ใส่ :
อย่าคำนำหน้าด้วย ?
หากคุณมีการเปลี่ยนแปลงที่ไม่ได้บันทึกไว้ก็จะตอบกลับด้วย คุณสามารถตีความว่าเป็น "คุณแน่ใจหรือไม่" และยืนยันโดยคำสั่งq
อีกครั้ง คำสั่งใด ๆ ที่ไม่เข้าใจจะทำให้ตอบกลับ?
ได้ นั่นเป็นข้อผิดพลาดเดียวที่รู้
คำสั่งของมันเป็นสิ่งที่เป็นกลุ่ม / VI / อดีต / sed อยู่บนพื้นฐานเพื่อให้คำสั่งที่ชอบg/re/p
, %s/vi/&m/g
, 1,3d
, /pattern/,$d
, w
, q
, wq
การทำงานเช่นเดียวกับที่เป็นกลุ่ม
คำสั่งที่ชอบi
, a
และc
เข้าสู่โหมดแทรก .
ที่จะออกจากโหมดการแทรกและกลับไปที่โหมดคำสั่งเพียงแค่ใส่เส้นที่มีเพียงหนึ่ง หากต้องการ "ย้าย" ไปยังบรรทัดอื่นเพียงป้อนหมายเลขบรรทัดออฟเซ็ตจากบรรทัดปัจจุบันเช่น+2
หรือ-1
หรือ regex เป็นคำสั่งเพื่อไปที่บรรทัดนั้น .
หมายถึงบรรทัดปัจจุบันในโหมดคำสั่ง คุณสามารถใช้มันเพื่อรู้ว่าคุณอยู่ที่ไหน $
หมายถึงบรรทัดสุดท้าย
โดยวิธีการที่ถ้าคุณต้องการที่จะเรียนรู้เพิ่มเติมเกี่ยวกับเรื่องนี้เป็นโปรแกรม GNU ในลินุกซ์ส่วนใหญ่ของเอกสารที่อยู่ในแทนinfo ed
man ed
นี่คือตัวอย่างเซสชันที่มีการเพิ่มความคิดเห็น (ไม่ได้รับการยอมรับจาก ed):
$ ed
i # insert (on current line)
vi
. # end insert
%s/vi/&m/g # substitute vi for vim globally in all lines
i # insert (on current line)
first line
. # end insert
$a # append on last line
last line
. # end insert
%p # print all lines
first line
vim
last line
2 # move to line 2 and print it
vim
/line # move forward to line matching /line/ and print it
last line
-1 # move 1 line backwards and print it
vim
?line # move backward to line matching /line/ and print it
first line
+1 # move 1 line forward and print it
vim
g/line/p # print lines matching /line/ (grep)
first line
last line
p # print (current line)
last line
. # move to current line and print it
last line
c # change (current line)
final line
. # end insert
%p # print all lines
first line
vim
final line
/vim/,$c # change from line matching /vim/ to last line
that's all
. # end insert
%p # print all lines
first line
that's all
wq # write and quit
? # write what?
h # help with last error message
No current filename
wq # write and quit to check error message
?
H # help with all error messages
No current filename
wq # write and quit to check error message
?
No current filename
wq file.txt # write file.txt and quit
22 # wrote 22 bytes
แก้ไข: ชอบ grawity กล่าวถึงข้อผิดพลาดที่เป็นประโยชน์มากขึ้นสามารถเปิดใช้งานด้วยหรือh
H
นอกจากนี้,
มากกว่า%
ในส่วนช่วงของคำสั่งเป็นวิธีอย่างเป็นทางการในการอ้างถึง "ทุกบรรทัด" ed
ใน ใน GNU ed
ความเป็นไปได้ที่จะใช้%
สำหรับสิ่งนี้ได้รับการสนับสนุน แต่ไม่ได้กล่าวถึงในinfo
คู่มือ ใช้%
สำหรับสายทั้งหมดเห็นได้ชัดว่าถูกคิดค้นโดยex
ดูเหมือนเพราะนั่น,
หมายถึง.,.
มากกว่าเหมือนใน1,$
ed
EDIT2: การตั้งค่าตัวแก้ไขอื่น
เช่นเดียวกับคำตอบอื่น ๆ ที่กล่าวถึงหากคุณต้องการระบุโปรแกรมแก้ไขอื่นคุณสามารถทำได้โดยการตั้งค่าEDITOR
หรือVISUAL
ตัวแปรสภาพแวดล้อม ความแตกต่างระหว่างทั้งสองอธิบายในคำตอบนี้
คุณสามารถทำเช่นนี้หากคุณต้องการตั้งค่าสำหรับคำสั่งเดียว:
EDITOR=vi crontab -e
หรือเช่นนี้หากคุณต้องการให้โปรแกรมทั้งหมดเปิดใช้งานในเซสชันเชลล์เพื่อใช้งาน:
export EDITOR=vi
crontab -e
คุณสามารถบันทึกexport
ใน~/.profile
หรือ/etc/profile
ขึ้นอยู่กับว่าคุณต้องการให้ผู้ใช้หรือการตั้งค่าระบบสำหรับทุบตีตามลำดับ นั่นเป็นวิธีพกพา unix ในการตั้งค่าเครื่องมือแก้ไข คุณสามารถทำสิ่งนี้ในการกระจายใด ๆ
ใน Ubuntu ยังมีupdate-alternatives
คำสั่งด้วย สามารถดูเอดิเตอร์เริ่มต้นปัจจุบันด้วยupdate-alternatives --display editor
และคุณสามารถใช้update-alternatives --config editor
เพื่อตั้งค่า:
$ sudo update-alternatives --config editor
There are 4 choices for the alternative editor (providing /usr/bin/editor).
Selection Path Priority Status
------------------------------------------------------------
* 0 /bin/nano 40 auto mode
1 /bin/ed -100 manual mode
2 /bin/nano 40 manual mode
3 /usr/bin/vim.basic 30 manual mode
4 /usr/bin/vim.tiny 10 manual mode
Press enter to keep the current choice[*], or type selection number: 3
update-alternatives: using /usr/bin/vim.basic to provide /usr/bin/editor (editor) in manual mode.
ed
: โดยค่าเริ่มต้นมันจะนับจำนวนตัวอักษร (ซึ่งโดยปกติแล้ว888
ในระบบที่ใช้เดเบียนจะเป็นครั้งแรกที่มีจำนวนอักขระในเทมเพลต "ว่าง" crontab) หากคุณเห็นจำนวน 0 คุณต้องแก้ไขสิ่งนั้น ดูคำสั่ง Crontab -e ทำงานไม่ถูกต้อง