Jest to ed
Domyślnie jego monitem jest pusty ciąg. Jeśli chcesz wyjść, po prostu wpisz q. Nie prefiks z :. Jeśli masz niezapisane zmiany, odpowie na nie ?. Możesz to zinterpretować jako „jesteś pewien?” I potwierdzić, qponownie wydając polecenie . Nawiasem mówiąc, każde polecenie, którego nie rozumie, spowoduje również odpowiedź ?. To jedyny znany komunikat o błędzie.
Jego polecenia są co vim / vi / ex / sed jest na podstawie, tak jak komendy g/re/p, %s/vi/&m/g, 1,3d, /pattern/,$d, w, q, wqpraca, podobnie jak vim.
Polecenia takie jak i, ai cprzejdź do trybu wstawiania. Aby wyjść z trybu wstawiania i wrócić do trybu poleceń, wystarczy wpisać wiersz, który ma tylko znak .. Aby „przejść” do innej linii, wystarczy wprowadzić numer linii, przesunięcie od bieżącej linii, takie jak +2lub -1, lub wyrażenie regularne jako polecenie przejścia do tej linii. .oznacza bieżącą linię w trybie poleceń. Możesz go użyć, aby wiedzieć, gdzie jesteś. $oznacza ostatnią linię.
Nawiasem mówiąc, jeśli chcesz dowiedzieć się więcej o tym, ponieważ jest to program GNU w systemie Linux, większość jego dokumentacji znajduje się info edzamiast man ed.
Oto przykładowa sesja z dodanymi komentarzami (nieakceptowanymi przez 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
EDYCJA: Jak wspomina grawitacja, bardziej pomocne komunikaty o błędach można aktywować za pomocą hlub H. Ponadto, ,zamiast %w części zakresu, jest oficjalnym sposobem na odniesienie się do „wszystkich linii” w ed. W GNU edmożliwość użycia %tego jest obsługiwana, ale nie wspomniana w infoinstrukcji. Wykorzystanie %do wszystkich linii najwyraźniej zostało wymyślone przez ex, najwyraźniej dlatego, że tam są ,środki, .,.a nie 1,$jak w ed.
EDYCJA 2: Ustawianie innego edytora
Podobnie jak inne wspomniane odpowiedzi, jeśli chcesz określić inny edytor, możesz to zrobić, ustawiając zmienne środowiskowe EDITORlub VISUAL. Różnica między nimi została wyjaśniona w tej odpowiedzi .
Możesz to zrobić, jeśli chcesz ustawić to dla pojedynczego polecenia:
EDITOR=vi crontab -e
lub jeśli chcesz, aby wszystkie programy uruchomione w sesji powłoki z niego korzystały:
export EDITOR=vi
crontab -e
Możesz zapisać exportw ~/.profilelub /etc/profile, w zależności od tego, czy chcesz, aby było to ustawienie użytkownika lub systemowe dla bash. To unikalny przenośny sposób na ustawienie edytora; możesz to zrobić w dowolnej dystrybucji.
W Ubuntu istnieje również update-alternativespolecenie. Bieżący domyślny edytor można zobaczyć za pomocą update-alternatives --display editori można update-alternatives --config editorgo ustawić:
$ 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: domyślnie podaje liczbę znaków (która w systemach opartych na Debianie jest zwykle888po raz pierwszy, czyli liczba znaków w szablonie „pustym” crontabie). Jeśli widzisz liczbę 0, musisz ją zmodyfikować. Zobacz komenda Crontab -e nie działa poprawnie