Linux oferuje wiele alternatyw dla konsolowych edytorów tekstu. Wśród nich:
vim
: Potężny i lekki edytor, wywodzący się z BSD. VI iMproved.
emacs
: Podstawowy i ciężki edytor, wywodzący się z projektu GNU.
Autentyk RMS-a (Richarda M. Stallmana).
xemacs
: Emacs: Następne pokolenie, pochodzący od Lucid.
mcedit
: GNU edytor dla początkujących. Identyczny z wewnętrznym
edytorem z mc
. Zobacz Edytor w MC, Rozdział 4.2.5.
ae
: Domyślny mały edytor (Potato). Należy go unikać.
nano
: Domyślny mały edytor (Woody). Naśladuje pico
.
joe
: Dla fanów czasów WordStara lub TurboPascala.
jed
: Szybki, w pełni wyposażony, obsługiwany przez menu, ze
skrótami klawiszowymi Emacsa.
jove
: Bardzo mały edytor ze skrótami klawiszowymi Emacsa.
nvi
: Nowy vi. Błąd w błąd kompatybilny z oryginalnym vi.
Aby zmienić domyślny edytor, użyj update-alternatives --config editor. Wiele programów używa również zmiennych środowiskowych takich jak EDITOR lub VISUAL aby zdecydować, którego edytora użyć. Zobacz Edytor w MC, Rozdział 4.2.5.
Także kilka edytorów środowiska X Window jest godnych uwagi:
gvim
: Vim z interfejsem graficznym (Pakiety vim
i
vim-gtk
).
emacs
: Jedyny prawdziwy Emacs (automatycznie wykrywa X Window).
xemacs
: Emacs następnej generacji (automatycznie wykrywa X
Window).
Wywołania tych klientów X zawierają standardowe opcje, takie jak -fn a24, które ułatwiają życie starszym użytkownikom, takim jak ja :) Zobacz Klienty X, Rozdział 9.4.4.
Istnieje kilka edytorów umieszczonych w katalogu /bin
. Jeden z
nich powinien być zainstalowany do prostego edytowania plików, gdy
/usr
jest nieosiągalne.
elvis-tiny
: Minimalny edytor vi (vi
aby uruchomić)
nano-tiny
: Minimalny edytor różny od vi (nano-tiny
aby uruchomić)
ed
: Minimalny edytor (zawsze obecny, ale trudny w użyciu)
Przeczytaj dokument „VIM - main help file” wciskając <F1> podczas pracy programu.
<F1> Pomoc <esc> Powrót do normalnego trybu V Tryb wizualny i Tryb wprowadzania : Polecenia linii poleceń :set tw=72 Ustawia szerokość tekstu na 72 <F11> Tryb wprowadzania (wklejania) :r! date -R Wstaw datę zgodną z RFC-822 qa Zapisz sekwencję klawiszy w rejestrze a q Zatrzymaj zapisywanie sekwencji klawiszy @a Wykonaj sekwencję klawiszy z rejestru a :edit foo.txt Edytuj inny plik przez wczytanie foo.txt :wnext Zapisz bieżący plik i edytuj następny plik
q i @ mogą być używane do zapisywania i odtwarzania prostych makr. Na przykład, aby utworzyć makro, które wstawia znaczniki pochyłości HTML wokół słowa pod kursorem, możesz wpisać qii<i>^[ea</i>^[q (gdzie ^[ jest klawiszem ESC). Gdy później ustawisz kursor na początku słowa i wpiszesz @i, zostaną dodane znaczniki <i> i </i>.
Zobacz również Używanie GnuPG z Vimem, Rozdział 14.4.2.
<F1> Pomoc <F10> Menu C-u M-! date -R Wstaw datę zgodną z RFC-822
uruchom edytor: emacs plik vim plik uruchom w trybie zgodności z vi: vim -C uruchom w trybie niezupełnie zgodnym z vi: vim -N uruchom z opcjami domyślnymi: emacs -q vim -N -u NONE
wyjście: C-x C-c :qa /:wq /:xa /:q! Powrót/tryb poleceń: C-g <esc> Do tyłu (w lewo): C-b h Do przodu (w prawo): C-f l W dół: C-n j W górę: C-p k początek linii(^): C-a 0 koniec linii($): C-e $ Polecenia wielokrotne: C-u nnn polec nnn polecenie Polecenia wielokrotne: M-cyfra polecenie zapisz plik: C-x C-s :w plik początek bufora: M-< 1G koniec bufora: M-> G przewiń 1 ekran do przodu: C-v ^F przewiń 1/2 ekranu do przodu: ^D przewiń 1 linię do przodu: ^E przewiń 1 ekran do tyłu: M-v ^B przewiń 1/2 ekranu do tyłu: ^U przewiń 1 linię do tyłu: ^Y przewiń inne okno: M-C-v skasuj w miejscu kursora: C-d x skasuj od kurs. do końca linii: C-k D przeszukiwanie w przód: C-s przeszukiwanie wstecz: C-r wyszukaj w przód: C-s enter / wyszukaj wstecz: C-r enter ? szukanie wyrażeń regularnych: M-C-s szukanie wyrażeń reg. wstecz: M-C-r znajdź wyrażenie regularne: M-C-s enter / znajdź wyrażenie reg. wstecz: M-C-r enter ? Pomoc: C-h C-h :help Pomoc Apropos: C-h a objaśnienia klawiszy: C-h b :help [klawisz] Pomoc (Info): C-h i Pomoc Główny tryb: C-h m Pomoc samouczek: C-h t :help howto Cofnij (Undo): C-_ u Anuluj cofnięcie (Redo): C-f ^R Zaznacz pozycję kursora: C-@ m{a-zA-Z} Zmień zaznaczenie i pozycję: C-x C-x Idź do znacznika w bieżącym pliku: '{a-z} Idź do znacznika w dowolnym pliku: '{A-Z} kopiuj obszar: M-w {w wizualnym}y usuń obszar: C-w {w wizualnym}d Wklej i zachowaj bufor: C-y Wklej z bufora usuniętych: M-y p zmień obszar na duże litery: C-x C-u {w wizualnym}U zmień obszar na małe litery: C-x C-l {w wizualnym}u Wstaw znak specjalny: C-q numer ósemkowo/sekwencja klawiszy ^V dziesiętnie/sekwencja klawiszy zastąp: M-x replace-string :%s/aaa/bbb/g zastąp wyrażenie regularne: M-x replace-regexp :%s/aaa/bbb/g zastąp z potwierdzeniem: M-% :%s/aaa/bbb/gc zastąp z potwierdzeniem: M-x query-replace zastąp wyrażenie reg. z potwierdzeniem: M-x query-replace-regexp Otwórz plik: C-x C-f :r plik Zapisz plik: C-x C-s :w Zapisz wszystkie bufory: C-x s :wa Zapisz jako: C-x C-w plik :w plik zmień bufor: C-x b wyświetl bufory: C-x C-b :buffers Przełącz na tylko-do-odczytu: C-x C-q :set ro zapytaj i usuń bufor: C-x k Podziel pionowo: C-x 2 :split Podziel poziomo: C-x 3 :vsplit (wersja 6) Przenieś do innego okna: C-x o ^Wp Usuń to okno: C-x 0 :q Skasuj inne okno (okna): C-x 1 ^Wo uruchom kompilację w tle: M-x compile usuń kompilację w tle: M-x kill-compilation uruchom make :make Makefile sprawdź informacje o błędach: C-x` :echo errmsg uruchom powłokę logując wyjście: M-x shell :!script -a tmp ...wyczyść znaki backspace, ... :!col -b <tmp >record ...zapisz/przywołaj zapis powłoki: C-x C-w record :r record uruchom powłokę: M-! sh :sh uruchom polecenie: M-! cmd :!cmd uruchom polecenie i wstaw: C-u M-! cmd :r!cmd uruchom filtr: M-| plik {wizualny}:w file uruchom filtr i wstaw: C-u M-| filter {wizualny}:!filter pokaż opcję: :se[t] {opcja}? przywróć wartość domyślną opcji :se[t] {opcja}& ustaw opcję logiczną (boolean) :se[t] no{opcja} przełącz opcję logiczną (boolean) :se[t] inv{option} zawiń tekst na 72. kolumnie :se tw=72 nie zawijaj :se tw=0 automatycznie wcinaj :se ai rozwijaj tabulator :se et ustaw znaki komentarza (mail) :se comments=n:>,n:\| uruchom GDB M-x gdb opisz tryb GDB C-h m rusz się o jedną linię M-s następna linia M-n rusz się o jedną instrukcję M-i zakończ bieżącą ramkę stosu C-c C-f kontynuuj M-c podnieś ramki argumentów M-u upuść ramki argumentów M-d skopiuj ilość od punktu, wstaw na końcu: C-x & ustaw pułapkę C-x SPC
W celu użycia wszystkich funkcji Vima oraz podświetlania składni, należy dodać
następujące linie do ~/.vimrc
lub /etc/vimrc
:
set nocompatible set nopaste set pastetoggle=<f11> syn on
Tryb wklejania umożliwia unikanie wpływu automatycznego wcinania przy operacjach wytnij-i-wklej w terminalu. Robi on więcej niż proste „:set noai”.
Jeżeli interesuje Cię integracja z GnuPG, zobacz Używanie GnuPG z Vimem, Rozdział 14.4.2.
apt-get install exuberant-ctags i uruchom ctags
na
plikach źródłowych. Wpisz :tag nazwa_funkcji w Vimie,
aby przeskoczyć do linii w której nazwa_funkcji się zaczyna.
Znaczniki działają dla C, C++, Javy, Pythona i wielu innych języków.
Emacs posiada te same możliwości ctags.
so \$VIMRUNTIME/syntax/2html.vim wywołane z linii poleceń Vima zamieni podświetlany tekst na kod HTML. Zapisz używając :w plik.html i :q. Użytecznie dla kodu w języku C itd.
vimie
vim
może edytować wiele plików w środowisku z wielokrotnie
podzielonym ekranem. W celu uzyskania szczegółowych informacji, wpisz
:help usr_08.txt.
Aby rozdzielić ekran między różne pliki, wpisz w lini poleceń vi:
:split inny-plik :vsplit inny-plik
Lub w linii poleceń powłoki:
$ vi -o file1.txt file2.txt # Podział poziomy $ vi -O file1.txt file2.txt # Podział pionowy
wywoła to vi podzielonego na wiele okien.
$ vimdiff file.txt~ file.txt # sprawdza ostatnie zmiany w file.txt $ vimdiff file.en.sgml file.fr.sgml # sprawdza zamiany w przekładzie/tłumaczeniu $ gvimdiff file.txt~ file.txt # w środowisku X Window
spowoduje wyświetlenie ładnego widoku zmian między oryginałem i kopią zapasową. W przypadku SGML-a dopasowuje znaczniki, więc porównywanie tłumaczeń w tym trybie działa bardzo dobrze.
Specjalne ruchy kursora wywoływane przez Ctrl-W:
Ctrl-W + zwiększa rozmiar okna Ctrl+W - zmniejsza rozmiar okna Ctrl-W h przejdź do okna po lewej Ctrl-W j przejdź do okna poniżej Ctrl-W k przejdź do okna powyżej Ctrl-W l przejdź do okna po prawej ...
Aby kontrolować przewijanie ekranu użyj następujących opcji:
:set scrollbind :set noscrollbind
Debian Reference
CVS, poniedziałek, 3 kwiecień 2005, 22:58:23 UTCosamu@debian.org
fenio@o2.pl