Hledal jsem příkaz, který by snad otevřel oblíbený textový editor aktuálního uživatele, protože píšu některé pokyny pomocí příkazů v blogu. Očekával jsem příkaz jako edit
a našel jsem editor
. Pro mě to začalo vim v terminálu, který je blízko tomu, co Chtěl jsem; používám vim-gtk. Začal jsem hledat způsob, jak přimět editora používat vim-gtk a našel jsem tuto otázku, která vysvětluje , ale nejsem si jistý, jestli to vůbec souvisí s příkazem editor
. Zkusil jsem man editor
, ale to právě vytáhlo stránku vim.
Jak mohu použít editor
použít textový editor podle mého výběru, nebo mám použít jiný příkaz?
Odpověď
Toto je Debian-ism (a proto se objevuje v Ubuntu, Mint atd.). odkazové volání ed editor
. Můžete jej zpětně vysledovat takto:
$ 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
Takže vidíte, že editor
je pouze unixový odkaz na spustitelný soubor vim.gnome
.
Použití editor
?
Nemyslím si, že “ jdeme tímto směrem nastavení editor
pro uživatele jakýmkoli smysluplným způsobem, vzhledem k tomu, že to není to, co bych považoval za standardní.
Navíc můžete nastavit $EDITOR
proměnná prostředí, která ukazuje na cokoli chcete, vim
, gedit
, emacs
atd. Je však zaručeno, že tuto proměnnou budou používat pouze jiné nástroje, například sudo
, git
a subversion
, které jsou speciálně navrženy tak, aby byly svázány pomocí proměnné $EDITOR
.
Návrhy implementace
Jen bych nastavil alias podle vlastního výběru a buď uživatele poučím, že je k dispozici prostřednictvím svého $HOME/.bashrc
souboru jako alias X, nebo jej nastavit jako konfiguraci systému v souboru /etc/profile.d/our_aliases.sh
jako alias X.
Nebo můžete uživatelům sdělit, že systémy „poskytují gedit
, gvim
, vim
, emacs
atd. a prořízněte cukernou vrstvu a naučte je o těchto věcech hned od pálky.
Nebo můžete uvést text soubor s názvem /etc/help.txt
, který mohli spustit pomocí příkazu help
(alias help="less /etc/help.txt"
) v prostředí které by poskytovaly základní příkazy a jak provádět různé úkoly. Tento přístup vám umožňuje přizpůsobit si pomoc postupem času pomocí nových funkcí nebo tipů a poskytuje jim více než jen editor
pohodlný příkaz.
Komentáře
odpověď
Program editoru, který některé programy vyvolaly, když jim řeknete, aby upravili soubor. Proměnnou prostředí musíte nastavit sami.
Pokud používáte csh nebo tcsh, na příkazovém řádku prostředí:
setenv EDITOR vim
Pokud používáte bash nebo ksh, pak zadejte:
EDITOR=vim; export EDITOR
(Nahraďte „vim“ editorem, který chcete použít.)
The EDITOR
proměnná je ta, kterou ve výchozím nastavení potřebujete k vyvolání editoru u některých aplikací. K určení editoru orientovaného na obrazovku se používá další proměnná s názvem VISUAL
. Obecně jej budete chtít nastavit na stejnou hodnotu jako proměnná EDITOR
. Původně EDITOR
by bylo nastaveno na ed (lineární editor) a VISUAL
by bylo nastaveno na vi (obrazovka – založený editor).
VISUAL="vim"; export VISUAL VISUAL="$EDITOR"; export VISUAL #even better
Když to uděláte, většina unixových programů, které používají textové editory, použije editor, který jste nastavili. Postupováním výše uvedených příkazů nastavíte výchozí editor pouze pro aktuální výpočetní relaci. Chcete-li, aby tyto změny byly trvalé, budete muset do příslušných .login
nebo soubory (pro uživatele csh nebo tcsh) nebo váš soubor .profile
(pokud používáte bash nebo ksh).
Pokud předstíráte, že používáte Emacs, existuje také další proměnná prostředí. Je to ALTERNATE_EDITOR
a má stejný účinek, ale používá se, když je Emacs vyvolán s možností --alternate-editor
.
Z GNU Emacs Manual :
Možnost
--alternate-editor=command
je užitečný, když jeemacsclient
spuštěn ve skriptu. Určuje příkaz, který se má spustit, pokudemacsclient
kontaktovat Emacs. Například následující nastavení proměnné prostředíEDITOR
dá editoru, i když Emacs není spuštěn:EDITOR="emacsclient --alternate-editor vi +%d %s"
Komentáře
- Říkání
sh
není ‚ nemá smysl.sh
je obvykle systémový ‚ s. Býval to shell Thomson, pak shell Bourne a v dnešní době na většině systémů jeden nebo druhý shell implementující specifikaci POSIXsh
. Syntaxeexport EDITOR=vim
je POSIX, ale ne Bourne ani Thomson.export VISUAL=$EDITOR
funguje vbash
a některých implementacíchksh
. Ve většině ostatních skořápek potřebujeteexport VISUAL="$EDITOR"
.VISUAL=$EDITOR export VISUAL
bude fungovat ve všech skořápkách podobných Bourneovi, včetně shellu Bourne. - Je běžné a akceptováno nastavení
EDITOR
na takovou víceslovnou hodnotu? Pokud ano, nemohu bezpečně použítwhich "$EDITOR"
nebowhich $EDITOR
ke kontrole, zda je přítomen.
Odpověď
V proměnné prostředí EDITOR
. Přidejte do svého.profile
následujícího příkazu:
export EDITOR=editor
Pokud chcete vim
jako výchozí editor přidáte místo toho
export EDITOR=vim
Osobní preference: Používám absolutní název cesty editoru v proměnné prostředí. Například
export EDITOR=/usr/bin/vim
Odpověď
Například Příkaz editor
je specifický pro ubuntu. Není přenosný nebo dokonce běžný (mimo ubuntu). Příkaz je také nastaven na celý systém, nikoli na uživatele. Funguje to tak, že /usr/bin/editor
je pouze symbolický odkaz na editora v systému. Proto je stejná pro všechny uživatele.
Proměnná prostředí $EDITOR
je poměrně standardní. Používá jej mnoho programů, které vyžadují, aby uživatel něco upravil. Je to právě tato proměnná, kterou byste měli použít, když chcete vyvolat editor uživatele.
Komentáře
- Není to specifické pro Ubuntu, pochází z Debianu a používá Debian ‚ s alternativní mechanismus. Je ‚ s dostupný ve všech derivátech Debianu, nejen Ubuntu.
Odpověď
Toto používám ve svém skriptu:
# 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"
Neobalil jsem uvozovky kolem posledního volání $editor
, abych zajistil, že výše uvedený příklad emacsclient bude fungovat.
Z tohoto důvodu si myslím, že je důležité vždy nastavit nějakou hodnotu pro editor
, jinak poslední řádek mohl nechtěně spustit $ název souboru . V mém případě jsem zvolil no_editor_found
, ale stejně použijte pico
nebo ed
tam.
$EDITOR
, nyní nemůžu se ‚ spoléhat na to ani naeditor
symbolický odkaz.s/Ubuntu/Debian/g