Advarsel "Input is not from a terminal" i Vim: Årsager og løsninger

Hvorfor får man en advarsel om "Input is not from a terminal" og efterfølgende en terminal med ødelagt opførsel, når man åbner vim gennem find | xargs, som vist her: find . -name "*.txt" | xargs vim?

Når du åbner Vim gennem find | xargs, får du advarslen "Input is not from a terminal" og en terminal med ødelagt opførsel, fordi Vim forventer input direkte fra en terminal, hvilket xargs ikke leverer; brug i stedet find . -name "*.txt" -exec vim {} + for korrekt funktion.

Hvorfor får man en advarsel om "Input is not from a terminal" og efterfølgende en terminal med ødelagt opførsel, når man åbner vim gennem find | xargs?

Når du bruger kommandoen find . -name "*.txt" | xargs vim, kan du støde på advarslen "Input is not from a terminal" og opleve, at terminalen opfører sig mærkeligt. Dette sker af flere grunde:

  • Standard Input: Vim forventer at modtage input direkte fra en terminal. Når du bruger xargs, bliver input ikke sendt direkte fra en terminal, hvilket forårsager advarslen.
  • Terminal Kontrol: Vim forsøger at kontrollere terminalen for at håndtere brugerinput og vise output korrekt. Når input ikke kommer fra en terminal, kan Vim ikke udføre denne kontrol korrekt, hvilket fører til uforudsigelig opførsel.
  • Alternativ Kommando: For at undgå dette problem kan du bruge find . -name "*.txt" -exec vim {} +. Denne kommando bruger -exec flaget til at åbne hver fil med Vim direkte, hvilket sikrer, at input kommer fra en terminal.

Her er en alternativ løsning:

find . -name "*.txt" -exec vim {} +

Ved at bruge denne metode undgår du advarslen og sikrer, at Vim fungerer korrekt i terminalen.

Opret din første opgave på få minutter

Spar dig selv for besvær og kom igennem din to-do liste i dag

1

Beskriv din opgave

2

Modtag bud

3

Få løst din opgave

opgaver platform services

Møbelsamling

Hjælp med at samle Ikea klædeskab

opgaver platform services

Maler

Klargøring af lejlighed til flyttesyn

opgaver platform services

Flyttehjælp

Flytning af 150 kvm hus til Roskilde fra København

opgaver platform services

Havearbejde

Beskæring af 4 større træer

opgaver platform services

IT support

Geninstallering af windows + programmer

opgaver platform services

Elektriker

Installation af Sonos musikanlæg i hus

opgaver platform services

Rengøring

Ugentlig rengøring af lejlighed (114kvm)

opgaver platform services

Flyttehjælp

Flytning af 150 kvm hus til Roskilde fra København

opgaver platform services

Elektriker

Opsætning af lamper i stue og soveværelse

opgaver platform services

Catering

3-retters menu til 14 mennesker