it-swarm-eu.dev

Výhody použití set -o vi

Viděl jsem mnoho vývojářů používajících tento příkaz k nastavení možnosti vi. Nikdy jsem nerozuměl skutečnému využití tohoto?

Jaká pomoc při přechodu na vi poskytuje při použití bash příkazů?

61

Nastavením úpravy readline na emacs (výchozí) nebo vi (set -o vi) v podstatě standardizujete své editační příkazy napříč Shellem a vaším editorem1.

Pokud tedy chcete upravit příkaz v prostředí Shell, použijete stejné příkazy2 že byste byli v textovém editoru. To znamená, že si musíte pamatovat pouze jednu syntaxi příkazů a (pokud by to nebylo dost výhodné), pravděpodobně by vaše úpravy v obou prostředích byly rychlejší a méně náchylné k chybám ...

Tento vztah můžete dále využívat ve vi-režimu vytažením jakéhokoli příkazu z vaší historie Shell a zasažením Escape vstoupit do příkazového režimu a poté zasáhnout v, který otevře váš $ EDITOR příkazem načteným pro složitější úpravy s plnou silou vim. Jakmile dokončíte úpravu příkazu k vaší spokojenosti, :wq a příkaz je proveden zpět ve vašem shellu.


1. Samozřejmě za předpokladu, že jako editor použijete Emacs nebo Vi/m.
2. Nebo přesněji jeho podmnožina ...

60
jasonwryan

Režim Vi je obrovské zlepšení použitelnosti, pokud používáte mobilní klient SSH, jako je ConnectBot pro Android.

Důvodem je snížená závislost na modifikačních klávesách.

Vim je mnohem jednodušší používat s virtuální klávesnicí na smartphonu nebo tabletu než ... cokoli jiného, ​​včetně nativních metod editace zabudovaných do uživatelského rozhraní Android UI. Je ironií, že je snadnější editovat C zdroje s Vim v relaci SSH, než editovat, řekněme, okamžitou zprávu s vlastní úpravou widgetu pro tento účel.

Režim Shell vi přináší podobnou výhodu.

10
Kaz

Umožňuje upravovat obsah příkazového řádku pomocí režimů a operací vi.

Příklad vám to pomůže vyjasnit:

Napíšete cp tmp/some_other_long_directory/file1.xt /tmp2/some_other_xtra_long_dir/

ale zobrazí se chyba - měli jste zadat file1.txt ne file1.xt

Bez Tato sada možností stisknete šipku nahoru a potom šipku doleva a necháte ji opakovat ... 35krát, dokud se nedostanete k .xt a potom napíšete extra t. Celkový počet úhozů: 7.

S tuto sadu možností můžete (například) jednou stisknout šipku nahoru, poté Escape pro příkazový režim, 0 pro přechod na začátek řádku a poté /xt[return] se dostanete do xt a pak můžete do režimu vkládání zadat i a napsat chybějící t. V některých ohledech se to může zdát šíleně komplikované, ale pokud jste uživatel vim, jsou tyto příkazy již dobře známy. Celkový počet úhozů: 9

6
Michael Durrant

Nejsem si jistý, zda existuje přímá výhoda. Byl jsem uživatelem vi více než 20 let. Jsem také uživatelem screen ještě déle a dalších programů, které používají klávesy vi. Je pro mě přirozené raději nastavit režim „vi“ na bash. Ve své práci ale také pracuji na stovkách serverů, většina z nich je nastavena na výchozí režim emacs. Takže musím použít oba režimy. Ale je to opravdu jen otázka preference.

5
Arcege

Hlavní výhodou je modální úprava vašeho příkazového řádku. Pokud znáte Vima a máte rádi jeho filozofii, musí být výhody zřejmé. Pokud s tím máte zkušenosti, svalová paměť vašeho prstu vám umožní upravit vaše bash příkazy rychlostí blesku.

[~ # ~] nb [~ # ~] : Pokud se vám nelíbí modální úpravy, měli byste se naučit využívat výhod (výchozí ) emacs-mode. Zde je několik šikovných klávesových zkratek , které budou pracovat na jakémkoli procesu s readline, jako bash.

4
rahmu

Pravděpodobně pozdě na párty, ale pro mě je použití režimu vi více o vytváření interaktivních skriptů

for i in `ls | grep -v gz`
do
    echo $i
    gzip $i
done

velmi jednoduchý příklad toho, co by mohlo být docela komplikované .. použití ESCkv vás přenese do relace vi, kde můžete skript upravit, a poté :wq a běží.

1
Walter Werner

Pokud si zvyknete na vi, nastavíte jej jako režim editoru do režimu vi. To by byl jasný důvod. Druhým je, když bash není ve výchozím nastavení k dispozici v některých operačních systémech (většinou UNIX jako AIX, Solaris), takže funkce historie prostředí není dostupná, takže způsob, jakým získáváte předchozí příkazy nastavením prostředí editor pro viEscCtrl+K nebo Ctrl+L

1
Shâu Shắc

Umožní vám snadno procházet a upravovat příkazový řádek pomocí zkratek vim, např. rychle přejít na jedno slovo vpravo, odstranit slovo.

Ve výchozím nastavení, pokud potřebujete přejít na konec řádku, musíte Ctrl+e, zatímco s set -o vi, stisknete $ jako vim.

1
Hahn