Як я можу надихнути інших на використання vi / Vim?


37

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

Як я можу продемонструвати силу vi / Vim іншим таким чином, щоб надихнути їх на те, щоб пізнати це та використовувати його?

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


4
Я читаю вказівки щодо суб’єктивних питань і думаю, що це підходить.
Уайлдкард

@Wildcard, можливо, він підходить для суб'єктивних питань, але він справді занадто широкий. Див. Meta.vi.stackexchange.com/q/1278/205 для обговорення у нас з подібним "суб'єктивним" питанням.
муру

Я бачу вашу думку. Я прочитав цю дискусію (і кілька пов’язаних між собою дискусій). Я все ще думаю, що це питання є доречним, але я не думаю, що я повинен це обговорювати тут; чи є місце в мета, де ми повинні це обговорити?
Wildcard

@Wildcard Ви завжди можете опублікувати запитання щодо Vi та Vim Meta щодо цього питання.
муру

Відповіді:


54

Хоча я вклав певних зусиль у Vim та його екосистему, я не намагаюся активно перетворювати інших. Більшість людей, з якими я працював, взагалі не вкладають багато часу в покращення робочого процесу та набору інструментів, оскільки вони задоволені тим, що мають. Я вважаю це прекрасно… і мені б не хотілося бути ціллю постійного прозалітизації, пов’язаного з редакторами, тому я не нав'язую цього іншим.

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

На моїй останній роботі колега дуже зацікавився Вімом і досить добре знав ази ( vimtutor). Йому було достатньо, щоб він міг швидко редагувати, але йому бракувало впевненості та ноу-хау, щоб насправді перейти на Vim (чогось насправді хотів). Одного разу йому довелося зробити серію повторюваних праць у великому файлі JSON вручну. Він був у захваті від ідеї витратити годину, роблячи це, і підійшов до мене в пошуках швидшого / розумнішого рішення. Звичайно, простий макрос зробив цю роботу менше ніж за хвилину (включаючи запис), що дозволило мені пояснити кілька ключових понять ...

Одна з проблем, з якою стикаються новачки - це "Що тепер?" момент, що настає відразу після vimtutor. Вім дуже добре приховує свою красу, і не багато людей мають бажання зламати цю оболонку без сторонньої допомоги. Я можу надати таку допомогу, якщо потрібно… але я ніколи не змушую Віма до інших.


20

Я використовую Vim для всього. Я маю на увазі все. Програмування, обробка текстів, написання романів тощо. Все. Я сидів у автосалоні, використовуючи Surface Pro 3 під управлінням віртуальної скриньки Linux з Vim, і люди заводили зі мною розмови про те, що я роблю.

Просто використовуйте Vim. До вас приїдуть люди, щоб дізнатися, що це ви робите і чому. Я зазвичай пояснюю це так -

Я використовую Vim, оскільки він має дуже маленький слід. Microsoft Word - це кілька гігабайт, і в моїй Surface є лише 128 ГБ місця. Мені потрібно максимально використовувати свій простір, і Вім допомагає мені це робити. Це також розширюється і допомагає мені залишатись зосередженою. Ось, подивіться. Демонструйте кілька моїх плагінів і покажіть, як Vim у повноекранному режимі по суті покриває все, щоб я міг подумати .

Я часто демонструю LaTeX у поєднанні з Vim. Я буду створювати файл LaTeX, а потім компілюю його в прекрасний PDF за допомогою шаблону, який у мене є. Я також демонструю свій лист та резюме шаблонів. Я підкреслюю, як важливо відривати стиль від змісту. До цього моменту люди вже не цікавляться тим, що я маю сказати, і шкодую, що говорили зі мною.

Вони шукають вихід із розмови, і я повертаюся до написання. Vim - це релігійний досвід більше, ніж текстовий процесор.


3
Просто цікаво: чи пишете ви також електронний лист у vim? (Я так!)
Оліфаунт - відновіть Моніку

5
@Oliphaunt я пишу електронні листи у VIM. Мій клієнт електронної пошти на вибір MUTT, і коли я редагую або створюю нову електронну пошту, він відкриває мій редактор, який я обрав. Я навіть використовую VIM для додавання URL-адрес до свого читача RSS-каналів (newsbeuter).
ILikeTurtles

7
Деякі люди вирішили відредагувати мою відповідь, заявивши, що я використовую Visual Basic. Я використовую Virtual Box і запускаю Linux поверх Windows. Однак я вважаю, що ці зміни є надзвичайно цікавими, тому я просто залишу це. Це неначе грати телефоном із правками. Історія просто змінюється, чим більше її редагують. Весело.
ILikeTurtles

2
@ Буде так. У мене VM, який займає щось на зразок 2 Гб або менше. Я вважаю за краще встановити всю операційну систему, VIM та всі інші мої інструменти, ніж встановити 4 Гб або будь-яку копію Microsoft Tools. Сама VM може розширюватися, якщо мені це потрібно, але це ще не сталося, оскільки я працюю з текстовими файлами в основному при роботі з цим комп'ютером. Якби я використовував FreeBSD, я міг би запустити ще менший слід і, ймовірно, запустити весь VM під концерт.
ILikeTurtles

3
Office 365 вимагає до 6 Гб місця на жорсткому диску та до 4 ГБ оперативної пам’яті. Я можу запустити цілу ОС Linux, використовуючи 4 Гб місця в HD і 1028 Мб оперативної пам’яті. Менше, якщо я хочу штовхати речі. Я запустив FREEBSD у вітрині та дав йому лише 256 Мб оперативної пам’яті. VIM для мене замінює Office, але крім того, повна установка ОС дає мені набагато більше інструментів, ніж Office надає з меншим шрифтом. Сподіваюся, це має сенс.
ILikeTurtles


13

Як хтось, кому довелося вивчити Віма на моїй останній роботі, я б сказав, що найбільша перешкода була поставлена ​​перед установкою "за замовчуванням", у якій не було встановлено жодних параметрів. Я провів більшу частину часу, кажучи: "Чому він діє так, коли всі очікують, що це зробить навпаки?"

Виявляється, кожен інший вже встановив якісь «розумні» за замовчуванням. Як тільки я зрозумів це, я був набагато щасливішим, і "дав йому шанс" дізнатися більше. Через кілька днів цифровий планшет не працює, вкладки помиляються, пошуки не працюють добре і т. Д. Я був готовий кинути рушник і ніколи не озирнутися назад.

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


4
Розумієте, я підійшов до цього, не маючи жодного з цих сумних очікувань, які ви згадали. Цьому сприяло усвідомлення того, що він народився десятиліттями до того, як загальні користувачі продуктів знайомі в наш час. Я відкритий для кращих способів роботи, будь вони знайомі чи ні. І дійсно, обсаджувати новачків із власним файлом налаштувань - не дуже вдалий підручник!
підкреслити_10

+1. Я мав той самий досвід і не міг більше погодитися Коли вам доведеться завершити роботу, перехід на будь-який новий редактор може бути болісним / неможливим. Не знаєте, як просто передати .vimrc, але пояснити, що це таке, і допомогти новому користувачеві встановити кілька за замовчуванням для їхнього стилю роботи, не тільки допоможе їм швидко зробити продуктивність, але й послужить способом почати викривати частину vi (м) магія.
Буде

1
Читання .vimrcфайлу з купою корисних за замовчуванням дійсно корисно. Я багато дізнався про Vim, просто переглянувши параметри, встановлені в github.com/amix/vimrc
icc97

Я повністю згоден. Vim був би ще популярнішим, якби було ще кілька батарей. Погляньте, наприклад, на те, що мені довелося зробити, щоб зробити роботу по заміні слів . Наразі він vimпропонує основні будівельні блоки, з яких потрібно налаштувати / запрограмувати текстовий редактор, про який завжди мріяли.
Серж Стротобандт

9

Найкращий спосіб надихнути стару собаку на використання нового фокусу - це взяти щось, що вони роблять, і показати, як це можна зробити швидше / легше / краще іншим способом.

Існує, безумовно, крива навчання, хоча це просто відвертає деяких людей. Один жарт іде

Як ви справді генеруєте випадковий рядок? Попросіть новачка закрити vim.


1
Влучне зауваження. Оскільки хтось, хто має тенденцію бути орієнтованим на клавіатуру, а не на мишу, vi/ mу багатьох ситуаціях пропонує мені підвищення швидкості та / або уникає перемикання між пристроями введення. Крім того, я дуже багато командних рядків (Linux, Cygwin), і viзавжди просто там .
підкреслити_10

8

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

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

Також перегляньте наступні сторінки на корисні прийоми Vim:


1
Ваш другий абзац точковий. За винятком болю ще гірше, коли ви бачите їх за допомогою vim , у режимі вставки та натисканням клавіш зі стрілками, щоб переміститися праворуч до кінця рядка . Arrrggh! (Я не вигадую це.)
Wildcard

1
Погодившись з @Wildcard, змусив мене з розуму спостерігати за тим, як мій колега намагався проаналізувати дані з фіксованою шириною, підраховуючи натискання клавіш , зайняв його пару тижнів, моя допомога була відхилена. Зітхання
roblogic

7

Найголовніше: не натискайте, не євангелізуйте. Будьте абсолютно впевнені у своїй мотивації. Якщо є навіть натяк на місіонерську роботу, не починайте. Переважна більшість людей реагує або на роздратовану, або на агресивну, оскільки сама пропозиція перевірити черговий робочий процес несе в собі критику. Щоб ваш робочий процес був кращим, ніж їхній. Що закриває багатьох людей. Насправді, це загальний принцип, який працює незалежно від налаштування (подумайте, вегетаріанці / їдять м'ясо, демократи / республіканці, марки автомобілів, рецепти, ...) Усі вони роблять те, що роблять, тому що вважають, що те, що вони роблять, - це правильний спосіб зробити це.

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

Я пропоную підняти тему, коли немає строку, у невимушеній обстановці. Поговоріть зі свого досвіду, таким чином, наскільки ви були вражені та наскільки ефективніше ви зараз почуваєтесь. Ніколи не порівнюйте. Ніколи не кажіть "краще", оскільки це було б абсолютним твердженням, просто просити його оскаржити. Завжди йдіть із "Я є таким продуктивнішим". Таким чином, інша людина не може відмовитись від того, що ти справді можеш бути більш продуктивним і ти не тиснеш. Якщо інший підбирає тему, будьте обережні і, можливо, запропонуйте поділитися посиланням або двома, наприклад, Vimcasts - це чудовий ресурс.

Навчання Vim - це пекельне завдання, особливо зважаючи на шалену кількість часу, який ви вкладаєте, щоб правильно здійснити перше налаштування. У мене було стільки запитань у голові за той час, і про кожну другу постановку здавалося безглуздим або навіть ворожим. Це протилежність інтуїтивному. Або хтось дотримується цього і стає прогресивно більше "ага!" моменти або просто піднесуть його для редактора, схожого на Word. Що б не працювало.

Зрештою, справді не варто дискутувати: усі просто використовують те, що робиться. У цьому і полягає краса вихідного коду: він універсальний.


7

Перший раз, коли я використав vi, був у класі "вступ до Unix". Вчитель не дуже добре знав це, і він представив це дуже невміло. Нам довелося запам'ятати достатньо, щоб обійтись, якщо ми коли-небудь застрягли в системі, в якій нічого іншого не було встановлено. Я не дивився на другий семестр після цього семестру. Ось так ви не євангелізуєте vi, і я думаю, що багато людей мали свій перший досвід.

Через кілька років я був у корпоративному класі безперервної освіти про Perl. Викладач використовував vim у своїх демонстраціях і пропонував допомогти людям зі стороною, хоча це не було основною метою класу.

Неофіційний девіз Perl - TMTOWTDI (існує декілька способів зробити це). Коли клас задаватиме питання, викладач буде вносити зміни, щоб показати альтернативи, швидше, ніж він міг описати правки словами . Я звик читати код під час його редагування, але для нього редагування відбувалося у шквалі клавіш, тоді пояснення йшло, з льодовиковою швидкістю порівняно. Якби йому не довелося зупинятися, щоб пояснити нам редагування, він би вже перейшов до наступного завдання.

У мене є небагато подібних можливостей продемонструвати vim:

  • Обмітуйте зустрічі
  • Парне програмування
  • Технологічні переговори
  • Демонстрація програмного забезпечення

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


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

6

Саме внутрішні рухи змусили мої очі перетворитися на плаваючі серця для Віма. Окрім .повторень та префіксування речей з підрахунками, показ внутрішніх рухів, як правило, є однією з перших речей, які я показую / ділю, коли хтось запитує мене про vim. ci(або gUi>або diw.

g;і g,стрибати навколо місця, яке ви відредагували, як правило, добре для розширення очей або двох.


2

Хоча viя маю шановну родовід у історії обчислень, я б рекомендував зосередитись на цьому vim. Це повнофункціональний редактор з неймовірними можливостями, що відповідає будь-якому з його конкурентів. Єдиний його недолік - крива навчання; знадобиться час, щоб отримати "Vim менталітет" та м'язову пам'ять. Я думаю, що варто вартих зусиль. У вашому розпорядженні багато сил, коли ви станете досвідченими vim.

  1. Продемонструйте силу vimscript для автоматизації нудних завдань з обробки тексту.
  2. Встановіть круті плагіни на кшталт vim-airline, адже всім подобається хороший інтерфейс користувача.
  3. Навколо є безліч безкоштовних навчальних посібників, як цей .
  4. vi/ vimвстановлюється у всіх системах на базі Unix; тому будь-який професійний сисдамін повинен володіти цим знаннями.

Справжньою сутністю мого питання є "Як" щодо пункту 1 вашої відповіді. Чи мали у вас досвід, який показував це іншим чи показували себе?
Wildcard

Я не так багато демонструю, але я використовую невеликі сценарії vim для того, щоб очищати текст, але, як ви, я не маю особливого інтересу з боку колег (вони вважають за краще скидати вихід у масивні документи, які ніхто не читає)
roblogic

0

Я люблю VIM, але крива навчання крута.

Будь-який професіонал, який ще не прийняв VIM, навряд чи буде переконаний аргументом . Тільки по необхідності.

Слухаючи людей, які кажуть, що вони використовують VIM регулярно, найбільший випадок використання - це адміністратори, які керують декількома * NIX-машинами віддалено з CLI через SSH.

VIM буквально встановлюється майже на кожному * NIX-апараті планети.

VIM віком 25+ років і незмінний з моменту початку його використання в 1998 році.


0

Просто попросіть учня поміняти два слова на їх процесор Word ™…

… Потім покажіть, як це робить майстер vim. (Ось відображення для цього; докладніше тут .)

Нарешті, нехай учень задумається, чи справді він працював із текстовим процесором до цих пір.


1
Розумний, але контрольно-простір видалить слово майже в будь-якому редакторі Windows, а альт-пробіл - у майже будь-якому редакторі Mac.
Wildcard

@Wildcard Я сумнівався між видаленням та вибором моєї першої ідеї . Ви абсолютно праві, звичайно. Тому я змінив його назад, щоб вибрати.
Серж Стротобандт

Ще - стрілки ctrl-shift вліво / вправо (або стрілки alt-shift для Mac). :)
Wildcard

@Wildcard Я думаю, я це зараз отримав. Мені довелося реконструювати свої минулі міркування. ;)
Серж Стротобандт

@Wildcard Дякуємо за наполягання. Мені важко було згадати, що саме змусило мене до кардинальних змін gvim. Зараз я добре пам’ятаю. Під час написання тексту англійською мовою як неактивного мовця було розміщення / переміщення слів у реченні. Я написав власні віпскрипти для того, щоб робити саме це.
Серж Стротобандт

0

Vim також про переоцінку простих текстових файлів

У контексті створення документа цінність vimполягає не лише в його казкових навичках редагування слів. Vim - це також шлях до відновлення значення всюдисущого простого текстового файлу та його гарантії позачасової сумісності.

Vim також має на меті орієнтацію виключно на зміст; не формат

Якщо хтось не займається редагуванням веб-сторінок, відокремлення вмісту від формату може бути концепцією, що розбиває парадигму, для будь-якого постійного офісного працівника. З цієї причини мені подобається показуватися gvimяк редактор Markdown у поєднанні з Pandoc та, можливо, а makefile.

Це також є хорошою демонстрацією філософії Unix або GNU / Linux комбінування та конвеєрних програм, які надзвичайно хороші лише в одній справі.

Як бонус, ви побачите, що основні vimкомбінації клавіш використовуються в багатьох інших програмах GNU / Linux.


0

Ергономіка

При правильному налаштуванні я можу працювати годинами, не отримуючи жодних болів в плечах або спині.

Право установки, звичайно , різні для всіх, але з допомогою Vim в терміналі, відображення Escдо Capslockі відключення миші і клавіш управління курсором це початок хороше.

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