Mikä on `editorin komento bashissa?

Etsin komentoa, joka toivottavasti avaisi nykyisen käyttäjän suosikkitekstieditorin, koska kirjoitan joitain komentoja sisältäviä ohjeita blogiin. Odotin komentoa kuten edit, ja löysin editor. Minulle se alkoi vim terminaalissa, joka on lähellä mitä Halusin; käytän vim-gtk: tä. Aloin etsiä tapaa saada editori käyttämään vim-gtk: tä ja löysin tämän kysymyksen, joka selittää $EDITOR ympäristömuuttuja, mutta en ole varma, liittyykö se edes komentoon editor. Yritin man editor , mutta se vain nosti vim-sivun.

Kuinka voin saada editor käyttämään valitsemaani tekstieditoria vai pitäisikö minun käyttää toista komentoa?

Vastaus

Tämä on Debian-ism (ja näkyy siksi Ubuntu, Mint jne.). He ovat asettaneet linkkipuhelu ed editor. Voit jäljittää sen seuraavasti:

$ which editor /usr/bin/editor $ ls -l /usr/bin/editor lrwxrwxrwx 1 root root 24 Nov 24 19:10 /usr/bin/editor -> /etc/alternatives/editor $ ls -l /etc/alternatives/editor lrwxrwxrwx 1 root root 18 Nov 24 19:46 /etc/alternatives/editor -> /usr/bin/vim.gnome $ ls -l /usr/bin/vim.gnome -rwxr-xr-x 1 root root 2403392 Oct 26 2012 /usr/bin/vim.gnome 

Joten voit nähdä, että editor on vain Unix-linkki suoritettava vim.gnome.

Käyttämällä editor?

En usko olevani ” d mene siihen suuntaan, että editor määritetään millä tahansa merkityksellisellä tavalla käyttäjille, koska sitä ei pidetä vakiona.

Lisäksi voit asettaa $EDITOR ympäristömuuttuja osoittamaan mihin tahansa haluamaasi, vim, gedit, emacs jne. Mutta tätä muuttujaa voi taata käyttää vain muut työkalut, kuten sudo, git ja subversion, jotka on erityisesti suunniteltu sitoutumaan muuttujan $EDITOR käyttämiseen.

Toteutusideoita

Asetan vain valitsemasi aliaksen ja ohjeistan käyttäjiä, että se on käytettävissä ne $HOME/.bashrc -tiedoston kautta aliakseksi X tai asettavat sen järjestelmän kokoonpanoksi tiedostoon /etc/profile.d/our_aliases.sh, alias X: nä.

Tai voit vain kertoa käyttäjille, että järjestelmät ”tarjoavat gedit, gvim, vim, emacs jne. ja leikkaa sokeripäällyste läpi ja opeta heille näistä asioista heti lepakolta.

Tai voit antaa tekstin tiedosto nimeltä /etc/help.txt, jonka he voivat suorittaa komennolla help (alias help="less /etc/help.txt") kuoressa joka antaisi peruskomennot ja kuinka suorittaa erilaisia tehtäviä. Tämän lähestymistavan avulla voit mukauttaa ohjetta ajan myötä uusilla ominaisuuksilla tai vinkeillä, ja se antaa heille enemmän kuin vain editor -komennon.

Kommentit

  • Kyllä, käyttäjät tietävät, mitä heidän editoriaan kutsutaan, ja minä vain kehotan heitä muokkaamaan tiettyä tiedostoa koodiesimerkin näyttämisen sijaan. Olin luettelossa koodiesimerkkien kanssa, enkä ’ tiennyt, että sain vähän pedanttista. ’ on liian huono, että Ubuntu ei aseta ’ t asettamaan muuttujaa $EDITOR, nyt minä ’ ei voi luottaa siihen tai symboli editor.
  • s/Ubuntu/Debian/g
  • standardit , huokaus …

Vastaa

Joidenkin ohjelmien kutsama muokkausohjelma, kun käsket heitä muokkaamaan tiedostoa. Ympäristömuuttuja on asetettava itse.

Jos käytät csh- tai tcsh-tiedostoja, komentorivikehotteessa:

setenv EDITOR vim 

Jos käytät bash tai ksh ja kirjoita sitten:

EDITOR=vim; export EDITOR 

(Korvaa ”vim” haluamallasi editorilla.)

EDITOR -muuttuja on oletuksena muuttuja, jota joillekin sovelluksille tarvitaan editorin käynnistämiseksi. On toinen muuttuja nimeltä VISUAL, jota käytetään näyttökeskeisen muokkaimen määrittämiseen. Yleensä haluat asettaa sen samaan arvoon kuin muuttuja EDITOR. Alun perin EDITOR olisi asetettu ed: ksi (rivipohjainen editori) ja VISUAL olisi asetettu vi: ksi (näyttö- editori).

VISUAL="vim"; export VISUAL VISUAL="$EDITOR"; export VISUAL #even better 

Kun olet tehnyt tämän, useimmat Unix-ohjelmat, jotka käyttävät tekstieditoria, käyttävät määrittämääsi muokkausohjelmaa. Seuraa yllä olevia komentoja asetat oletuseditorin vain nykyiselle tietojenkäsittelyistunnolle. Jos haluat tehdä näistä muutoksista pysyviä, sinun on sijoitettava asianmukaiset yllä kuvatut komennot .login tai .cshrc -tiedostot (csh- tai tcsh-käyttäjille) tai .profile -tiedostosi (jos käytät bash tai ksh).

On myös toinen ympäristömuuttuja, jos teeskennät käyttävänsi Emacsia. Se ”s ALTERNATE_EDITOR, ja sillä on sama vaikutus, mutta sitä käytetään, kun Emacsia kutsutaan --alternate-editor -vaihtoehdolla.

GNU Emacs -käyttöoppaasta :

Vaihtoehto --alternate-editor=command on hyödyllinen, kun suoritetaan emacsclient komentosarjassa. Se määrittää komennon, joka suoritetaan, jos emacsclient ei ota yhteyttä Emacsiin. Esimerkiksi seuraava ympäristömuuttujan EDITOR asetus antaa aina editorin, vaikka Emacs ei olisi käynnissä:

EDITOR="emacsclient --alternate-editor vi +%d %s" 

Kommentit

  • Sanotaan sh ei ’ ei ole järkevää. sh on yleensä järjestelmän ’ järjestelmän kuori. Se oli aiemmin Thomson-kuori, sitten Bourne-kuori ja nykyään useimmissa järjestelmissä, yksi tai toinen kuori toteuttaa POSIX sh -määrityksen. export EDITOR=vim -syntaksi on POSIX, mutta ei Bourne eikä Thomson. export VISUAL=$EDITOR toimii tiedostossa bash ja joissakin sovelluksen ksh toteutuksissa. Tarvitset export VISUAL="$EDITOR" useimmissa muissa kuoreissa. VISUAL=$EDITOR export VISUAL toimii kaikissa Bournen kaltaisissa kuorissa, mukaan lukien Bourne-kuori.
  • Onko yleistä ja hyväksyttyä asettaa EDITOR tällaiseen monisanaiseen arvoon? Jos näin on, en voi turvallisesti käyttää which "$EDITOR" tai which $EDITOR tarkistamaan, onko sitä läsnä.

Vastaus

Sinun on määritettävä editor ympäristömuuttujassa EDITOR. Lisää seuraava komento .profile -kansioon:

export EDITOR=editor 

Jos haluat vim oletustoimittajana, lisäät sen sijaan

export EDITOR=vim

Henkilökohtainen mieltymys: Käytän editorin absoluuttista polunimeä ympäristömuuttujassa. Esimerkiksi

export EDITOR=/usr/bin/vim

Vastaa

editor -komento on ubuntukohtainen. Se ei ole kannettava tai edes yleinen (ubuntun ulkopuolella). Komento on asetettu myös koko järjestelmälle eikä käyttäjäkohtaisesti. Se toimii siten, että /usr/bin/editor on vain symboli järjestelmän editoriin. Sellaisena se on sama kaikille käyttäjille.

Ympäristömuuttuja $EDITOR on melko vakio. Sitä käyttävät monet ohjelmat, jotka tarvitsevat käyttäjän muokkaamaan jotain. Sinänsä sitä on käytettävä tätä muuttujaa, kun haluat käyttää käyttäjän muokkausohjelmaa.

Kommentit

  • Se ei ole Ubuntu-spesifinen, se tulee Debianista ja käyttää Debianin ’ s vaihtoehtojen mekanismia. Se ’ on saatavana kaikissa Debianin johdannaisissa, ei vain Ubuntu.

Vastaa

Tätä käytän komentosarjassa:

# Find a suitable text editor editor="$VISUAL" [ -z "$editor" ] && editor="$EDITOR" [ -z "$editor" ] && which editor >/dev/null && editor=editor [ -z "$editor" ] && which nano >/dev/null && editor=nano [ -z "$editor" ] && which vi >/dev/null && editor=vi [ -z "$editor" ] && editor=no_editor_found # Use the editor we found $editor "$filename" 

En ole käärittänyt lainauksia viimeisen kutsun ympärille $editor varmistaaksesi, että yllä oleva emacsclient-esimerkki toimii.

Tästä syystä mielestäni on tärkeää asettaa aina arvo editor, muuten viimeinen rivi voisi tahattomasti suorittaa $ tiedostonimi . Minun tapauksessani valitsin no_editor_found, mutta voit yhtä hyvin käytä pico tai ed siellä.

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *