Чи є випадки, коли vi - єдиний варіант?


22

Чи є сценарії, де viє єдиним варіантом створення, редагування або зміни файлу в середовищі Ubuntu?

В основному моє питання полягає в тому, щоб дійсно знати, чи є такий випадок, коли я був би змушений використовувати, viоскільки це був би єдиний варіант, доступний у конкретному випадку в екосистемі Ubuntu.

Чи може приватний випадок існує там , де я як - то не матиму доступ до інших варіантів , як nano, picoабо просто посилаючи інформацію з допомогою інструментів , як cat, sed, teeта багато іншої?

Я б припустив, що це більше сервер або хмарна сторона, оскільки на Робочому столі є набагато більше варіантів, але від усіх, хто використовує термінал, я дуже прошу:

Чи є такий випадок?



8
@Tim Насправді visudoможе використовувати будь-який редактор. Оскільки конфігурація за замовчуванням на Ubuntu поважає змінні EDITORта VISUALсередовище, ви можете запустити sudo env VISUAL=emacs visudoдля emacs або навіть gksudo env VISUAL=gedit visudoдля графічного редактора типу Gedit. ( sudo -Hабо sudo -iможе використовуватися замість gksudo.) Я пропоную такий envспосіб, що VISUAL=emacs sudo visudoвін не спрацює ( sudoскидає більшу частину навколишнього середовища) і sudo -EH може вважатися недоцільним.
Елія Каган

3
vi - єдиний варіант ... коли vi - єдиний встановлений редактор, який ви знаєте, і ви не хочете витрачати час на інший. vi - найкращий варіант, коли vi - редактор, який ти знаєш / подобається найкращим серед доступних, і ти не хочеш витрачати час на встановлення того, хто тобі більше подобається. НІКОЛИ не існує випадку, коли лише один інструмент може вирішити проблему; можуть бути випадки, коли вибір обмежений. А деяким людям насправді подобається vi. (Не я. Я фанат Emacs. Хоча я можу терпіти багатьох редакторів.)
keshlam

3
cat? sed? Дійсно? viнасправді це не так вже й складно, і якщо ви насправді не можете зайнятися його вивченням, вам потрібно запам’ятати лише два режими (Нормальний і Вставний режим). Ви переміщуєте курсор зі стрілками (або HJKL, якщо немає), натискаєте "i", щоб почати редагування (режим вставки). Після завершення натисніть "Esc", щоб повернутися до звичайного режиму. Введіть ": wq", щоб зберегти та вийти (Write + Quit).
sleblanc

2
просто висмоктуйте його та вивчайте vi :) Це не так складно, як це з’являється вперше, і як тільки ви це зрозумієте, ви ніколи не витрачаєте час на полювання на інших редакторів будь-якої нової системи, яку ви використовуєте.
JamesRyan

Відповіді:


32

Всередині екосистеми Ubuntu , я не думаю, що цей випадок навіть не може існувати , як vi, принаймні, крихітний, який вже є "реальним vim", далеко не "реальним vi".

У контексті вбудованих систем з обмеженими ресурсами , які зазвичай не є Ubuntu, у вас може просто виникнути viпосилання на busybox. І не залишилося місця. Тоді, viце єдиний варіант.

Крім того, я думаю, що ситуації, коли viєдиний варіант є не дуже поширеними сьогодні, навіть поза межами Linux .

Але легко можуть виникнути ситуації, коли viє єдиний варіант, який ви можете планувати , єдиний варіант, який певним чином буде існувати в якійсь майбутній ситуації - що, швидше за все, відбудеться всередині переохолодженого серверного залу клієнта.

Уявіть, що вам зателефонував клієнт:

Клієнт: Мені потрібно виправити цю конфігурацію! Зараз !! Не знаю як, але я можу вам сказати, де знаходиться файл конфігурації. Можеш мені допомогти!?!

Ви: Гаразд, яка система працює?

Клієнт: О, це на сервері foo, ах ... це працює ... не можу пригадати, щось із "ix" врешті-решт , або mayeb з "ux" ...

Без проблем, до цього часу, ви знаєте, що буде vi!


1
Я особисто працював над низкою вбудованих систем, які містили лише vi як текстовий редактор, я вважаю, що buildroot і yocto мають це єдиний редактор, коли використовують мінімальні параметри конфігурації. Справді, це не проблема ubuntu, але якщо ви вбудований розробник, це може бути справжньою проблемою. Однак завжди можна сказати, як заявляє ОП, використовувати інструменти на основі труб, такі як sed, sort, grep та подібні, однак це може бути дуже болісно.
Vality

Корпус зайнятого телефону справді хороший. Що прикро в цьому, я не думаю, що це навіть повне ві (принаймні, це не було десятиліття тому назад, і я сподіваюся, що вони не роздули це, навіть якщо це дратує).
Гайд

1
busybox viце 4k рядки:; curl -s https://gitorious.org/busybox/busybox/raw/1c7a58dfb82ea04c525e0c19f94f2d800dee99e3:editors/vi.c | wc)
Volker Siegel

17

Vi ніколи не є єдиним варіантом; ви завжди можете використовувати edзамість цього.


8
Наприклад, Arch Linux, edне входить до складу base.
муру

@muru FWIW vimтеж не є.
Sparhawk

4
@Sparhawk viє.
muru

@muru Ага так, звичайно. Я плутав себе.
Sparhawk

edє лише частиною standard^встановлення. Якщо ви робите minimalвстановлення, edвін не входить.
Олі

13

Ну, є один випадок, коли вам потрібен viредактор, припустимо:

  • немає графічного інтерфейсу
  • ти на якійсь дивній невідомій *nixсистемі
  • ваш термінал виглядає так:

введіть тут опис зображення

  • у вас досить таких хлопців:

введіть тут опис зображення

Як бачите, немає цифрової клавіатури . Зі старою vi(і я маю на увазі оригінальний традиційнийvi , чи не vim, vim.tinyабо vim.basic) , ви можете редагувати файл з цією клавіатурою. Без клавіш зі стрілками ? Так, коли ви знаходитесь в командному режимі ви перемістили через файл з h, j, kі l, як професіонал. hбув лівий, jбув вниз, kбув і lбув правим.


5
Я думаю, що ця відповідь насправді не така вже й погана (клавіатури, подібні до машинок, не зовсім навряд чи зіткнутися), але насправді це не означає, що вам потрібно viособливо. У всіх старих текстових редакторах є "резервні" комбінації клавіш, які дозволяють працювати без клавіш зі стрілками тощо. Хоча я смію сказати, що viце єдиний редактор, де ви не пропустили б клавіші зі стрілками.
Ліворуч близько

Дещо поза темою: я не бачу, для чого вам потрібна цифрова клавіатура для будь-якого текстового редактора, а клавіші зі стрілками у Vim так чи інакше марні. : P
Doorknob

1
Гей, не знижуй доброго ed! Немає необхідності в таких "візуальних" трюках у такій системі! Просто спробуйте використати vim на терміналі на папері і подивіться, як ви керуєте ... Більш серйозно, знаючи, що edце корисно в будь-якому випадку, це гідний варіант, коли редагування потрібно сценаріювати.
Гайд

як перейти в командний режим за допомогою цієї клавіатури (я не бачу втечі; чи була для цього ще одна комбінація клавіш?)
Foon

@Foon Є клавіша втечі =) Там, де зазвичай повинна знаходитися вкладка. Зліва від Q- ключа.
хаос

6

Справа в тому, що в багатьох дистрибутивах редактори люблять nanoі picoпросто не є стандартними, а інші пакети, а саме vim-tinyє. Ознайомтесь зі списком пакетів ubuntu-minimal, vim-tinyце єдиний редактор . Відповідно до цієї відповіді, схоже, це стосується і сервера Ubuntu. Я знаю, що це стосується і базових Debian, і Fedora.

Це було сказано, враховуючи, що якщо у вас є nanoу вашій системі, я ще не побачив випадок, коли ви повинні використовувати viзамість цього, але, відтворюючи відповідь @ Волкер, якщо ви працюєте для клієнта і не маєте кореневий доступ? apt-get install nanoне принесе вам багато користі (якщо він навіть має доступ до зовнішнього Інтернету!).


4

Є низка випадків, коли vi(і я, природно, маю на увазі, vim.tinyтому що це те, що ми надсилаємо) міг бути єдиним інтерактивним редактором. Якщо ми ігноруємо метеликів та космічні промені, це здається, як найімовірніші випадки, коли це могло статися:

  • Ви використовуєте лише ubuntu-minimalбазовий мета-пакет. Це залежить від vim-tiny редакторів, але жодних інших. В даний час я не можу знайти спосіб встановити Ubuntu без standard^завдання, але ви можете його видалити після встановлення за допомогою:

    sudo apt-get remove $(apt-cache show standard^ | awk '/Package: / {print $2}')
    

    У мене є особистий досвід, коли мені передали зображення системи без standard^встановленого завдання. Якби у мене не було доступу до мережі, viце був би єдиний варіант.

  • Хротування в середовище, яке відображається лише viчерез

  • Ручне видалення всіх інших редакторів (і відключення засобів для їх перевстановлення)

  • Ручне розбиття оболонки, щоб зупинити відомі редактори, окрім viзапуску.

Справжня мінімальна установка буде найбільш ймовірною причиною, але вони досить рідкісні в наші дні. Деякі VPS та хмарні хостингові компанії використовують їх (щоб заощадити на диску настільки ж, як і все інше), але я б припустив, що вони, безумовно, не є нормою.


Дивовижна відповідь, як завжди. Я вважаю це дуже обізнаним.
Луїс Альварадо

2

У випадках, коли ви не в змозі встановити emacs, або у випадках, коли вам потрібно змінити файл конфігурації, щоб дозволити вам встановити emacs. :-p


Або у випадках, коли ви хочете використовувати покращений редактор, який кращий за emacs. ( Кий flamewar ): P
Дверна ручка

3
Звичайно, якщо ви використовуєте Ubuntu, тоді у вас вже є операційна система, тож emacs буде зайвим: v
evilsoup

Гей, приємний відгук. :-p
Крейг

2

Багато (більшість?) Установок Busy-Box мають лише vi.

Це не специфічно для ubuntu, але це стосується багатьох вбудованих пристроїв.


2

Завжди є кішка, голова, хвіст ... тож я не впевнений, що існує система, де у вас немає альтернативи, але можна знайти системи, де немає кращої альтернативи, навіть якщо ви віддаєте перевагу emacs.

Моїм прикладом була система, якою я колись керував, або була настільки повільною (або лінія була повільною і втрачаючою), що під час навігації клавішами курсору, вона часто раптово перемикалася, щоб вставити та вставити сміття в відредагований файл, і використовуючи HJKL для руху був єдиним надійним варіантом.


1
І звичайно - це добрі старі метелики !
Ліворуч близько

2

Ось випадок, коли vim - єдиний варіант в екосистемі Ubuntu: Ubuntu Snappyне має жодного текстового редактора, крім vim-tiny. Можливо, у майбутньому буде такий, але не станом на 2015-16 роки. Якщо ви будете використовувати Ubuntu Snappy через послідовну консоль або ssh, то будьте готові до використання vim.


0

Одного разу я потрапив у ситуацію, коли працювала лише лінемода Vі. Щось пов’язане з тим, що справді викрутили визначення терміналів. В основному лише vi в linemode (це поводиться як звичайне vi, якщо ви робите вигляд, що у вас є 1-й лінійний термінал), наприклад, і ed збиралися працювати, тому що єдиним визначенням терміналу було "тупо".

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.