Jakiego edytora mogę użyć jako prostej alternatywy vi / vim?

17

Jestem użytkownikiem systemu Windows, który przychodzi na Bash Ubuntu dzięki WSL . Teraz muszę edytować niektóre pliki i naprawdę nienawidzę Vi. Czy muszę sobie z tym poradzić, czy jest prostsza alternatywa?

Funkcje, których szukam to:

  • Oparty na CLI
  • łatwy w użyciu (pisanie i edycja powinna być podobna do Notatnika)
  • wystarczą proste możliwości edycji

Spróbuję opanować Vima, ale muszę teraz dokonać szybkiej edycji!

sebagomez
źródło
To kwestia opinii. Początkujący używają nano howtogeek.com/howto/42980/… . vim (poprawiony vi) ma trochę krzywej uczenia się, ale jest bardzo potężny - patrz linux.com/learn/vim-101-beginners-guide-vim lub dowolne przewodniki vim lub samouczek vim, vimtutor (zawarty w vim)
Panther
Należy pamiętać, że to pytanie może zostać zamknięte jako oparte na opiniach. Możesz przeredagować go, aby pasował do zasad strony (np. Czego mogę użyć jako alternatywy dla vima?)
Andrea Lazzarotto
3
Głosowanie w celu zamknięcia tego pytania opartego na opiniach. Porada: zacznij od nano, a później przejdź do vim z krokiem dziecka.
Opłaci
1
W następstwie mojego komentarza obecny tytuł jest nadal dyskusyjny i może doprowadzić do zamknięcia. Ludzie mogą uważać samego vima za „dobry”, a to jest subiektywne. Czy zamiast tego mogę zasugerować użycie słowa „łatwiej”? Określenie niektórych pożądanych funkcji może pomóc w zawężeniu pytania.
Andrea Lazzarotto
2
@Jos mówimy o WSL, w którym można uruchamiać programy GUI, ale nie jest to trywialne. Także pytanie nie istniałoby dla edytorów GUI, ponieważ wszystkie są łatwiejsze niż vim.
Andrea Lazzarotto

Odpowiedzi:

24

Jeśli szukasz alternatywnego edytora, nie jesteś sam. Zasadniczo życie jest zbyt krótkie, aby się uczyć vii mówię, że jest to twórca oprogramowania na życie. Jednak ty powinni nauczyć się go zamknąć, ponieważ jest to problem dla jeden na 20k programistów . Warto również nauczyć się wykonywania podstawowych operacji dołączania / wstawiania, ponieważ na niektórych upartych serwerach nie ma innego edytora.

Teraz odpowiedź na twoje pytanie jest prawdopodobnie nano.

Jeśli uruchamiasz jakiś automatyczny skrypt kompilacji, używasz gitlub uruchamiasz inne polecenia, mogą się one otworzyć vimbez Twojej zgody. Można temu zapobiec, uruchamiając następujące czynności przed kontynuowaniem:

export EDITOR=nano
Andrea Lazzarotto
źródło
1
dzięki! dodatkowy punkt za EDITORwskazówkę
sebagomez
3
„Zasadniczo życie jest zbyt krótkie, aby nauczyć się vi”. Nie trzeba spędzać całego życia, chociaż można to zrobić, jeśli kochają vim. Spędziłem 2 godziny oglądając dobry samouczek na YouTube i po prostu ćwiczyłem podstawy, których nauczyłem się z tego filmu. Teraz 70% wszystkich moich odpowiedzi na Ask Ubuntu jest napisanych w vimie.
Sergiy Kolodyazhnyy
7
Jeśli chodzi o „życie jest za krótkie”, pomyślałem, że ten esej ma sens. Jedną z największych (sztucznych) przeszkód w nauce Vima jest fałszywa przesłanka, że ​​musisz od razu zanurkować, aby stać się „twardym” użytkownikiem. Ty nie. Użyj strzałek. Użyj skrótów GUI, aby skopiować / wkleić. Spędzaj czas w trybie wstawiania. Ignoruj ​​karty i rejestry oraz dzwonki i gwizdki (na razie). W Vimie jest stosunkowo szybko dostać się do funkcjonalności na poziomie nano, a później możesz powoli dodawać zaawansowane funkcje, gdy są potrzebne.
RM
@RM Skróty GUI?
Andrea Lazzarotto
1
@Sergiy vim ma sens, jeśli chcesz korzystać z zaawansowanych funkcji. Gdybym miał używać vima tak, jak korzystam z nano, po prostu nadal używałbym nano (w rzeczywistości robię ... używam vima, gdy jestem na serwerze, na którym nie mogę dodać oprogramowania, takiego jak komputer klienta).
Andrea Lazzarotto
11

To kwestia opinii.

Początkujący używają nano .

vim („vi ulepszony”) ma trochę krzywej uczenia się, ale jest bardzo potężny. Zobacz przewodnik dla początkujących, aby zapoznać się z vimem lub innymi przewodnikami vima lub samouczkiem vima vimtutor(zawartym w vimie).

Na razie bardzo polecam nano

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

-B tworzy kopię zapasową

Polecenia są wydawane z klawiszem sterującym i są wymienione na dole okna edytora.

Istnieje przewodnik dotyczący podświetlania składni, patrz: Jak włączyć wyróżnianie składni w nano?

nano

emacsJest to alternatywny zarówno vima nanoi ma także wiele zalet. emacsjest bardziej złożony niż nano. Możesz zobaczyć trasę Emaca .

Dla kompletności motywy vim + takie jak Zenburn mogą być bardzo pomocne

Zenburn

Pantera
źródło
2
Nie tylko początkujący, w zasadzie wszyscy ludzie, którzy nie chcą wchodzić w wojny vim vs. emacs. : P
Andrea Lazzarotto
1
+1 Chciałbym też
użyć
Cóż, żeby być uczciwym, możesz motywować vima, a .vimrc przechodzi długą drogę. vim i emacs mają zaawansowane funkcje, które nie są dostępne w nano, ale marnowanie zasobów nie jest możliwe, jeśli nie korzystasz z zaawansowanych funkcji. Do szybkich podstawowych zmian używam nano, chociaż ogólnie jestem fanem vim. kippura.org/zenburnpage
Panther
1
Nauczyć vi/vim. :) Jest na każdym urządzeniu nix. :) Podstawy nie są takie trudne.
zbieg
3
„emacs jest bardziej złożony niż nano”. : p może to być niedopowiedzenie roku.
Daniel Jour
3

jako użytkownik systemu Windows, po wypróbowaniu vimi nanodowiedziałem się, że potrzebuję czegoś pośredniego, jeśli chodzi o złożoność. więc spróbowałem uderzyć i to było to , czego szukałem.

obraz klapsa

slap to podobny do Sublime edytor tekstowy oparty na terminalu, który stara się ułatwić edycję z terminala.


instalacja:

curl -sL https://raw.githubusercontent.com/slap-editor/slap/master/install.sh | sh
Soorena
źródło
1
Zapomniałeś wspomnieć o głównym punkcie sprzedaży, najwyższej klasy wsparciu myszy (nawet przez połączenie SSH)
blueray
2

Czy kiedykolwiek byłeś sfrustrowany tym, że twój edytor tekstu nie robił tego, co chciałeś? Rozgniewany, że nie pamiętasz ...

  • ... jak znaleźć pomoc?
  • ... co oznacza wq?
  • ... któryś z tych małych szperaczy, które czytałeś jako licencjat?

Czeka mały, odważny świat!

Chociaż opowiadamy się za naszymi ulubionymi lekkimi edytorami tekstu, pozwól mi polecić eXcellent, mały i szybki xo(exofrills) .

Jest to pojedynczy plik Python 3 i ma dobrą obsługę wyróżniania składni za pomocą Pygments (chociaż nie jest idealny w przypadku języka innego niż Python):

wprowadź opis zdjęcia tutaj

Ma również niezwykle proste i użyteczne kombinacje klawiszy, które można łatwo i łatwo zmienić na treść twojego serca:

wprowadź opis zdjęcia tutaj

Inne funkcje:

  • Mniej niż 850 linii kodu w jednym pliku!
  • Podświetlanie składni!
  • Dopasowywanie i zastępowanie wyrażeń regularnych!
  • Buforowanie historii wyszukiwania!
  • WTFPL na licencji!
  • W pełni konfigurowalny!
  • Zacznij od miejsc, które nie pochodzą!
  • Wskakuj między słowami na linii!
  • Przejdź do dowolnego miejsca w pliku!
  • Wstawianie całego pliku!
  • Przyjazny dla początkujących - być może jesteś nowy w słowach!
  • Skopiuj i wklej tekst!
  • Status linii i kolumny!
  • Tylko jeden wiersz nietekstowego miejsca do edycji!
  • Zarówno zapisywanie, jak i ładowanie!

Źródło Python3 znajduje się na github i możesz go łatwiej zainstalować, używając:

sudo apt install python3-pip
sudo pip3 install exofrills 

exofrills: twój tekst został zredagowany ... ale nadal jesteś głodny.

Oświadczenie: Nie jestem w żaden sposób związany z projektem exofrills.

kot
źródło
1
Wygląda to bardzo schludnie, +1 ode mnie. Chociaż ta liczba wykrzykników jest niepokojąca. : P
Andrea Lazzarotto
0

Chociaż nie mogę zaprzeczyć, że ja też na początku miałem problemy z vi, myślę, że można postawić argument, że vi jest bardzo łatwy do nauczenia. (Kiedy zacząłem używać Uniksa, wybór padał na vi lub emacs, więc w tamtym czasie wybrałem ed, ed był bardzo prostym edytorem liniowym, którego nauczyłem się już podczas czytania wczesnych podręczników Uniksa.) Używam vi codziennie, ale prawdopodobnie używaj tylko bardzo małego podzbioru jego funkcji.

Oto pierwszy argument przemawiający za użyciem vi: vi istnieje na wszystkich systemach, zużywa bardzo mało zasobów i może być użyteczny przy niestabilnych i wolnych połączeniach, gdzie inne edytory mogą zawieść lub mogą być wolne i nieużyteczne. Lub w sytuacjach, w których system jest zepsuty, więc klawisze strzałek nie są interpretowane poprawnie (na przykład złe ustawienia terminfo). Więc vi można użyć do naprawy plików konfiguracyjnych prowadzących do problemu, bez wpływu na problem.

A oto jak nauczyć się przydatnego podzbioru vi: Po pierwsze: przestań myśleć o vi jako interaktywnym „edytorze” GUI terminala i postrzegaj go jako język programowania do manipulowania plikami tekstowymi. Na początku „vi” oznaczało tryb VIsual, a vi ma niewidzialny odpowiednik ex, który jest dobrym miejscem do rozpoczęcia. Wpisz ex w wierszu poleceń powłoki (użyję ¬ do przedstawienia return):

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

Teraz naciśnij enter.

:¬
E749: empty buffer
:

Więc włóżmy w to coś. Wpisz „a¬” i wpisz wiersz tekstu, a następnie kropkę w wierszu:

:a¬
Hello World¬
.¬
:

To było polecenie dołączania. Łatwy, krótki i mnemoniczny. Ale fajnie byłoby zobaczyć, co znajduje się w buforze:

:%p¬
Hello World
:

To było oczywiście polecenie drukowania, p, oczywiście. % Jest skrótem zakresu linii. Każde polecenie może być poprzedzone numerem linii lub zakresem, do którego polecenie powinno się stosować. % oznacza „wszystkie linie”. $ oznacza ostatnią linię, a kropka oznacza bieżącą linię. Liczba oznacza tę konkretną linię. Zakres jest zapisywany n, m, a liczba może być dodana lub odjęta, więc. + 1, $ - 1 średnia od następnego wiersza do drugiego przedostatniego wiersza. Polecenie składające się tylko z numeru linii przechodzi do tej linii. Oto pozostały mały podzbiór poleceń, których używam:

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

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

w zapisuje wszystkie (lub wybrany zakres) wierszy do pliku.

:1d¬

usuwa wiersz 1.

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

s zastępuje wyrażenie regularne. Dobrze jest znać wyrażenia regularne!

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

q wychodzi. wq pisze i wychodzi. q! odchodzi bez pisania iw podobnym tonie, w! wymusza zapis do pliku, jeśli to możliwe.

Teraz fajny:

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

! jako polecenie filtruje wiersze do polecenia powłoki.

I w końcu:

:vi¬

wchodzi w tryb VISUAL. Nie daj się zwieść. Wygląda jak edytor, ale nadal jest tylko interaktywną powłoką programistyczną. Wystarczy spojrzeć cały czas na bufor i jeszcze kilka poleceń. W trybie wizualnym a: wyświetla monit: z trybu ex. Klawisze strzałek (jeśli działają) poruszają się, a jeśli nie, to hjkl! h w lewo, j w dół, k w górę, a ja w prawo. 0 przesuwa się do pierwszego znaku, a ^ (pomyśl regex tutaj!) Do pierwszego niebędącego spacją znaku w linii. $ (regex ponownie!) przesuwa się na koniec linii. Wpisanie: 999¬ przechodzi oczywiście do wiersza 999, podobnie jak w trybie ex.

„i” wchodzi w tryb wstawiania, który teraz wstawia znaki zamiast wierszy i kończy się naciśnięciem klawisza Escape zamiast „.¬”. „I” wstawia na początku, „a” po znaku pod kursorem, a „A” po końcu bieżącego wiersza. Zawsze wpisuj tekst, naciskając klawisz Escape. „x” usuwa znak pod kursorem, a „D” usuwa kursor z końca linii. „Y” pociąga (kopiuje) bieżący wiersz, a „P” wkleja go z powrotem. „: pu” robi to samo, ale może być poprzedzone numerem linii. „: ya” jest ekwiwalentem „Y” i ponownie, przydatne do zastosowania do zakresu linii. Wydaje mi się, że istnieje również polecenie mark, ale przyznam, że go nie pamiętam. Nie tęsknię za tym.

Powyższe jest tym, czego używam i wiem, że prawdopodobnie nie jestem bardzo „wydajnym” użytkownikiem vi. Z drugiej strony używam wszechstronności ex, na przykład do edytowania skryptów plików konfiguracyjnych. Chcesz zmienić nazwę hosta foo.bar.com na www.foobar.com w wielu plikach conf?

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

Próbuję powiedzieć, że myślę, że problem z vi polega na tym, że ludzie myślą o tym jako o trudnym edytorze. Wystarczy trochę zmienić sposób myślenia i postrzegać go jako bardzo prosty, ale również bardzo wydajny interaktywny język programowania. Jest tak potężny, że nawet przy podzbiorze dostępnych poleceń możesz go używać z wielkim efektem - nie tylko jako edytora, ale jako ogólnego, skryptowalnego narzędzia dobrze zintegrowanego z resztą Uniksa. Wątpię, by nano zrobił to wszystko - emacs ... może.

LHP
źródło
3
Przepraszam, ale ... to nie odpowiada na pytanie. OP poprosił o alternatywę dla vima i odpowiedzi powinny to zapewnić.
Andrea Lazzarotto
1
Pochwalam pracę, którą włożyłeś w tę odpowiedź, ale tak naprawdę nie odpowiada na pytanie - samouczek i wtyczka do vima w ogóle tu nie ma, ale należy do twojego bloga.
kot
Ta odpowiedź właśnie dlatego tak wielu ludzi prosi o alternatywę dla viemaków - im więcej mówimy, że są nieprzyjemni w użyciu, tym bardziej przekonani przekonani twierdzą, że staramy się z nich korzystać.
Shukri Adams
0

Jeśli potrzebujesz edytora tekstowego Sublime, takiego jak terminal z obsługą myszy, wybierz Micro , Slap lub Suplemon .

Jeśli jednak szukasz modalnego edytora tekstu, nie szukaj dalej niż Kakoune .

Blue Ray
źródło