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
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.
Vaihtoehto
--alternate-editor=commandon hyödyllinen, kun suoritetaanemacsclientkomentosarjassa. Se määrittää komennon, joka suoritetaan, josemacsclientei ota yhteyttä Emacsiin. Esimerkiksi seuraava ympäristömuuttujanEDITORasetus antaa aina editorin, vaikka Emacs ei olisi käynnissä:EDITOR="emacsclient --alternate-editor vi +%d %s"
Kommentit
- Sanotaan
shei ’ ei ole järkevää.shon 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 POSIXsh-määrityksen.export EDITOR=vim-syntaksi on POSIX, mutta ei Bourne eikä Thomson.export VISUAL=$EDITORtoimii tiedostossabashja joissakin sovelluksenkshtoteutuksissa. Tarvitsetexport VISUAL="$EDITOR"useimmissa muissa kuoreissa.VISUAL=$EDITOR export VISUALtoimii kaikissa Bournen kaltaisissa kuorissa, mukaan lukien Bourne-kuori. - Onko yleistä ja hyväksyttyä asettaa
EDITORtällaiseen monisanaiseen arvoon? Jos näin on, en voi turvallisesti käyttääwhich "$EDITOR"taiwhich $EDITORtarkistamaan, 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ä.
$EDITOR, nyt minä ’ ei voi luottaa siihen tai symbolieditor.s/Ubuntu/Debian/g