Olyan parancsot kerestem, amely remélhetőleg megnyitja az aktuális felhasználó kedvenc szövegszerkesztőjét, mert néhány utasítást parancsokkal írok ki egy blogba. Olyan parancsra számítottam, mint a edit
, és megtaláltam a editor
parancsot. Számomra a terminálban indult el vim, ami közel áll ahhoz, Szerettem volna; a vim-gtk-t használom. Elkezdtem keresni a szerkesztő vim-gtk használatának módját, és ezt a kérdést találtam, amely magyarázatot ad egy $EDITOR
környezeti változó, de nem vagyok biztos benne, hogy ez összefügg-e még a editor
paranccsal. Megpróbáltam a man editor
, de ez csak felhúzta a vim manpage-ot.
Hogyan érhetem el, hogy editor
az általam választott szövegszerkesztőt használjam, vagy használjak más parancsot?
Válasz
Ez egy Debian-ism (ezért megjelenik az Ubuntuban, a Mint-ben stb.). linkhívás ed editor
. A következőképpen vezetheti vissza:
$ 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
Tehát láthatja, hogy a editor
csak egy Unix-link a a futtatható vim.gnome
.
A editor
?
nem hiszem, hogy használnám d menj abba az irányba, hogy bármilyen értelmes módon beállítsd a editor
t a felhasználók számára, tekintettel arra, hogy ezt nem én tartanám szabványosnak.
Ezenkívül beállíthatod a $EDITOR
környezeti változó, amire bármit mutat, vim
, gedit
, emacs
stb. De ezt a változót csak más eszközök garantálják, például sudo
, git
és subversion
, amelyeket kifejezetten a $EDITOR
változó használatához kötnek.
Megvalósítási ötletek
Csak beállítanék egy ön által választott álnevet, és vagy utasítanám a felhasználókat, hogy elérhetőek legyenek őket $HOME/.bashrc
fájljukon keresztül X aliasként, vagy beállíthatják rendszerkonfigurációként az /etc/profile.d/our_aliases.sh
fájlban, más néven X.
Vagy egyszerűen elmondhatja a felhasználóknak, hogy a rendszerek “biztosítják gedit
, gvim
, vim
, emacs
stb., és vágja át a cukorbevonatot, és tanítsa meg őket ezekről a dolgokról rögtön.
Vagy megadhat egy szöveget /etc/help.txt
nevű fájl, amelyet egy help
(alias help="less /etc/help.txt"
) parancs segítségével futtathatnak egy shellben amely megadná az alapvető parancsokat és a különböző feladatok végrehajtását. Ez a megközelítés lehetővé teszi a súgó testreszabását az idő múlásával új funkciókkal vagy tippekkel, és nemcsak a editor
kényelmi parancsot nyújtja nekik.
Megjegyzések
Válasz
A szerkesztőprogram, amelyet néhány program hívott, amikor utasítást adott nekik, hogy szerkesszenek egy fájlt. Magának be kell állítania a környezeti változót.
Ha csh vagy tcsh fájlt használ, akkor a shell parancssorban:
setenv EDITOR vim
Ha használja bash vagy ksh, majd írja be:
EDITOR=vim; export EDITOR
(Cserélje le a “vim” szót a használni kívánt szerkesztőre.)
A EDITOR
változó az, amelyre alapértelmezés szerint szüksége van néhány alkalmazás számára, hogy meghívja a szerkesztőt. Van egy másik VISUAL
nevű változó, amelyet a képernyő-orientált szerkesztő megadására használnak. Általában ugyanarra az értékre szeretné beállítani, mint a EDITOR
változót. Eredetileg a EDITOR
-t ed-re (egy soros szerkesztő), a VISUAL
-et pedig vi-re (egy alapú szerkesztő).
VISUAL="vim"; export VISUAL VISUAL="$EDITOR"; export VISUAL #even better
Ha ezt megtette, a legtöbb szövegszerkesztőt használó Unix program az Ön által beállított szerkesztőt használja. A fenti parancsok követésével csak az aktuális számítási munkamenethez állítja be az alapértelmezett szerkesztőt. Ahhoz, hogy ezek a változások véglegessé váljanak, el kell helyeznie a fent leírt megfelelő parancsokat a .login
vagy .cshrc
fájlok (csh vagy tcsh felhasználók számára) vagy .profile
fájlja (ha bash vagy ksh fájlt használ).
Van egy másik környezeti változó is, ha úgy teszel, mintha Emacs-t használnál. Ez “s ALTERNATE_EDITOR
, és ugyanaz a hatása, de akkor használja, ha az Emacs-t --alternate-editor
opcióval hívják meg.
Az opció Az
--alternate-editor=command
akkor hasznos, ha aemacsclient
parancsfájlban fut. Megad egy futtatandó parancsot, haemacsclient
nem sikerül kapcsolatba lépnie az Emacs-szal. Például aEDITOR
környezeti változó következő beállítása mindig szerkesztőt ad, még akkor is, ha az Emacs nem fut:EDITOR="emacsclient --alternate-editor vi +%d %s"
Megjegyzések
- Mondom, hogy
sh
nem ‘ nincs értelme.sh
általában a rendszer ‘ rendszerhéja. Ez korábban a Thomson-héj volt, majd a Bourne-héj, majd manapság a legtöbb rendszeren egyik vagy másik héj valósította meg a POSIXsh
specifikációt. Azexport EDITOR=vim
szintaxis POSIX, de nem Bourne és Thomson. Aexport VISUAL=$EDITOR
abash
és aksh
néhány megvalósításában működik. A legtöbb más héjbanexport VISUAL="$EDITOR"
szükséges. AVISUAL=$EDITOR export VISUAL
minden Bourne-szerű héjban működik, beleértve a Bourne-héjat is. - Gyakori és elfogadott-e a
EDITOR
ilyen többszavas értékre? Ha igen, akkor nem használhatom biztonságosan awhich "$EDITOR"
vagy awhich $EDITOR
felhasználást annak ellenőrzésére, hogy van-e.
Válasz
Meg kell adnia a editor
-t a EDITOR
. Adja hozzá a következő parancsot a .profile
mezőbe:
export EDITOR=editor
Ha azt szeretné, hogy vim
mint alapértelmezett szerkesztő, helyette hozzáadod
export EDITOR=vim
Személyes beállítás: A szerkesztő abszolút elérési útjának nevét használom a környezeti változóban. Például
export EDITOR=/usr/bin/vim
Válasz
A A editor
parancs az ubuntu-specifikus. Nem hordozható, sőt nem is gyakori (az ubuntun kívül). A parancs szintén rendszerszintű, és nem felhasználónként. Úgy működik, hogy az /usr/bin/editor
csak egy szimbólum link a rendszer szerkesztőjéhez. Mint ilyen, minden felhasználónál azonos.
A $EDITOR
környezeti változó meglehetősen szabványos. Sok olyan program használja, amelyeknek a felhasználónak szerkeszteniük kell valamit. Mint ilyen, ezt a változót kell használnia, amikor meg szeretné hívni a felhasználó szerkesztőjét.
Megjegyzések
- Ez nem az Ubuntu specifikus, a Debianból származik, és a Debian ‘ s alternatívák mechanizmust használja. ‘ minden debian származékban elérhető, nemcsak az Ubuntu.
Válasz
Ezt használom a szkriptemben:
# 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"
Nem tettem idézőjeleket a $editor
címre küldött utolsó hívás köré annak biztosítására, hogy a fenti emacsclient példa működjön.
Emiatt fontosnak tartom, hogy mindig beállítson valamilyen értéket a editor
számára, különben az utolsó sor akaratlanul is végrehajthatta $ fájlnév t. Esetemben a no_editor_found
-t választottam, de ugyanúgy használja pico
vagy ed
ott.
$EDITOR
változót, most én ‘ nem támaszkodhat erre vagy aeditor
szimbólumra.s/Ubuntu/Debian/g