Terminalen som arbeidsverktøy

Er det noen fordeler med en terminalbasert workflow når man kan gjøre 'alt' etablerte tungvektere som VSCode, IntelliJ, XCode, PyCharm eller Webstorm? Hvorfor løpe barbeint når man kan kjøre bobil? Lett og ledig eller tung og treig?

- Blazing fast, instant load

- mindre ressurskrevende enn tradisjonelle IDEer

- gjør det enkelt å jobbe på ulike servere og repositorier i samme view eller ulike tabs

- kjør split view med editor, cli, git, ssh, logger, og docker med ulike zoom levels uten problem

- "never leave the keyboard"-tankegang → mer effektivt enn museklikk

- en eller annen variant av vi/vim er stort sett tilgjengelig på alle servere

Komplisert terminaloppsett

Hvilken terminal?

Her er det mange meninger, favoritter og alternativer å velge mellom, fra de som kommer inkludert med operativsystemet til AI-drevne terminaler. Jeg brukte lenge standard macOS terminal.app før jeg byttet til iTerm2 som jeg så brukte i flere år. Jeg har også testet ut Wave som er en 'alt inkludert'-terminal, samt Warp som er et AI agent-drevet utviklinksmiljø. Til slutt har jeg dog landet på Ghostty som er en ren og rask terminal, og benytter meg heller av diverse terminal-baserte verktøy i denne.

Ghostty - moderne, native og lynrask

Ghostty
Ghostty

Ghostty er en relativt ny terminal emulator som kommer med mange features ferdig konfigurert, som tabs, splits, themes, fontstøtte, GPU-akselerasjon og shell integrasjon.

Stort sett alt fungerer rett ut av boksen, men for å få den til å fungere best mulig med SSH bør man følge rådene på https://ghostty.org/docs/help/terminfo da Ghostty bruker sin egen Terminfo som ikke alle servere forstår.

Hvilke verktøy?

Terminalen kan brukes til mer enn å liste ut filer eller lese filinnhold, og det finnes et hav av verktøy som gjør terminalen om til et fullverdig utviklermiljø. Her følger en liste av mine personlige favoritter som er 'tried and tested' i mange år.

Oh-My-Zsh

Oh my Zsh
Oh my Zsh
  • https://ohmyz.sh
  • er et rammeverk for utvidelser til Zsh (Z shell), et Unix Shell som også er default-shell i MacOS, og tilgjengelig på alle platformer
  • kommer med masse forhåndskonfigurerte alias’er og plugins
  • gir deg et 'pretty prompt' med info om path, git branch/status osv

NeoVim

NeoVim
NeoVim

Vi ble laget av Bill Joy i 1976, og var den første teksteditoren i Unix. Vim (Vi IMproved) ble laget av Bram Moolenaar for Amiga i 1991, og kom med støtte for fargesyntaks, VimScript og mange andre forbedringer. NeoVim kom i 2015 og er en fork av Vim som utvider funksjonaliteten med asynkronitet, LUA-scripting og innebygget LSP. Vim har en relativt bratt læringskurve med flere ‘modes’ og tastekombinasjoner for alle operasjoner, men det finnes en mengde tutorials - blant annet den innebygde Vimtutor. Når først tastekombinasjonene begynner å sitte i fingra er det lite som slår effektiviteten til Vim.

Her finnes det flere populære 'distroer' å velge mellom. Jeg liker LazyVim som er veldig lett å konfigurere og bruke, men også AstroNvim har fungert fint for meg. NeoVim gir deg muligheten til å installere en mengde plugins, og kommer med en plugin manager for å håndtere disse.

Codex CLI

Codex
Codex

Codex er en AI agent fra OpenAI som kjører lokalt i terminalen og bruker modeller fra OpenAI. Den kan gis tillatelse til å gjøre endringer i filer, og blir raskt en intelligent kodepartner. Den bruker kommandoer som ls, grep, sed, nl og git for å orientere seg, i tillegg til å søke på nettet. Hvis man har et ChatGPT Plus-abonnement så er Codex inkludert, men man kan også kjøpe tokens 'as you go'.

Claude Code

Claude Code
Claude Code

Claude Code er Anthropic sitt AI agent-alternativ, og bruker Anthropics modeller.

Gemini CLI

Gemini
Gemini

Gemini er Google sitt AI agent-alternativ, og bruker Googles modeller.

Ripgrep - søk

Ripgrep
Ripgrep

Yazi - file explorer

Yazi
Yazi

Fzf - fuzzy finder

Fzf
Fzf

Lzr - pretty ls

Laser
Laser

Bpytop - ressursmonitorering

BpyTop
BpyTop

Tig - git verktøy

Tig
Tig

Dette er bare et lite knippe arbeidsverktøy tilgjengelig for terminalen, jeg anbefaler den eventyrlystne å sjekke ut https://terminaltrove.com.