Site Overlay

aliquote

Detta inlägg handlar om Emacs och (Neo)vim, men titeln är förstås bara ett skämt: Jag använder båda redigeringsverktygen, även om det mesta av mitt programmeringsarbete sker i Emacs. Jag har tillbringat de senaste veckorna med att endast använda Emacs, Safari och iTerm2 (mest för ssh-grejer). Jag började använda Vim för att bli mer bekant med modal redigering (trots vad jag fortfarande tycker om det) och relevanta mappningar. Eftersom Dooms standardinställningar mestadels är Evil-centrerade tänkte jag att detta skulle vara ett bra tillfälle att lära mig mer om visuella och normala lägen. Vim erbjuder en mycket bättre upplevelse i en terminal, jämfört med Emacs som körs i icke-Gui-läge, och det är fortfarande snabbare över ssh, IMO.

När jag redigerar text i Emacs har jag nu kommit att uppskatta några idiom som % för att flytta från en avgränsare (parentes eller hakparentes) till den andra, * och # för att söka framåt och bakåt, g; (goto-last-change) för att gå tillbaka till där vi var innan vi flyttade, gg för att gå till början av filen, eller ) och ] för att snabbt gå framåt (till skillnad från w och b för ord), trots vissa specifika Doom-inställningar som gr (eval-region) eller gd och gD (+lookup/definition och +lookup/references, som använder sig av LSP-backend-funktioner när de finns tillgängliga). Jag lärde mig också att använda några kombinationer av verb+rörelse, som ciw eller diw, 5j osv. Jag är fortfarande alltför bekant med shift-select och användningen av piltangenterna för att kunna använda korrekt visuell rörelse i vissa fall, men det är okej. På samma sätt är C-a och C-e fortfarande för mycket förankrade i mitt muskelminne för att tänka på Vimesque-alternativ som 0 och $, särskilt eftersom jag använder dem i min Terminal och andra macOS-app.

Det är trots allt fördelen med Doom Emacs: vi kan använda båda tangentmappningarna när som helst. Om du undrar så använder jag också standard macOS-tangentbindningar som ⌘-R (sök och ersätt) och ⌘-F (endast framåtsökning med hjälp av rg eller swiper). Jag tror att det är det här jag använder mest, så det är inte så farligt för mitt dåliga minne. Jag vet att vi kan göra mycket mer, i båda redaktörerna, men jag behöver oftast inte dessa extra superkrafter. Även om det till exempel går att ersätta ordet under markören med ett ryckt ord på ett fint sätt i Vim (samma sak gäller för Emacs), föredrar jag att söka och ersätta, särskilt om detta måste göras flera gånger. Kanske ändrar jag mig senare eller när jag blir mer flytande med yanking i Vim. För mig förblir de mest användbara kommandona för att rycka och klistra in i Vim naturligtvis yy, dd och p, och jag började bara uppskatta urval i visuellt läge med hjälp av V, S-V eller C-V.

Nu kommer frågan om färgschemat, eftersom jag alltid förespråkat idén att enkla och ljusa teman ofta är bättre. Några trevliga teman beskrivs på Jason Blevins webbplats, och jag har provat många färglösa eller minimalistiska teman tidigare. Jag gillar egentligen inte rosa eller lila, så Atom eller VS Code standardfärgscheman, och Emacs-varianter av dessa, är inte ett alternativ. I slutändan ser bufferten bara ut som en regnbåge. Jag använder det underbara Nord (mörka) temat i både Vim och Emacs, samt iTerm. Enligt min mening ser det bättre ut i Vim jämfört med motsvarande implementering för Emacs i icke-GUI-läge, men eftersom jag i allmänhet använder Emacs i ett GUI-läge bryr jag mig egentligen inte. Jag har dock gjort några ändringar i grundfärgschemat. Tanken var att ha ett ljusare färgschema, efter att ha tagit bort överflödig färgning för ytor som inte är så viktiga när man skriver prosa eller kod. Du kan ta en titt nedan:

Tanken är helt enkelt att ta bort syntaxmarkering för allt utom nyckelord och relaterade språkspecifika former, som använder samma basfärg, och att markera strängar på olika sätt (med en dimmerad variant för siffror):

Idén om att använda en snedställd variant för funktioner är egentligen bara ett test. Det fungerar dock utmärkt för Lisp-liknande dialekter och Python.

Jag gjorde ytterligare anpassningar för ”textläge” (Markdown och Org), vilket går ut på att använda i huvudsak vita rubriker (nivå 1 och 2), dimmare markering för inline-kod och URL:er osv. När man skriver prosa vill man trots allt inte nödvändigtvis se färg var tredje eller fjärde ord. Det faktum att min TODO-lista eller Org-dokument bara var fulla av färger drev mig till vansinne vid något tillfälle. Metadata och Org-lådor använder också alla dämpade färger. Slutligen markeras också val och hopp med olika bakgrundsfärger.

Ja, det var allt. Jag går tillbaka och experimenterar med Vim motions och kanske kommer mina nästa inlägg att handla om Neovim.

♪ Nick Cave & The Bad Seeds – Ghosteen

Lämna ett svar

Din e-postadress kommer inte publiceras.