Rösta fram t-shirt till communityt!

Edit – Windows får ny textredigerare

Permalänk
Medlem
Skrivet av Mammabrada:

Det är precis det här jag beskrev. Massa olika CTRL kombinationer som man måste memorera. Det skalar inte att memorera alla möjliga kombinationer. Och sen är det jobbigt att behöva stråcka sig till ctrl hela tiden.

ViM har ett språk som är ortogonalt och därför lättare att memorera. "d" raderar. Och sen kan du kombinera verbet "radera" med det substantiv du vill: stycke, mening, ord, tecken, etc. Det är lättare att memorera substantiv, och memorera adjektiv och sedan kombinera dem hur du vill. Det blir n+m saker att memorera. Färre knapptryckningar oxå. "3dw" går snabbt att skriva, för att radera 3 ord.

Emacs kräver att du memorerar alla kombinationer, dvs n*m olika saker att memorera. Det skalar inte.

VIM är som i Linux där du pipar massa olika kommandon som alla gör varsin sak väl. Ett Linux kommando behöver bara kunna en sak, och ska inte kunna något annat. Och sedan kombinerar du kommandona fritt via pipe.

Emacs är som Windows där du har ett monoltitiskt program som har programmerats att kunna göra alla möjliga kombinationer. Om du ska göra en viss kombination så måste du kunna just den kombinationen. Det blir jättemånga kombinationer att tvingas memorera.

Om du inte förstår storheten i detta så är det ok. Jag tänker inte tjafsa med dig varför det är snyggare med ortogonala språk. Ser man inte, så ser man inte.

Ser storheten och gillar ortogonalitet men i modern emacs markerar man hela stycket man vill ta bort och trycker på "del"-tangenten eller "←"-tangenten. Så, vill man ta bort tre ord markerar man dem och trycker på en av de tangenterna.
Finns liknande kortkommandon för alla möjliga saker men när man väl lärt sig det ena eller det andra systemet så kan man ett system och de flesta av oss håller kvar vid det. För mig blev det emacs som jag använder till det mesta som handlar bara om text. Likadant är det när jag skriver komplicerade dokument med en massa formler mm, då blir det LaTeX.
Det finns dock saker jag övergivit, t.ex. vi, SOS, TECO. P.g.a. att jag inte gillade vi så blev det aldrig av med att lära vim. Bara det att man talade om "vi improved" = "vim" gjorde att jag aldrig kom mig för med att överge emacs.
Vi kan hålla på i en evighet och jämföra, diskutera, försöka övertyga men faktum kvarstår, hur mycket jag eller du än anstränger oss kommer ingen av oss lära om. I alla fall inte jag som efter 40 år med emacs förblir emacsanvändare och troligen inte heller du eller alla andra vim-förespråkare.

Dessutom tror jag mig minnas att den här tråden handlar om MS Windows nya text-editor så det här blir mitt sista off-topic-inlägg.

Permalänk
Medlem
Skrivet av Crazy Ferret:

Hey, jag försöker påvisa hur intuitivt vim är, inte fullkomligt ologiska kortkommandon på logiskt par med Alt+F4 (men ergonomiskt).

Darnit. My bad!

Visa signatur

Citera mig för svar.
Arch Linux

Permalänk
Medlem
Skrivet av SvenskFisk:

Notepad med inloggning och bing - nej tack

Jag kör: code text.txt, men alla får göra som dom vill!

Nya Notepad är det bästa som har hänt sedan skivat bröd. Men rent generellt och i mitt arbete är det helt omöjligt att jag ska gå och installera ”code” på hundratals datorer bara för att läsa en fil. Det handlar inte om vilja men att utnyttja de verktyg som finns till förfågande.

Sen kan man ju självklart använda andra verktyg för andra uppgifter, tex kanske vscode är ett bra alternativ för programmering/scripting/editera json filer med mera men en enkel lätt tillgänglig verktyg som finns överallt ska inte underskattas. Där tror jag även Edit kommer att finna en plats.

Visa signatur

thank you, come again

Permalänk
Medlem

Emacs vs. VIM

Sorry, men jag tycker att du inte har någon koll. Vilket ju brukar vara så när man är på olika sidor.

Det är ungefär samma antal tangentnedtryckningar i VI(M) som i Emacs. Men OM du inte klara av att lära dig Emacs tangentförkortningar, så finns det flera tangentbordsbindningar som implementerar VIM tangentbordslägen. evil mode är en populär version. Finns det något motsvarande i VI(M)?

Men vi/vim är bara som det är för att det är en fulskärmstillägg på editorn ed(1). Så därför måste den gå mellan olika lägen. För det gör man med ed när man jobbar med ed. Så därför är det samma i vi(m), inte pga att det skulle vara speciellt effektivt. Jag hatar att behöva gå mellan lägen, eftersom det inte behövs längre. Om man inte vill använda ed(1).

Medans Emacs använde den modernitet som kom med fullskärmsstyrning av terminaler, dvs Ctrl och ESC (även Meta-tangenten) tangenterna. Vilket är lika avancerat som att använda Shift-tangenten för att få stora bokstäver (INGEN vettig människa använder Caps-Lock för övrigt, det var till för att Shift är så tungt på en mekanisk skrivmaskin. Så mappa om den till Ctrl om du vill ha effektivt tangentbord). Så M-8 C-k (kill line) raderar 8 rader, så även C-u 8 C-k (lika många tangentnedtryckningar som vi(m)). Det är två eller tre tangentnedtryckningar. M- med siffra skickar den siffran som argument till kommandot efter. C-k raderar en eller så många rader som man skickar i argumentet (och lägger i killbufferten). Vill du klistra in dessa 8 rader, så gör bara C-y (yank), eftersom de togs bort som ett block. Vill du byta ut den mot en annan text du klippt ut, exempelvis med C-k, så behöver du bara göra M-y (circulate kill buffer), tills du hittar rätt utklipp. Notera bägge är baserade på y. Inte massa olika orelaterade tangenter. Det finns alltså logik bakom Emacs kommandon. Medans VI(M) förutsätter att du använder ett amerikanskt QWERTY-tangentbord. Dvs layouten är viktig, inte för Emacs.

Om du vill ogöra ett kommando, så kan du gör det med många kommandon, men C-x u fungerar (undo).

Vill dy gå ett tecken, så använd C-f (forward). Om du vill gå 8 tecken fram så gör du M-8 C-f. Vill du gå ett ord framåt, så använd M-f (word forward), vilket som du ser är baserat på C-f. Vill du gå ett tecken bakåt, gör C-b (back), vill du gå ett ord bakåt, så gissa vad det är? Gissade du på M-b så gissade du rätt.

Vill du ta bort ordet till vänster/under markören, så är det Del. Vill du ta bort ett ord, så kan du gissa. Gissade du M-Del så gissade du rätt. Vill du ta bort före markören, så är det Backspace och ord M-Backspace.

Så nej, det är inte n*m antal saker som du behöver komma ihåg.

Om du tycker att Emacs tar lång tid att starta, så startar du Emacs i Server mode, så kan du använda emacsclient för att redigera en fil. Bara att sätta EDIT till Emacs, så fungerar det snabbt och enkelt. Tom snabbare än VI(M).

Vill du öppna en fil, så använd C-x C-f (extended, find file), vill du spara C-x C-s (extended, save file). Vill du använda en filhanterare så öppnar du istället en katalog, och du kommer in i Dired-mode. Där använder du samma kommandon för att flytta runt och radera filer som ovan. Du kan även markera flera filer och göra kommandon på dem. För att begrava/avsluta Dired, så använd bara q (quit).
Vill du redigera en fil på din server, och kan ansluta med SSH, så öppna filen med filnamnet /ssh:login@machine:/filnamn så kommer filen att hämtas och redigeras in din lokala maskin. Vill du redigera som root, så öppnar du bara /sudo::/filnamn. Sedan när du spar (C-x C-s) så kommer den att skickas över och sparas på den fil som den hämtades. Vill du ha ett skal igång, så gör du exempelvis M-x shell. Då får du ett skall i samma katalog som filen du körde kommandot i. Vilket om du öppnat filen någon annan stans är vara skalet körs. Dvs på servern eller som root.

För att inte tala om Org-mode för dokumentation och Litteral-programming. Eller Magit för att hantera Git. Magit är så bra, att man kan tom köra Emacs med bara den, och redigera i nano(1) om man vill.

Men TL;DR

Kommandona och tangentnedtryckningarna du behöver lära dig för att köra Emacs är ungefär lika många som i VI(M). Och i Emacs kan du tom köra evil-mode och få VIM tangentbordskortkommandon. Men varför? Finns det Emacs-tangenrbordbindningar i VI(M)? Nej, för att enda anledningen att köra vi(m) är tangentbordsbindningarna.

I Emacs kan du redigera filer direkt i arkiv, som root eller via ssh bara genom att ange vad du vill göra när du öppnar filen. Så för att redigera ett tar-arkiv på din server, så kan du göra så här C-x C-f /ssh:user@login:fil.tar och packas filen upp och visas i Dired mode. Och därifrån kan du enkelt öppna och redigera, ta bort eller lägga till filer. När du sedan spar Dired (C-x C-s) så packas arkivet ihop och sänds över till servern.

Så det enda du behöver på en server för att redigera filer med Emacs är ssh, bash och vanliga kommandon som rm, tar, ls etc. Ingen Emacs.

/Jxn

Skrivet av Mammabrada:

Det är precis det här jag beskrev. Massa olika CTRL kombinationer som man måste memorera. Det skalar inte att memorera alla möjliga kombinationer. Och sen är det jobbigt att behöva stråcka sig till ctrl hela tiden.

ViM har ett språk som är ortogonalt och därför lättare att memorera. "d" raderar. Och sen kan du kombinera verbet "radera" med det substantiv du vill: stycke, mening, ord, tecken, etc. Det är lättare att memorera substantiv, och memorera adjektiv och sedan kombinera dem hur du vill. Det blir n+m saker att memorera. Färre knapptryckningar oxå. "3dw" går snabbt att skriva, för att radera 3 ord.

Emacs kräver att du memorerar alla kombinationer, dvs n*m olika saker att memorera. Det skalar inte.

VIM är som i Linux där du pipar massa olika kommandon som alla gör varsin sak väl. Ett Linux kommando behöver bara kunna en sak, och ska inte kunna något annat. Och sedan kombinerar du kommandona fritt via pipe.

Emacs är som Windows där du har ett monoltitiskt program som har programmerats att kunna göra alla möjliga kombinationer. Om du ska göra en viss kombination så måste du kunna just den kombinationen. Det blir jättemånga kombinationer att tvingas memorera.

Om du inte förstår storheten i detta så är det ok. Jag tänker inte tjafsa med dig varför det är snyggare med ortogonala språk. Ser man inte, så ser man inte.

Permalänk
Medlem

vim wannabe?

Visa signatur

Nikon Z6 • Nikkor AF-S 14-24/2.8G ED • Nikon Z 24-70/4 S • Nikkor AF-S 200-500/5.6E ED VR • Manfrotto BeFree Advanced Twist • Benro TMA47AL • iOptron GEM28 • William Optics Redcat 51 v2 • Lunt LS50THa/B600 • Player One Neptune-M • Player One Mars-C • GSO 6" Classical Cassegrain

Permalänk

Så otroligt skönt att 80talet äntligen är slut och vi i kommande dos 5.0 får en inbyggt texteditor som heter Edit. Denna testeditor kommer jag använda mycket på 90talet, kanske ända in på 2000talet.

Vops. Jag såg fel på klockan, vi är vid å 2025 nu. Ja, coolt att nya Windows få en texteditor i kommoandopromten med exakt samma namn som den texteditor de tidigare hade. Funktionsmässigt verkar de inte skilja sig så mycket,

Permalänk
Medlem

Om nu gamla Edit är tillbaka, kan inte även Qbasic komma tillbaka? (vilket bestod en editor som såg ut precis som Edit)

..eller kanske något mer modernt, QJavaScript kanske

Permalänk
Medlem

Minns dåligt, men var inte "edit" något som fanns waaay back vid typ win 95 eller något? Så detta är basically en nostalgisk återställning?

Visa signatur
Permalänk
Medlem
Skrivet av dpom86:

Minns dåligt, men var inte "edit" något som fanns waaay back vid typ win 95 eller något? Så detta är basically en nostalgisk återställning?

Drog igång Windows 95 i VirtualBox här för att jämföra

MS-DOS Editor (vänster) och Microsoft Edit (höger) skiljer sig relativt stort åt, då den senare har stöd för UTF8, CRLF/LF samt lite annat smått och gott (RegEx, Tab/Spaces, flera dokument öppna samtidigt m.m.). Även betydligt kraftfullare än Notepad.

Edit:
Kan tillägga att även Windows 7 32-bit kör samma version av MS-DOS Editor Finns även i Windows 10 32-bit, men blockeras då det är en 16-bit applikation.

Permalänk
Medlem
Skrivet av AJXn:

Sorry, men jag tycker att du inte har någon koll. Vilket ju brukar vara så när man är på olika sidor.

Det är ungefär samma antal tangentnedtryckningar i VI(M) som i Emacs. Men OM du inte klara av att lära dig Emacs tangentförkortningar, så finns det flera tangentbordsbindningar som implementerar VIM tangentbordslägen. evil mode är en populär version. Finns det något motsvarande i VI(M)?

Men vi/vim är bara som det är för att det är en fulskärmstillägg på editorn ed(1). Så därför måste den gå mellan olika lägen. För det gör man med ed när man jobbar med ed. Så därför är det samma i vi(m), inte pga att det skulle vara speciellt effektivt. Jag hatar att behöva gå mellan lägen, eftersom det inte behövs längre. Om man inte vill använda ed(1).

Medans Emacs använde den modernitet som kom med fullskärmsstyrning av terminaler, dvs Ctrl och ESC (även Meta-tangenten) tangenterna. Vilket är lika avancerat som att använda Shift-tangenten för att få stora bokstäver (INGEN vettig människa använder Caps-Lock för övrigt, det var till för att Shift är så tungt på en mekanisk skrivmaskin. Så mappa om den till Ctrl om du vill ha effektivt tangentbord). Så M-8 C-k (kill line) raderar 8 rader, så även C-u 8 C-k (lika många tangentnedtryckningar som vi(m)). Det är två eller tre tangentnedtryckningar. M- med siffra skickar den siffran som argument till kommandot efter. C-k raderar en eller så många rader som man skickar i argumentet (och lägger i killbufferten). Vill du klistra in dessa 8 rader, så gör bara C-y (yank), eftersom de togs bort som ett block. Vill du byta ut den mot en annan text du klippt ut, exempelvis med C-k, så behöver du bara göra M-y (circulate kill buffer), tills du hittar rätt utklipp. Notera bägge är baserade på y. Inte massa olika orelaterade tangenter. Det finns alltså logik bakom Emacs kommandon. Medans VI(M) förutsätter att du använder ett amerikanskt QWERTY-tangentbord. Dvs layouten är viktig, inte för Emacs.

Om du vill ogöra ett kommando, så kan du gör det med många kommandon, men C-x u fungerar (undo).

Vill dy gå ett tecken, så använd C-f (forward). Om du vill gå 8 tecken fram så gör du M-8 C-f. Vill du gå ett ord framåt, så använd M-f (word forward), vilket som du ser är baserat på C-f. Vill du gå ett tecken bakåt, gör C-b (back), vill du gå ett ord bakåt, så gissa vad det är? Gissade du på M-b så gissade du rätt.

Vill du ta bort ordet till vänster/under markören, så är det Del. Vill du ta bort ett ord, så kan du gissa. Gissade du M-Del så gissade du rätt. Vill du ta bort före markören, så är det Backspace och ord M-Backspace.

Så nej, det är inte n*m antal saker som du behöver komma ihåg.

Om du tycker att Emacs tar lång tid att starta, så startar du Emacs i Server mode, så kan du använda emacsclient för att redigera en fil. Bara att sätta EDIT till Emacs, så fungerar det snabbt och enkelt. Tom snabbare än VI(M).

Vill du öppna en fil, så använd C-x C-f (extended, find file), vill du spara C-x C-s (extended, save file). Vill du använda en filhanterare så öppnar du istället en katalog, och du kommer in i Dired-mode. Där använder du samma kommandon för att flytta runt och radera filer som ovan. Du kan även markera flera filer och göra kommandon på dem. För att begrava/avsluta Dired, så använd bara q (quit).
Vill du redigera en fil på din server, och kan ansluta med SSH, så öppna filen med filnamnet /ssh:login@machine:/filnamn så kommer filen att hämtas och redigeras in din lokala maskin. Vill du redigera som root, så öppnar du bara /sudo::/filnamn. Sedan när du spar (C-x C-s) så kommer den att skickas över och sparas på den fil som den hämtades. Vill du ha ett skal igång, så gör du exempelvis M-x shell. Då får du ett skall i samma katalog som filen du körde kommandot i. Vilket om du öppnat filen någon annan stans är vara skalet körs. Dvs på servern eller som root.

För att inte tala om Org-mode för dokumentation och Litteral-programming. Eller Magit för att hantera Git. Magit är så bra, att man kan tom köra Emacs med bara den, och redigera i nano(1) om man vill.

Men TL;DR

Kommandona och tangentnedtryckningarna du behöver lära dig för att köra Emacs är ungefär lika många som i VI(M). Och i Emacs kan du tom köra evil-mode och få VIM tangentbordskortkommandon. Men varför? Finns det Emacs-tangenrbordbindningar i VI(M)? Nej, för att enda anledningen att köra vi(m) är tangentbordsbindningarna.

I Emacs kan du redigera filer direkt i arkiv, som root eller via ssh bara genom att ange vad du vill göra när du öppnar filen. Så för att redigera ett tar-arkiv på din server, så kan du göra så här C-x C-f /ssh:user@login:fil.tar och packas filen upp och visas i Dired mode. Och därifrån kan du enkelt öppna och redigera, ta bort eller lägga till filer. När du sedan spar Dired (C-x C-s) så packas arkivet ihop och sänds över till servern.

Så det enda du behöver på en server för att redigera filer med Emacs är ssh, bash och vanliga kommandon som rm, tar, ls etc. Ingen Emacs.

/Jxn

Jag började använda Emacs för längesen på KTH. Kunde Emacs ganska bra och använde det som huvudeditor under flera år. Du behöver inte förklara för mig hur Emacs funkar.

Men Vim är mycket intuitivare och bättre. Du klagar på att man har olika lägen i Vim, men det är ju en av de stora poängerna med Vim. Det är ju genialiskt.

Emacs har också olika lägen, men sämre modell. Du börjar med CTRL för att tala om för Emacs att här kommer kommando som inte ska visas på skärmen. Så om du ska skriva massa kommandon i Emacs, måste du alltid prefixa alla kommandon med CTRL. Det blir massa CTRL tryckningar hela tiden, varje kommando. Det blir n*2 kommandon att memorera.

I Vim trycker du på ESC (eller mappar om till CAPS LOCK) och sen är du i kommando läge och slipper prefixa hela tiden. Allt tolkas som kommandon. Det är ju genialiskt. Det blir 2n kommandon att memorera. "3dw" för att delete 3 word, är lättare att förstå, än CTRL X och massa andra obegripliga CTRL kommandon som inte har någon som helst koppling till vad du försöker göra och knapp tryckningarna. Till slut tar ju Emacs slut på CTRL kombinationer så Emacs måste välja knappar som ingen använt ännu, för att göra saker. Det spårar ur. Vim har sina substantiv och adjektiv som man kombinerar fritt precis som "pipe" i linux.

Jaja, om du inte uppskattar ortogonalitet så gör du inte det. Smaken är som baken.

Permalänk
Medlem
Skrivet av serafim:

Ser storheten och gillar ortogonalitet men i modern emacs markerar man hela stycket man vill ta bort och trycker på "del"-tangenten eller "←"-tangenten. Så, vill man ta bort tre ord markerar man dem och trycker på en av de tangenterna..

Och hur markerar du dessa tre ord? Med musen??? Eh?

Om du vill radera 123st ord i Vim så skriver du "123dw". Delete Word fast 123 gånger. Busenkelt. Logiskt. Totalt fem st knappar, dvs färre knapptryckningar än i Emacs.

Permalänk
Medlem
Skrivet av Mammabrada:

Och hur markerar du dessa tre ord? Med musen??? Eh?

Om du vill radera 123st ord i Vim så skriver du "123dw". Delete Word fast 123 gånger. Busenkelt. Logiskt. Totalt fem st knappar, dvs färre knapptryckningar än i Emacs.

En dragning med musen och en knapptryckning är snabbare och jag slipper sitta och räkna till 123.
(Hoppsan, nu har jag skrivit ett till off-topic-inlägg trots att jag lovade låta bli!!)

Permalänk
Medlem
Skrivet av serafim:

En dragning med musen och en knapptryckning är snabbare och jag slipper sitta och räkna till 123.
(Hoppsan, nu har jag skrivit ett till off-topic-inlägg trots att jag lovade låta bli!!)

Det är ju då tur att dessa 123 ord troligen utgörs av meningar med skiljetecken, rader eller annat så att man slipper sitta och räkna till 123. Det är ju inte jätteofta man sitter och skriver uppsatser i den här typen av program, såvida det inte är LaTeX eller någon dokumentation i markdown och således kan vara lite frikostigare med radbryt. Det är ju även vid den typen av skrivande på en laptop som man inte sällan sitter utanför hemmet och med glädje stänger av trackpaden ...

Ja, "en dragning med musen" är ibland snabbare, men det innebär att du behöver flytta ena handen till musen, lokalisera muspekaren (och efter den tiden är vi andra oftast redan klara ), med precision göra din dragning, flytta tillbaka handen till en tangent som ligger "off", flytta tillbaka handen till skrivställning, och återuppta skrivandet. Framför allt innebär det ett avbrott i det man gör - genererar textmassa i någon form.

Och för att bränna din halmgubbe lite till så har jag hört att man kan använda musen i Vim också. Jag har dock aldrig behövt fundera på varför och eventuellt hur.

Men för all del, fortsätt använda musen om det känns bra för dig. Det är ingen som tänker hindra dig! Men gör det med vetskapen att det är ett suboptimalt beteende och att det gör dig till en något sämre människa. (Ja, den sista meningens seriositet var exakt 0.)

Visa signatur

Desktop: AMD 3950X, 64 GB RAM, Nvidia 4070 ... (Ubuntu 24.04)
Serverdesktop: AMD 5600G, 96 GB RAM (Proxmox)
Labbmiljö: Supermicro SC825 X9DRi-F 2xE5-2667v2 64GB RAM
Kamera: Canon R5, Canon RF 100-500, Laowa 100mm f/2.8, Canon RF 24-70 f/2,8

OSZAR »