Quello è ed
Per impostazione predefinita, il suo prompt è la stringa vuota. Se vuoi uscire, basta inserire q
. Non aggiungere il prefisso :
. Se hai modifiche non salvate, risponderà con ?
. Puoi interpretarlo come "ne sei sicuro?" E confermare comandando di q
nuovo. A proposito, qualsiasi comando che non comprende causerà anche la sua risposta ?
. Questo è l'unico messaggio di errore che conosce.
I suoi comandi sono ciò che vim / vi / ex / sed si basa su, in modo da comandi come g/re/p
, %s/vi/&m/g
, 1,3d
, /pattern/,$d
, w
, q
, wq
funzionano esattamente come vim.
Comandi come i
, a
e c
vai in modalità inserimento. Per uscire dalla modalità di inserimento e tornare alla modalità di comando, basta inserire una riga che ha solo a .
. Per "spostare" su un'altra riga, basta inserire il numero di riga, uno scostamento dalla riga corrente come +2
o -1
o un regex come comando per passare a quella riga. .
indica la riga corrente in modalità comando. Puoi usarlo per sapere dove ti trovi. $
significa ultima riga.
A proposito, se vuoi saperne di più, trattandosi di un programma GNU in Linux, la maggior parte della sua documentazione è info ed
invece di man ed
.
Ecco una sessione di esempio, con commenti aggiunti (non accettati da 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
MODIFICA: Come le menzioni di gravità, è possibile attivare messaggi di errore più utili con h
o H
. Inoltre, ,
piuttosto che %
nell'intervallo, la parte di un comando è il modo ufficiale di fare riferimento a "tutte le linee" in ed
. In GNU ed
, la possibilità di utilizzare %
per questo è supportata ma non menzionata nel info
manuale. L'uso di %
per tutte le linee è stato apparentemente inventato da ex
, apparentemente perché, lì, ,
significa .,.
piuttosto che 1,$
come in ed
.
EDIT2: impostazione di un editor diverso
Come altre risposte menzionate, se si desidera specificare un editor diverso, è possibile farlo impostando le variabili di ambiente EDITOR
o VISUAL
. La differenza tra i due è spiegata in questa risposta .
Puoi farlo in questo modo se vuoi impostarlo per un singolo comando:
EDITOR=vi crontab -e
o in questo modo se si desidera che tutti i programmi avviati nella sessione di shell lo utilizzino:
export EDITOR=vi
crontab -e
È possibile salvare export
in ~/.profile
o /etc/profile
, a seconda se si desidera che sia un'impostazione utente o di sistema per bash, rispettivamente. Questo è il modo portatile unix per impostare l'editor; puoi farlo in qualsiasi distribuzione.
In Ubuntu c'è anche il update-alternatives
comando. L'editor predefinito corrente può essere visualizzato con update-alternatives --display editor
ed è possibile utilizzare update-alternatives --config editor
per impostarlo:
$ 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
: per impostazione predefinita, fornisce un conteggio dei caratteri (che nei sistemi basati su Debian è in genere888
la prima volta, essendo il numero di caratteri nel crontab "vuoto" del modello). Se vedi un conteggio di 0, devi averlo modificato. Vedi il comando Crontab -e non funziona correttamente