Ci sono casi in cui vi è l'unica opzione?


22

Esistono scenari in cui viè l'unica opzione per creare, modificare o modificare un file in un ambiente Ubuntu?

La mia domanda è fondamentalmente sapere davvero se esiste un caso del genere in cui sarei costretto a usare viperché sarebbe l'unica opzione disponibile in un caso particolare nell'ecosistema di Ubuntu.

Può un caso particolare esistono dove in qualche modo non avrei avuto accesso ad altre opzioni come nano, picoo semplicemente inviando le informazioni con strumenti come cat, sed, teee altro ancora?

Suppongo che questo sia più un lato server o cloud poiché sul desktop ci sono molte più opzioni, ma da chiunque usi molto il terminale chiedo:

C'è un caso del genere?



8
@Tim In realtà è visudopossibile utilizzare qualsiasi editor. Poiché la sua configurazione predefinita su Ubuntu rispetta le variabili di ambiente EDITORe VISUAL, è possibile eseguire sudo env VISUAL=emacs visudoper emacs o anche gksudo env VISUAL=gedit visudoper un editor grafico come Gedit. ( sudo -Ho sudo -ipuò essere usato al posto di gksudo.) Suggerisco questo in envquanto VISUAL=emacs sudo visudonon funzionerà ( sudoripristina la maggior parte dell'ambiente) e sudo -EH potrebbe essere considerato sconsigliato.
Eliah Kagan,

3
vi è l'unica opzione ... quando vi è l'unico editor installato che conosci e non vuoi perdere tempo a installarne un altro. vi è l'opzione migliore quando vi è l'editor che conosci / che ti piace di più tra quelli disponibili e non vuoi perdere tempo a installarne uno che ti piace di più. Non c'è MAI un caso in cui un solo strumento può risolvere un problema; ci possono essere momenti in cui le scelte sono vincolate. E ad alcune persone piace davvero vi. (Non io. Sono un fanatico di Emacs. Anche se posso tollerare molti editor.)
keshlam,

3
cat? sed? Veramente? vinon è poi così complicato, e se davvero non ti preoccupi di impararlo, devi solo ricordare due modalità (modalità Normale e Inserisci). Spostare il cursore con le frecce (o HJKL se non disponibile), premere "i" per iniziare la modifica (modalità di inserimento). Al termine, premere "Esc" per tornare alla modalità normale. Digita ": wq" per salvare ed uscire (Scrivi + Esci).
slitta,

2
succhialo e impara vi :) Non è così difficile come appare per la prima volta e una volta che lo sai non perderai mai tempo a cercare altri editor su qualsiasi nuovo sistema che usi.
JamesRyan,

Risposte:


32

All'interno dell'ecosistema Ubuntu , non penso che questo caso possa esistere , come visarebbe almeno un vim-tiny, che è già un "reale vim" tutt'altro che "reale vi".

Nel contesto di sistemi embedded a risorse limitate , che normalmente non sono Ubuntu, potresti semplicemente avere viun link che si rivela essere un link a busybox. E non spazio lasciato. Quindi, viè l'unica opzione.

A parte questo, penso che le situazioni in cui vil'unica opzione non siano molto comuni oggi, anche al di fuori del mondo Linux .

Ma ci possono essere facilmente situazioni in cui viè l'unica opzione che puoi pianificare , l'unica opzione che sicuramente esisterà in qualche situazione futura - che accadrà probabilmente nella stanza del server troppo fredda del cliente.

Immagina di essere chiamato da un cliente:

Cliente: devo sistemare questa configurazione! Adesso!! Non so come, ma posso dirti dove si trova il file di configurazione. Mi potete aiutare!?!

Tu: Ok, su che tipo di sistema funziona?

Cliente: Oh, è sul server foo, ahh ... è in esecuzione ... non ricordo, qualcosa con "ix" alla fine , o mayeb con "ux" ...

Nessun problema, ormai, sai che ci sarà vi!


1
Ho lavorato personalmente su una serie di sistemi embedded che contenevano solo vi come editor di testo, credo che buildroot e yocto lo abbiano entrambi come unico editor quando si utilizzano opzioni di configurazione minime. Certo, questo non è un problema su Ubuntu, ma se sei un sviluppatore incorporato questo può essere un vero problema. Tuttavia è sempre possibile, come ha detto l'OP, utilizzare strumenti basati su pipe come sed, sort, grep e simili, tuttavia questo può essere molto doloroso.
Valità,

Il caso busybox è davvero un buon caso. La cosa fastidiosa è che non credo sia nemmeno un pieno vi (almeno non è stato un decennio fa, e spero che non lo abbiano gonfiato, anche se è fastidioso).
hyde,

1
busybox viè 4k linee:; curl -s https://gitorious.org/busybox/busybox/raw/1c7a58dfb82ea04c525e0c19f94f2d800dee99e3:editors/vi.c | wc)
Volker Siegel,

17

Vi non è mai l'unica opzione; puoi sempre usare edinvece.


8
In Arch Linux, ad esempio, ednon fa parte del base.
muru,

Anche @muru FWIW vimnon lo è.
Sparhawk,

4
@Sparhawk viè.
muru,

@muru Ah sì, certo. Mi stavo confondendo.
Sparhawk,

edè solo una parte standard^dell'installazione. Se si esegue minimalun'installazione, ednon è incluso.
Oli

13

Bene, c'è un caso in cui hai bisogno videll'editor, supponiamo:

  • non esiste un'interfaccia grafica
  • sei su uno strano *nixsistema sconosciuto
  • il tuo terminale è simile al seguente:

inserisci qui la descrizione dell'immagine

  • ne hai abbastanza di ragazzi come questo:

inserisci qui la descrizione dell'immagine

Come puoi vedere non esiste un tastierino numerico . Con il vecchio vi(e mi riferisco al tradizionale originalevi , non è vim, vim.tinyo vim.basic) è possibile modificare un file con questa tastiera. Senza i tasti freccia ? Sì, quando si è in modalità di comando è stato spostato attraverso il file con h, j, ke l, come un professionista. hera a sinistra, jera a terra, kera su e laveva ragione.


5
Penso che questa risposta non sia poi così male (tastiere simili a macchine da scrivere non sono una cosa del tutto improbabile da incontrare), ma in realtà ciò non significa che tu abbia bisogno viin particolare. Tutti i vecchi editor di testo hanno combinazioni di tasti "di backup" che ti consentono di lavorare senza i tasti freccia ecc., Anche se oso dire che viè l'unico editor in cui non mancheresti i tasti freccia.
lasciato circa il

Un po 'fuori tema: non vedo perché avresti bisogno di un tastierino numerico per qualsiasi editor di testo, e i tasti freccia sono comunque inutili in Vim. : P
Maniglia della porta,

1
Ehi, non scartare buon vecchio ed! Non c'è bisogno di questi espedienti "visivi" su un sistema del genere! Prova a usare vim sul terminale cartaceo e vedi come gestisci ... Più seriamente, sapere che edè utile in ogni caso, è un'opzione decente quando il montaggio deve essere copiato.
hyde,

come si passa alla modalità di comando con quella tastiera (non vedo la fuga; c'era un'altra combinazione di tasti per quello?)
Foon

@Foon C'è una chiave di escape =) È dove dovrebbe essere normalmente la scheda. A sinistra del tasto Q.
caos,

6

Il fatto è che, in molte distribuzioni, gli editor gradiscono nanoe picosemplicemente non sono standard, mentre altri pacchetti lo vim-tinysono. Vedi qui per l'elenco dei pacchetti di ubuntu-minimal, vim-tinyè l'unico editor . Secondo questa risposta, sembra valere anche per il server Ubuntu. So che questo è il caso della base Debian, anche di Fedora.

Detto questo, dato che se hai nanosul tuo sistema devo ancora vedere un caso in cui dovresti usare viinvece, ma, giocando con la risposta di @ Volker, se lavori per un cliente e non hai accesso root? apt-get install nanonon ti farà molto bene (se ha anche accesso a Internet esterno!).


4

Ci sono un certo numero di casi in cui vi(e con questo intendo naturalmente vim.tinyperché è quello che spediamo) potrebbe essere l'unico editor interattivo. Se ignoriamo le farfalle e i raggi cosmici, queste sembrano le occasioni più probabili in cui ciò potrebbe accadere:

  • Stai usando solo il ubuntu-minimalmeta-pacchetto di base. Questo dipende vim-tiny ma non da altri editor. Attualmente non riesco a trovare un modo per installare Ubuntu senza l' standard^attività, ma è possibile rimuoverlo dopo l'installazione con:

    sudo apt-get remove $(apt-cache show standard^ | awk '/Package: / {print $2}')
    

    Ho esperienza personale in cui mi è stata consegnata un'immagine di sistema senza l' standard^attività installata. Se non avessi avuto accesso alla rete visarebbe stata la mia unica opzione.

  • Chroot in un ambiente che mappato solo viattraverso

  • Nuking manualmente tutti gli altri editor (e disabilitando i mezzi per reinstallarli)

  • Rompere manualmente la shell per arrestare gli editor noti tranne che viessere lanciati.

Un'installazione minimale sarà la ragione più probabile, ma al giorno d'oggi sono piuttosto rari. Alcune società di hosting VPS e cloud li usano (per risparmiare spazio su disco tanto quanto qualsiasi altra cosa) ma suggerirei che sicuramente non sono la norma.


Una risposta fantastica come sempre. Lo trovo molto ben informato.
Luis Alvarado,

2

Nei casi in cui non è possibile installare emacs o nei casi in cui è necessario modificare un file di configurazione per consentire l'installazione di emacs. :-p


O nei casi in cui desideri utilizzare un editor superiore che è meglio di emacs. ( cue flamewar ): P
Maniglia della porta,

3
Sicuramente, se si sta utilizzando Ubuntu allora hai già dispone di un sistema operativo, in modo da emacs sarebbero ridondanti: v
evilsoup

Ehi, bel combattimento. :-p
Craig,

2

Molte (la maggior parte?) Hanno solo installazioni Busy-Box vi.

Non è specifico di Ubuntu, ma è vero per molti dispositivi integrati.


2

C'è sempre gatto, testa, coda ... quindi non sono sicuro che esista un sistema in cui non hai alternative, ma è possibile trovare sistemi in cui non esiste un'alternativa migliore anche se preferisci emacs.

Il mio esempio era un sistema che una volta avevo amministrato, che era così lento (o la linea era lenta e con perdita), che durante la navigazione con i tasti cursore, spesso passava all'improvviso per inserire e iniettare immondizia nel file modificato e usare HJKL per il movimento era l'unica opzione affidabile.


1
E ovviamente le buone vecchie farfalle !
lasciato circa il

2

Ecco il caso in cui vim è l'unica opzione all'interno dell'ecosistema Ubuntu: Ubuntu Snappynon viene fornito con nessun editor di testo diverso davim-tiny . Forse in futuro ce ne sarà uno, ma non a partire dal 2015-16. Se stai per usare Ubuntu Snappy su console seriale o ssh, è meglio essere pronti all'uso vim.


0

Una volta mi sono trovato in una situazione in cui funzionava solo la modalità di linea di vi. Qualcosa a che fare con aver rovinato davvero le definizioni dei terminali. Fondamentalmente solo vi in ​​modalità linea (questo si comporta come un normale vi se fingi di avere un terminale a 1 linea), ex ed ed funzioneranno perché l'unica definizione del terminale era "stupido".

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.