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=command
on hyödyllinen, kun suoritetaanemacsclient
komentosarjassa. Se määrittää komennon, joka suoritetaan, josemacsclient
ei ota yhteyttä Emacsiin. Esimerkiksi seuraava ympäristömuuttujanEDITOR
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 POSIXsh
-määrityksen.export EDITOR=vim
-syntaksi on POSIX, mutta ei Bourne eikä Thomson.export VISUAL=$EDITOR
toimii tiedostossabash
ja joissakin sovelluksenksh
toteutuksissa. Tarvitsetexport 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"
taiwhich $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ä.
$EDITOR
, nyt minä ’ ei voi luottaa siihen tai symbolieditor
.s/Ubuntu/Debian/g