Quale editor posso usare come semplice alternativa vi / vim?


17

Sono un utente Windows che viene su Ubuntu's Bash grazie a WSL . Ora ho bisogno di modificare alcuni file e odio davvero Vi. Devo solo occuparmene o esiste un'alternativa più semplice?

Le caratteristiche che sto cercando sono:

  • Basato sulla CLI
  • facile da usare (la digitazione e la modifica dovrebbero essere simili al Blocco note)
  • sono sufficienti semplici funzionalità di modifica

Proverò a dominare Vim, ma adesso devo fare una modifica rapida!


È una questione di opinione. I principianti usano nano howtogeek.com/howto/42980/… . vim (vi ha migliorato) ha un po 'di una curva di apprendimento ma è molto potente - Vedi linux.com/learn/vim-101-beginners-guide-vim o qualsiasi guida di vim o il tutorial di vim, vimtutor (incluso in vim)
Pantera,

Si noti che questa domanda potrebbe essere chiusa come piuttosto basata sull'opinione. Potresti voler riformularlo per adattarlo alle regole del sito (ad esempio, cosa posso usare come alternativa a VIM?)
Andrea Lazzarotto

3
Votando per chiudere questa domanda come un'opinione. Un consiglio: inizia con nano e successivamente passa a vim con baby-step.
Pagherà

1
A seguito del mio commento, il titolo attuale è ancora discutibile e potrebbe portare alla chiusura. Le persone potrebbero considerare Vim stesso "buono", e questo è soggettivo. Posso suggerire di usare la parola "più facile" invece? Anche specificare alcune funzionalità desiderate potrebbe aiutare a restringere la domanda.
Andrea Lazzarotto,

2
@Jos stiamo parlando di WSL in cui è possibile eseguire programmi GUI ma non è banale. Inoltre, la domanda non esisterebbe per gli editor della GUI perché sono tutti più facili di VIM.
Andrea Lazzarotto,

Risposte:


24

Se stai cercando un editor alternativo, non sei solo. Fondamentalmente la vita è troppo breve per imparare vie dico che questo è uno sviluppatore di software per vivere. Tuttavia, dovresti imparare come uscire perché è un problema per un programmatore su 20k . Vale la pena imparare anche alcune operazioni base di aggiunta / inserimento, perché su alcuni server testardi non troverai nessun altro editor.

Ora, la risposta alla tua domanda è probabilmente nano.

Se stai eseguendo uno script di build automatizzato, usando gito eseguendo altri comandi, potrebbero aprirsi vimsenza che tu lo voglia. È possibile impedire ciò eseguendo quanto segue prima di procedere:

export EDITOR=nano

1
Grazie! punto extra per la EDITORpunta
sebagomez

3
"Fondamentalmente la vita è troppo breve per imparare vi". Non c'è bisogno di passare tutta la vita, anche se uno può amare VIM. Ho trascorso 2 ore a guardare un buon tutorial su YouTube e ho continuato a praticare le basi che ho imparato dal video. Ora il 70% di tutte le mie risposte su Ask Ubuntu sono scritte in vim.
Sergiy Kolodyazhnyy,

7
Su "la vita è troppo breve", ho pensato che questo saggio avesse un buon punto. Uno dei più grandi blocchi (artificiali) nell'apprendimento di Vim è la falsa premessa che è necessario immergersi immediatamente per diventare un utente "hard core". Non Usa i tasti freccia. Utilizzare le scorciatoie della GUI per copiare / incollare. Hangout in modalità di inserimento. Ignora le schede, i registri, le campane e i fischietti (per ora). È relativamente veloce accedere alla funzionalità di livello nano in Vim e puoi aggiungere lentamente funzionalità avanzate in seguito, quando ne hai bisogno.
RM

Scorciatoie GUI @RM?
Andrea Lazzarotto,

1
@Sergiy vim ha senso se si desidera utilizzare funzionalità avanzate. Se dovessi usare vim come se usassi nano, continuerei semplicemente ad usare nano (in effetti, lo faccio ... Uso vim quando sono su un server su cui non posso aggiungere software, come la macchina di un client).
Andrea Lazzarotto,

11

È una questione di opinione.

I principianti usano nano .

vim ("vi Improv") ha un po 'di una curva di apprendimento ma è molto potente. Vedi questa guida per principianti per vim o qualsiasi altra guida di vim o il tutorial di vim vimtutor(incluso in vim).

Per ora consiglio vivamente nano

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

-B esegue un backup

I comandi vengono emessi con il tasto di controllo e sono elencati nella parte inferiore della finestra dell'editor.

C'è una guida sull'evidenziazione della sintassi vedi: Come abilitare l'evidenziazione della sintassi in nano?

nano

emacsè un'alternativa ad entrambi vime nanoe ha molti vantaggi. emacsè più complesso di nano. Puoi vedere il tour di emac .

Solo per completezza, i temi vim + come Zenburn possono essere molto utili

Zenburn


2
Non solo principianti, praticamente tutti gli umani che non vogliono entrare nelle guerre di Vim vs Emacs. : P
Andrea Lazzarotto,

1
+1 Vorrei andare anche con nano, anche per gli utenti di lunga data vi sembra una vecchia merda
xavier_fakerat

Bene, per essere onesti, puoi usare il tema Vim e un .vimrc fa molto. vim ed emacs hanno funzionalità avanzate che non sono disponibili in nano, ma è uno spreco se non si utilizzano le funzionalità avanzate. Per le modifiche di base veloci uso nano anche se nel complesso sono un fanboi di Vim. kippura.org/zenburnpage
Pantera

1
Imparare vi/vim. :) È su ogni dispositivo nix. :) Le basi non sono così difficili.
fuggitivo,

3
"emacs è più complesso di nano." : p questo potrebbe essere l'eufemismo dell'anno.
Daniel Jour,

3

come Windows Poweruser, dopo aver provato vime nanoho scoperto che ho bisogno di qualcosa nel mezzo, per quanto riguarda la complessità. così ho provato a schiaffeggiare ed era la cosa che stavo cercando.

immagine schiaffo

slap è un editor di testo basato su terminali simile a Sublime che si impegna a semplificare la modifica dal terminale.


installazione:

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

1
Hai dimenticato di menzionare il punto di vendita principale, supporto per mouse di prima classe (anche su una connessione SSH)
blueray

2

Sei mai stato frustrato dal fatto che il tuo editor di testo non stesse facendo quello che volevi? Rabbia che non ricordi ...

  • ... come trovare aiuto?
  • ... cosa significa: wq?
  • ... qualcuno del piccolo sussurro che leggi come studente universitario?

Un mondo piccolo e coraggioso ti aspetta!

Mentre sosteniamo i nostri editor di testi leggeri preferiti, lasciatemi raccomandare l'eXcellent, piccolo e veloce xo(exofrills) .

È un singolo file Python 3 e ha un buon supporto per l'evidenziazione della sintassi tramite Pygments (anche se non perfetto con non Python):

inserisci qui la descrizione dell'immagine

Ha anche combinazioni di tasti estremamente semplici e utili che possono essere facilmente e facilmente modificate in base al contenuto del tuo cuore:

inserisci qui la descrizione dell'immagine

Altre caratteristiche:

  • Meno di 850 righe di codice in un singolo file!
  • Evidenziazione della sintassi!
  • Corrispondenza e sostituzione di espressioni regolari!
  • Cerca nella cronologia della cache!
  • Licenza WTFPL!
  • Completamente personalizzabile!
  • Inizia da località non originarie!
  • Salta tra le parole su una linea!
  • Vai ovunque nel file!
  • Inserimento di file completo!
  • Adatto ai principianti - forse sei nuovo alle parole!
  • Copia e incolla il testo!
  • Stato di riga e colonna!
  • Solo una riga di spazio per la modifica senza testo!
  • Sia il salvataggio che il caricamento!

Il sorgente Python3 è su github e puoi installarlo più facilmente usando:

sudo apt install python3-pip
sudo pip3 install exofrills 

exofrills: il tuo testo è stato modificato ... ma hai ancora fame.

Disclaimer: non sono in alcun modo affiliato al progetto exofrills.


1
Sembra molto pulito, +1 da me. Sebbene tale quantità di punti esclamativi sia inquietante. : P
Andrea Lazzarotto,

0

Anche se non posso negare di aver lottato troppo con vi all'inizio, penso che si possa sostenere che vi sia in realtà molto semplice da imparare. (Quando ho iniziato a usare Unix la scelta era o vi o emacs, quindi al momento ho scelto ed, essendo un editor di linee molto semplice, che avevo già imparato leggendo i primi libri di testo di Unix.) Uso vi ogni giorno, ma probabilmente usa solo un sottoinsieme molto piccolo delle sue caratteristiche.

Ecco prima un argomento per usare vi: vi esiste su tutti i sistemi, usa pochissime risorse e può essere utilizzabile su connessioni instabili e lente, dove altri editor potrebbero non funzionare o essere lenti e inutilizzabili. O in situazioni in cui il sistema è rotto, quindi i tasti freccia non vengono interpretati correttamente (ad esempio impostazioni errate di terminfo). Quindi vi può essere usato per correggere i file di configurazione che portano al problema, senza essere interessati dal problema.

Ed ecco come imparare un utile sottoinsieme di vi: Primo: smetti di pensare a vi come un "editor" interattivo, con GUI terminale, e guardalo come un linguaggio di programmazione per manipolare i file di testo. All'inizio "vi" stava per VIsual mode, e vi ha una controparte non visuale ex, che è un buon punto di partenza. Digita ex al prompt della shell (userò ¬ per rappresentare return):

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

Ora premi invio.

:¬
E749: empty buffer
:

Quindi, mettici qualcosa dentro. Digita "a¬" e digita una riga di testo, quindi un punto su una riga da solo:

:a¬
Hello World¬
.¬
:

Quello era il comando append. Facile, corto e mnemonico. Ma sarebbe bello vedere cosa c'è nel buffer:

:%p¬
Hello World
:

Questo era il comando di stampa, p, ovviamente. % È una scorciatoia per l'intervallo di righe. Ogni comando può essere preceduto da un numero di riga o un intervallo a cui il comando deve essere applicato. % significa "tutte le linee". $ indica l'ultima riga e un punto indica la riga corrente. Un numero indica quella particolare riga. Un intervallo è scritto n, m e un numero può essere aggiunto o sottratto, quindi. + 1, $ - 1 media dalla riga successiva all'ultima riga. Un comando costituito da un solo numero di riga va a quella riga. Ecco il piccolo sottoinsieme rimanente di comandi che uso:

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

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

w scrive tutte (o l'intervallo di) scelto in un file.

:1d¬

elimina la riga 1.

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

s sostituisce un'espressione regolare. È bello conoscere le espressioni regolari!

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

q si chiude. wq scrive ed esce. q! esce senza scrivere, e in modo simile, w! forza una scrittura su un file, se possibile.

Ora bello:

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

! come comando filtra le linee in un comando shell.

E infine:

:vi¬

entra in modalità VISUAL. Non farti ingannare. Sembra un editor, ma è ancora solo una shell di programmazione interattiva. Basta dare un'occhiata al buffer per tutto il tempo e qualche altro comando. In modalità visiva a: mostra il prompt: dalla modalità ex. I tasti freccia (se funzionano) si muovono, e se non lo fanno, allora hjkl lo fa! h sinistra, j giù, k su el destra. 0 si sposta sul primo carattere e ^ (pensa regex qui!) Al primo carattere non spaziale sulla linea. $ (regex di nuovo!) si sposta alla fine della riga. Digitando: 999¬ va alla linea 999, naturalmente, proprio come in modalità ex.

"i" entra nella modalità di inserimento, che ora inserisce i caratteri anziché le righe e termina premendo Esc anziché ".¬". "I" inserisce all'inizio, "a" dopo il carattere sotto il cursore e "A" dopo la fine della riga corrente. Premere sempre Esc quando si digita il testo. "x" cancella il carattere sotto il cursore e "D" cancella dal cursore alla fine della riga. "Y" strappa (copia) la linea corrente e "P" la incolla indietro. ": pu" fa lo stesso, ma può essere preceduto da un numero di riga. ": ya" è l'ex equivalente di "Y" e, di nuovo, utile da applicare a un intervallo di linee. Penso che ci sia anche un comando mark, ma ammetterò di non ricordarlo. Non mi manca

Quanto sopra è quello che uso, e so che probabilmente non sono un utente vi molto "efficiente". D'altro canto, utilizzo la versatilità di ex, ad esempio per modificare i file di configurazione degli script. Devi cambiare il tuo hostname foo.bar.com in www.foobar.com in un numero di file conf?

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

Quello che sto cercando di dire è che penso che il problema con vi sia che la gente lo considera un editor difficile. Tutto ciò che serve è cambiare un po 'la tua mentalità e vederlo come un linguaggio di programmazione interattiva molto semplice ma anche molto potente. Così potente che anche con un sottoinsieme dei comandi disponibili, puoi usarlo con grande efficacia - non solo come editor ma come strumento generale, programmabile e ben integrato con il resto di Unix. Dubito che nano farebbe tutto questo - emacs ... forse.


3
Scusa ma ... questo non risponde alla domanda. OP ha chiesto un'alternativa a Vim e le risposte dovrebbero fornirlo.
Andrea Lazzarotto,

1
Mi congratulo con il lavoro che hai inserito in questa risposta, ma in realtà non risponde alla domanda: un tutorial su e plug per vim non appartiene affatto qui, ma appartiene al tuo blog.
cat

Questa risposta è esattamente il motivo per cui così tante persone chiedono un'alternativa ai viemac: più diciamo che sono spiacevoli da usare, più i convertiti insistono sul fatto che cerchiamo più duramente di usarli.
Shukri Adams,

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.