🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.os.advocacy
Article #1266

Re: vi (Re: O wyzszosci znaku zachety nad GUI)

#1266
From: Qrczak
Date: Fri, 12 Dec 1997 17:55
103 lines
5990 bytes
On Thu, 11 Dec 1997, M.C.Mar wrote:

> Jakis milosnik GUI wypowiadal sie o prostocie dwuch klawiszy nad
> klawiatura. Ekstrapolujac: po co mi nowe klawisze: end, home, pejdzup,
> strzalki, skoro z juz istniejacych zostaklo mi jeszcze tyle wolnych
> kombinacji...?

Nie jestem żadnym miłośnikiem GUI! Twój argument dla mnie jest zupełnie
bezsensowny.

Po prostu jestem przyzwyczajony do tego, że klawisz "strzałka w lewo"
przesuwa kursor w lewo. Nie ma w tym nic dziwnego, takie przyzwyczajenia
ma chyba 95% użytkowników komputerów.

> > - Backspace kasuje tylko to, co ostatnio dopisałem. Jeśli nacisnę
> > i 123 lewo prawo 456 Backspaceee... to skasuje tylko 456.
> > 
> A po co ma kasowac co innego? Chyba edytuje to co napsalem ostatnio i nie
> chce, zeby mi sie pozmienialo co innego.

Jakiś dziwny jesteś. Gdybym nie chciał zmieniać więcej, nie naciskałbym
przecież Backspace! A jeśli "dziesięć sekund temu" to nie jest "ostatnio"
tylko dlatego, że w międzyczasie przesunąłem kursor o jeden znak, to ja
dziękuję za taki edytor...

> Gwoli jasnosci vim (nie elvis) pod Linuxem pozwala na prace wlasciwie w
> jednym trybie, tzn mozna "edytowac", kasowac pisac itp. po wszystkim w
> jednym trybie (ale wlasciwie wtedy mamy notepada a nie edytor).

Chyba dość mało można. Tylko podstawowe operacje. I nawet Backspace nie
działa jak trzeba.

> > - Backspace i Delete nie kasują końca linii (ja wiem, że jest Esc J, ale
> > wszystkie normalne edytory traktują koniec linii podobnie do pozostałych
> > znaków).
> 
> Mi to nie przeszkadza, ale...

Bo masz przyzwyczajenia spaczone przez vi :-)

> > - Zaznaczaniem bloków przez v nie można dowolnie zaznaczać końców linii.
>
> A V, ^v, ^V probowales?

To nie wystarcza. Ja chcę po prostu zaznaczyć fragment tekstu od danego
znaku do innego znaku, przy czym końce linii mają być traktowane jak
normalne znaki. Jeśli zakończę blok w danej linii, to jej koniec nie jest
zaznaczany. A jeśli zakończę na początku następnej, to koniec poprzedniej
należy do bloku. Ułatwione zaznaczanie pełnych linii może sobie być jako
dodatkowa możliwość. Tak jest chyba we wszystkich innych edytorach! Tylko
vi musiał to udziwnić. Dlatego właśnie go nie trawię.

> > - W trybie komend nie można ustawić się na końcu linii.
> 
> Nie rozumiem tego??? Co masz na mysli? (i po co?).

Na przykład żeby zacząć dopisywać tekst w odpowiednim miejscu. A tak to
na końcu linii trzeba "a", a na początku trzeba "i". Bezsens.

> > - Esc (wyjście z trybu dopisywania) cofa kursor jeden znak w lewo.
> > 
> NIE COFA! Ustawia sie na antualnym! To pecety przyzwyczaily nas do spacji
> mrugajacej za ostatnim napisanym przez nas znakiem! Wtedy kursor wyglada
> poprostu tak jak w trybie insert i jest na ostatnim znaku (dalej nie ma
> nic jesli jest to ostatnia linia, a jesli nie, to tez nie ma NIC bo jest
> tam niewidoczny znak konca linii).

Właśnie że cofa. Który znak jest tym "aktualnym" w trybie insert? Który
znak jest znakiem aktualnym w pustej linii (w którymkolwiek trybie)? W
pustej linii vi wyjątkowo pozwala ustawić kursor za ostatnim znakiem (bo
nie ma innego wyjścia). Świadczy to o niekonsekwencji tej konwencji.

Chyba rozumiem, na czym polega podstawowy błąd vi. Otóż w vi jest pojęcie
"bieżącego znaku". Tymczasem kursor nie powinien być _na_ jakimś znaku,
tylko _między_ znakami! Tak jest w prawie każdym innym edytorze. Tyle
tylko, że w trybie tekstowym, ponieważ kursor musi wyglądać tak jak
wygląda, fizycznie jest wyświetlany na znaku bezpośrednio za kursorem.

Jeśli kursor jest między znakami, to wszystko jest jasne. Wpisywanie
znaków dopisuje je właśnie w to miejsce. Backspace kasuje znak na lewo od
kursora, Delete - na prawo od kursora. Home ustawia się przed pierwszym
znakiem linii, End - za ostatnim znakiem linii. Zaznaczanie bloku też jest
od miejsca między znakami do innego takiego miejsca - nie ma problemu z
brzegiem. Koniec linii w pewnym sensie też jest znakiem, tzn. kursor może
być albo między ostatnim znakiem linii a końcem linii, albo między końcem
poprzedniej linii a pierwszym znakiem następnej. Backspace na początku
linii kasuje znak końca linii sklejając je w jedną, a Delete na końcu -
analogicznie. Takie podejście jest IMHO najbardziej naturalne ze
wszystkich.

> > - End działa jak ~ (AFAIK jest poprawnie wpisany w termcapie i terminfo, 
> > z innymi programami działa).
> > 
> A po co Ci end? To $ nie wystarcza??? Nie rozumiem...

Chciałeś powiedzieć: Esc $ i
Dziękuję bardzo, wolę End.

--
                                QRCZAK
    __("<             Marcin Kowalczyk
    \__/             qrczak@knm.org.pl
     ^^      http://kki.net.pl/qrczak/
Technical Details
Message-ID: <Pine.LNX.3.96.971212183131.16995C-100000@qrnik.knm.org.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!pingwin.icm.edu.pl!news.icm.edu.pl!qrnik.knm.org.pl!qrnik.knm.org.pl!qrczak
References: <661pfv$o0v$1@roadrunner.micro-net.net> <34ac87d6.28075021@news-tpnet.icm.edu.pl> <Pine.LNX.3.96.971205185234.5846H-100000@qrnik.knm.org.pl> <66bn09$cmc$1@sun1000.pwr.wroc.pl> <Pine.LNX.3.96.971206200705.4645B-100000@qrnik.knm.org.pl> <66gp5e$int$3@sun1000.pwr.wroc.pl> <Pine.LNX.3.96.971208202318.4750G-100000@qrnik.knm.org.pl> <66mo3g$1o3@blaszok.knurow.us.pl> <Pine.LNX.3.96.971211171459.4168H-100000@qrnik.knm.org.pl> <Pine.GSO.3.96.971211222010.17996q-100000@dollar.it.com.pl>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!pingwin.icm.edu.pl!news.icm.edu.pl!qrnik.knm.org.pl!qrnik.knm.org.pl!qrczak
From: Qrczak <qrczak@knm.org.pl>
Newsgroups: pl.comp.os.advocacy
Subject: Re: vi (Re: O wyzszosci znaku zachety nad GUI)
Date: Fri, 12 Dec 1997 18:55:27 +0100
Organization: Klub Nieszkodliwych Manjaków
Lines: 104
Message-ID: <Pine.LNX.3.96.971212183131.16995C-100000@qrnik.knm.org.pl>
References: <661pfv$o0v$1@roadrunner.micro-net.net> <34ac87d6.28075021@news-tpnet.icm.edu.pl> <Pine.LNX.3.96.971205185234.5846H-100000@qrnik.knm.org.pl> <66bn09$cmc$1@sun1000.pwr.wroc.pl> <Pine.LNX.3.96.971206200705.4645B-100000@qrnik.knm.org.pl> <66gp5e$int$3@sun1000.pwr.wroc.pl> <Pine.LNX.3.96.971208202318.4750G-100000@qrnik.knm.org.pl> <66mo3g$1o3@blaszok.knurow.us.pl> <Pine.LNX.3.96.971211171459.4168H-100000@qrnik.knm.org.pl> <Pine.GSO.3.96.971211222010.17996q-100000@dollar.it.com.pl>
NNTP-Posting-Host: ppp2-cst52.warszawa.tpnet.pl
Mime-Version: 1.0
In-Reply-To: <Pine.GSO.3.96.971211222010.17996q-100000@dollar.it.com.pl>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit