Co je příkaz `editor` v bash?

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

  • Ya, uživatelé budou vědět, jak se jejich editor nazývá, a já jim jen řeknu, aby místo ukázky kódu upravili konkrétní soubor. Byl jsem v roli s příklady kódu a neuvědomil jsem si ‚, že začínám být trochu pedantský. Je ‚ příliš špatné, že Ubuntu nenastaví ‚ proměnnou $EDITOR, nyní nemůžu se ‚ spoléhat na to ani na editor symbolický odkaz.
  • s/Ubuntu/Debian/g
  • standardy , povzdech …

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ž je emacsclient spuštěn ve skriptu. Určuje příkaz, který se má spustit, pokud emacsclient 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 POSIX sh. Syntaxe export EDITOR=vim je POSIX, ale ne Bourne ani Thomson. export VISUAL=$EDITOR funguje v bash a některých implementacích ksh. Ve většině ostatních skořápek potřebujete export 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žít which "$EDITOR" nebo which $EDITOR ke kontrole, zda je přítomen.

Odpověď

V proměnné prostředí EDITOR

. Přidejte do svého.profilená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.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *