×

Давате поговорим про VIM

Підписуйтеся на Telegram-канал «DOU #tech», щоб не пропустити нові технічні статті

А в частности про проблему «How to exit the Vim editor»

Вот статья про это:
stackoverflow.blog/...​lion-developers-exit-vim

А в ней такой вот график, в котором Украина на первом месте:

Почему так интересно?

👍ПодобаєтьсяСподобалось0
До обраногоВ обраному0
LinkedIn

Схожі топіки

Найкращі коментарі пропустити

А я вим использую потому что не смог из него выйти. =)

Отсутвие нормального ИТ образования. Большинство до сих пор смотрит на POSIX экосистему, как ксеноморфов из другой галактики.

Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Vim та Emacs обирають прихильники мінімалізму, прихильники опенсорсу, прихильники редакторів якими можно користуватись без миши, прихильники кастомізації всього і написання плагінів для себе. Зараз майже з будь якого редактора можно зробити IDE за допомогою плагінів для lsp, dap, treesitter, fzf/rg/ag Було б бажання.

Може хтось пояснить мені ОБ’ЄКТИВНУ практичну вигоду, використовувати цей калічний тетріс-лайк едітор в еру сучасних ІДЕ?

Использую vim параллельно с IDE (разными, были CLion, VSCode, Netbeans, прочие).

Вот например есть функция, где мне надо в одном куске заменить что-то по простому правилу (название переменной) или посложнее. Никакой IDE не даёт рефакторинга переименования переменной в половине функции, а многие и не дают функции search&replace в выделенной области. В vim такое тривиально.

Ещё: какое-то массовое редактирование файлов по результатам поиска. Тут уже включается шелл. Отобрал список файлов, теперь надо в них всех что-то сделать автоматом (возлагаю на sed/Perl/etc.) или хоть частично ручками (вот тут бегает vim в цикле). На IDE автоматизации такого рода нет, или делается так, что повесишься, пока разберёшься. Тут уже польза от любого консольного текстового редактора, не только vim.

Indent/deindent (где насильный форматтер не прикручен к CI правилам, или в питонах, где программист сам вынужден этим управлять): vim — или << >> в выделенном блоке, или вертикальные блоки. Сделать такое в IDE — снова где просто нет, а где фиг поймёшь, как вызвать.

Если проблема с кодировками: набрать :e ++ff=unix или :e ++enc=cp1251 — банально. В IDE задолбусь выяснять, куда нажать.

А ещё в отличие от типового IDE, vim по умолчанию правильно терминирует последнюю строку:) вроде бы мелочь, а вот приводить в чувство исходники после коллег, которые не умеют / не хотят следить за этим, задалбывает. Uncrustify для починки подключен не всегда.

Это не значит, что пользуюсь только им — увы, я слишком ленивый для этого. Но и без работы хотя бы вспомогательным редактором он не обходится. Тут с ходу вспомнил только такой мелкий набор функций, реально их ещё два раза по столько же.

На хабре ктото писал что это из за большого числа джс-разрабов залетающих «случайно» на сервер

Все просто — у всеx Маки, но все запускают на них виртуалки с Виндой и работают :)) А случайно зашедшие в vim теряются, не находят Сtrl+Break на клавиатуре и умирают в отчаянии... самые стойкие добираются до stackoverflow.

ed — наше всё!

A vi — для ламеров...

Я тут один пользуюсь редактором встроенным в Midnight Commander?

Да все пользуются, только стесняются признаться ;)

било дєло, але коли мене почала діставати гальманутість — почався Vim
mc(edit)уже років з 10 не бачив
dou.ua/...​rums/topic/20717/#1113542

тоже иногда юзаю (особенно на нетбуке)

Без инфорации об официально вошедших в vim говорить о чём-либо по данным о пытающихся выйти безсмысленно!

після виходу sublime (і sublime-like редакторів atom, vscode) інвестувати в vim/emacs не завжди має сенс (можливо тільки в базовий vim чисто через його універсальність і присутність всюди).

sublime своїм command palette і іншими маленькими і дуже зручними фічами дуже сильно пішов вперед в плані продуктивності, мишку можна (практично) не чіпати, learning curve дуже хороша, в порівнянні з vim/emacs, система і якість плагінів на рівні а то і краще, перфоманс краще обох (гугліть перф тести редакторів, особливо великі файли). продуктивність майже нічим не поступається vim/emacs, а в середньому навіть вища

vim можна вивчити базово, щоб на ремоутних серверах щось поедітати, але з sshfs навіть це не завжди потрібно

можете кидатись гамном

після виходу sublime (і sublime-like редакторів atom, vscode

Atom + Vim mode plus + Ex-mode + go-plus — гуд

можете кидатись гамном

ці люди такі дивні, самі не знають, чого хочуть
на
www.google.com/...​ch&sa=X&&biw=1263&bih=733

Atom + Vim mode plus + Ex-mode + go-plus — гуд

емулятори якось не зайшли (нема вімовськіх розширень),
поставив шорткат в студії, відкриваю файл в вім-табі прямо зі студії коли треба

после 3х лет триала :) sublime наконец-то убил время и настроил vim с дюжиной плагинов... даже 3 cheatsheets распечатал по шоткатам для плагинов и развесил вокруг, ибо после саблайма пальцы можно сломать.... что сказать — месяца через 2 вроде как и привык, но всё равно сильно скучал по sublime. В итоге, после неудачного апдейта vundle забил опять ковыряться что там пошло не так, снёс 99% конфига и оставил очень базовый vim + купил лицензию на sublime. последний вообще ни разу никогда не подводил, ну очень им доволен
Кстати, так же советую iTerm2 tmux integration вместо олдскульного консольного tmux. Может оно и на тру, но работает замечательно и не нужно держать в голове 100500 станных tmuxых шоткатов

Everyone’s first vi session. ^ C^ C^ X^ X^ XXquitqQ!qdammit[esc]qwertyuiopasdfghjkl;:xwhat

відключити стрілочки, я давав лінки раніше

Сильно мы увязли в Vim’e

я всіх хто пита шо то таке попереджаю: «мазохістський редактор, не-рекомендую , сам не можу злізти » :D

Почему так
версия первая, юмористическая

многочисленные курсы войтивайти показывают как запускать vim на первом бесплатном занятии
а как выйти из него (vim) — только на последнем
www.youtube.com/…​4&feature=youtu.be&t=3265

версия вторая, реалистическая
во всем остальном мире используют более удобные редакторы

версия вторая, реалистическая
во всем остальном мире используют более удобные редакторы

Скорее во всем остальном мире «фулл стэк девелоперы» давно не лезут админить инстансы, а сбрасывают таски на админов/девопсов, у которых таких вопросов не возникает.

а как выйти из него (vim) — только на последнем

А що показувати? Всі давно знають, що якщо хочеш вийти з VIM — ребутни тачку
XD

Кстати, на тему умения vi. Как-то я попал на курсы Tivoli Storage Manager, практика была на AIX.
Оказалось, местный sh (разновидность ksh) из коробки умеет vi mode, но не умеет emacs mode (который по дефолту, например, в bash, и который в результате знают чуть более, чем все).
Но в результате я, в отличие от остальных, мог редактировать команды из истории, а не набирать их каждый раз заново :)
Сейчас, с тотальным linux вокруг, это уже байки древности, но всё равно такие случаи в принципе возможны :)

Спасибо, кэп. Я знаю, что bash и vi mode умеет. Но тот [k]sh умел _только_ его.

Оказалось, местный sh (разновидность ksh) из коробки умеет vi mode, но не умеет emacs mode (который по дефолту, например, в bash, и который в результате знают чуть более, чем все).
это из категории анекдотов про двух бабок и зеленую радиацию

GNU GPL не позволяет включать emacs непосредственно в BOS проприетарной (закрытой) ОС
при этом официальные сборки под AIX (emacs, bash, ...) доступны от IBM/BULL, просто отдельно

при этом официальные сборки под AIX (emacs, bash, ...) доступны от IBM/BULL, просто отдельно

В 2001-м этих официальных сборок ещё не существовало, сюрприз :)
Ну и у той конторы не было причины их ставить, даже если бы существовали.

В 2001-м этих официальных сборок ещё не существовало, сюрприз :)
AIX 5L — это 2000 год

[хором] сюрприз :-)

AIX 5L — это 2000 год
Значит, поставили бы где-то к 2003, не раньше.
(Кстати, вики говорит про 2001. Откуда инфо про 2000? Версии ограниченного распространения, всякие внутренние беты и т.п.? Тогда точно неинтересно.)
[хором] сюрприз :-)
Пофиг. Слишком мелкий зазор.

Кстати, вики говорит про 2001

википедия как раз говорит про 2000 год релиза AIX 5L :-)
май 2001 — это уже 5.1 с обновленным AIX Toolbox for Linux Applications, вызвавшим массу вопросов у тех, кто годом ранее инсталлировал первый :-)

Какие плагины используете?

indentwise — это обязательно.
Дальше уже можно думать по обстановке (я в последних настройках больше ничего и не ставил, хотя это из-за сочетания лени, смены языка и подотрасли).

Редактор как редактор, юкс ниже плинтуса. Юзаю для редактирование конфигов, ну максими баш скрипты.

А в ней такой вот график, в котором Украина на первом месте
Почему так интересно?

может все дело в том, что у многих первым программерским редактором был нотпад++, а потом сразу IDE, и впервые столкнувшись с вимом юзеры нотпада++ сразу задаются вопросом: «WTF?»

Как то так)

з.ы. вот кому-то нравиться вим, кому-то нано, а мне нравится joe (который вполне может эмулировать некоторые консольные редакторы — и nano (точнее pico) — jpico, и емакс — jmacs, и вордстар — jstar, и еще какой-то. А вот вим, к сожалению, он эмулировать не умеет).

я имел ввиду первую мысль (эмоцию) при виде консольного вима)
Думаю ты тоже сперва удивишься, если тебе дадут рубить деревья, не обычным современным топором или пилой/бензопилой, а каменным топором)

Лучше сравнивать не с каменным топором, а с ножом швейцарской армии в увеличенном и электрифицированном варианте. Хотя тут все сравнения кривы.

I’ve only restarted my Mac 3 times in the past 6 months, each time was to exit Vim safely.

© twitter.com/…​status/867325703506853889

Почти в тему, для любителей Vim посоветую VimFX. (на Chrome)
Позволяет почти не пользоваться мышью. Правда я всё никак на него полностью не перейду.

Потому что єто vi (vim) — из него нельяз війти :) Рассуждения на тему «почему люди юзают на серверах bash, perl — а не новомодную очередную хе...ю» :)

“I’ve been using vim for 15 years now, and let me tell you, I just can’t quit it. No, seriously, I cannot quit the damn thing, so I just :e and edit all the files in the same process that keeps running”

А я вим использую потому что не смог из него выйти. =)

Это единственное что я помню про vim — :wq С тех пор как узнал про nano vim нигде не запускал. Это самый ужасный редактор с точки зрения usability. Может в нём и есть какие-то фичи, но неудобство использования сводит их на нет. Сложненько в 200Х пользоваться редактором, к которому нужно прочесть документацию чтобы вообще хотя бы сдвинуть курсор с места. Может в 79х-80х это и было нормальным. Сейчас нет.

Почему график именно такой — а кто его знает.

С тех пор как узнал про nano vim нигде не запускал.

О Митра... я бы понял ещё, если бы упомянули joe, или mcedit. (Ограничимся в данной дискуссии рамками чисто консольных средств.) Но nano??? Это что-то клиническое и требует врачебного вмешательства.
(Это не только моё мнение — на прошлой работе был консенсус — на всех новых машинах сносить nano и ставить vim и joe.)

Сложненько в 200Х пользоваться редактором, к которому нужно прочесть документацию чтобы вообще хотя бы сдвинуть курсор с места.

Для этого существуют стрелки, точно так же как во всех прочих редакторах.

Я много лет пользовался впараллель joe и vi разных видов (nvi, elvis, vim). В конце концов остановился на vim по умолчанию, а остальные — по явному запросу. Потому что реально удобно то, что и базовые средства доступны влёгкую, и огромное количество расширенных возможностей достигаются в пару кнопок.

Для этого существуют стрелки, точно так же как во всех прочих редакторах.
На одном российском хостинге много лет назад нужно было поправить crontab, и там стоял vim. И стрелки не работали, нужно было жать ijkl или что-то такое, а потом a для собственно редактирования, а потом esc, :wq. Какое-то убожество из прошлого века, фу.

«На одном российском хостинге» скорее всего сломали всё, что могли. И преимущество vi-like редакторов в том, что они могут работать и в условиях, когда в terminfo бред. Nano, joe, emacs, и прочие — начинают нормально работать только тогда, когда terminfo корректное и уместное.
Так что не туда своё «фу» адресуете.

«На одном российском хостинге» скорее всего сломали всё, что могли.
Всё может быть.
И преимущество vi-like редакторов в том, что они могут работать и в условиях, когда в terminfo бред. Nano, joe, emacs, и прочие — начинают нормально работать только тогда, когда terminfo корректное и уместное.
Не знаю, не сталкивался (к счастью)
На одном российском хостинге много лет назад нужно было поправить crontab, и там стоял vim. И стрелки не работали, нужно было жать ijkl или что-то такое, а потом a для собственно редактирования, а потом esc, :wq. Какое-то убожество из прошлого века, фу.

Вангую — это был vi, а не vim.

Что, одна буква — и такая большая разница? Ужас.

Да. В этой одной букве и суть VIM (VIM == VI improved).

vi это:
1) исходная версия редактора, присутствовавшая в Bell Unix;
2) сейчас — общее название группы редакторов, характерных следующим:
* разделение режима вставки и режима команд;
* система команд, унаследованная от исходного vi;
* ed-подобный строчный режим, запускаемый по отдельной команде;
3) в большинстве Linux-дистрибутивов — или vim-tiny, или другая крайне урезанная сборка vim. Возможно, Вы столкнулись как раз с такой версией.

В BSD-системах редактор группы vi присутствует в базовой поставке, обычно это вариант nvi.

И да, одна буква — и такая разница :)

noremap <Up> <NOP> noremap <Down> <NOP> noremap <Left> <NOP> noremap <Right> <NOP>

часто делают, если хотят переучиться.

Но nano??? Это что-то клиническое и требует врачебного вмешательства.
вполне норм пару слов подправить

(Это не только моё мнение — на прошлой работе был консенсус — на всех новых машинах сносить nano и ставить vim и joe.)
с diversity у вас там явно был напряг
с diversity у вас там явно был напряг

О да, у нас там и Windows не было, представляете? Всё, ждём инспектора по diversity со штрафом.

Всё, ждём инспектора по diversity со штрафом.
low diversity это и есть штраф сам по себе. нестабильная система.
low diversity это и есть штраф сам по себе. нестабильная система.

А введение Windows или редактора nano повысит её стабильность? Спасибо, это тянет на шутку недели :))

не путай причину со следствием. неадекватная реакция на альтернативный редактор уже звоночек. Никто же не заставлял нано пользоваться силой?

Никто же не заставлял нано пользоваться силой?

Можно считать, что заставлял. Потому что он включался автоматом на любое редактирование, которое неизбежно происходило (vipw, visudo, crontab -e, и так далее).
Можно, конечно, было поиграться с приоритетами в update-alternatives. Но зачем, если nano не нужен, и без него просто проще?

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

(На самом деле, был сделан образ, в котором, в числе прочего, были заменены редакторы. И всё ставилось с этого образа уже с готовой настройкой. После этого можно было EDITOR не выставлять;))

ну, и при чем тут неадекватность nano к тому что вам сложно было переменные среды толком настроить?

Это Вам сложно что-то настроить, а мы удалили лишнее.

Пусть nano просит свою квоту, убежища, и всего, что ему надо :)
А на наших серверах у нас абсолютная монархия.

Но зачем, если nano не нужен, и без него просто проще?

нано нужен) по крайней мере для тех, кто ниасилил вим или емакс)

Неправда, это очень удобный редактор если вы поняли зачем сделаны режимы так ... потом все очень логично и на своих местах + плагины + все настройки автоматизируются ... это хоть не основной редактор но он всегда со мной. Как РЕДАКТОР он самый лучший (emacsers wouldn’t agree though ;) )

Vim — це як хороший смак, його пізнання кращає з віком.

Я ним активніше почав користуватися, коли побачив, як співробітник у панелі MC шукає функції у кількох файлах. Я відкрив оцю pdf на главі 7 (Commands for programmers, 68 сторінка)
ftp.vim.org/…​/doc/book/vimbook-OPL.pdf
і після того понєслася (ctags, cscope), докрутив з часом трохи плагінів

Далі, від автора vim — реально, повторювані штуки колись надоїдає повторювати і знаходиш можливість їх пришвидшити
www.moolenaar.net/habits.html

Потім ще одна крута стаття з картинками ’ви всьо дєлаєтє нєправільно’
www.viemu.com/a-why-vi-vim.html

І це от теж
stackoverflow.com/…​-with-vim/1220118#1220118

і це теж, тільки пізніше, бо для новачка там абракадабра
я з цієї статті собі відключив стрілочки, і таки помічне, руки перестали за ними лазити
stevelosh.com/…​10/09/coming-home-to-vim

Это самый ужасный редактор с точки зрения usability.
так есть же Cream — cream.sourceforge.net . Делает из «самого ужасного редактора» вполне себе обычный редактор со стандартными хоткеями а-ля Ctrl+S и т.п. Правда виндовая его версия с 7-м вимом идет (насчет линуксовой и маковской версий не знаю — не юзал), поэтому не знаю, установится ли данная хрень на последнюю версию вима или нет)

для чого???

Делает из «самого ужасного редактора» вполне себе обычный редактор со стандартными хоткеями а-ля Ctrl+S и т.п.
щоб потім у консолі за звичкою натиснути і обламатись?
unix.stackexchange.com/…​-s-hang-terminal-emulator
для чого???
это уже надо спрашивать у тех извращенцев, что данную надстройку над вимом писали)

но я думаю, что это тупо экспериментальная хрень, основной смысл которой — показать, что можно извратиться и сделать из вима какой угодно редактор)

мне nano больше нравится — только не спрашивайте чем.
в целом — вопросы про excel и word, я уверен, заткнут за пояс любой вопрос по vi.

Блин, это мой постоянный вопрос!

Разбивка по языкам тоже любопытна

еще бы мерялись сколько людей умеет делать нумерацию в microsoft word не линейную.
с головой хватает простого nano, ибо если надо чет подправить в конфиге, это обычно найти и подправить одно слова. это 80% случаев. с такой частотой, когда натыкаюсь на остаточные 20% каждый раз забываю все фишки с которыми был ранее знаком в vim (удаление целиком слова, до конца предложения и т.п.). и нет ощущения что этого мне не хватает, ибо выглядит уже микрооптимизацией. сэкономить 3 сек раз в пару месяцев.

Как будто знание vim — это маст хэв и без него ты — не разработчик.
Статистика ни о чем

Все они не идут ни в какое сравнение с edlin! )

teco!

так теко — это прародитель емакса) так что емакс все-таки рулит)

тогда уже:
— оба эти парня — фигня, сублима рулит.

холивар vi vs emacs шел десятилетиями

самое время старикам подвинуться, дать дорогу молодым и энергичным.

Украинские войтивайтишники добрались до stackoverflow. Главное чтоб эта инфографика не попала на стол европейским и американским заказчикам

я с богоизбранного виндоуса выхожу клацнув крестик.

а F2 разве не там работает, я вроде всегда жму его

это mcedit или key bindings прописаны на ф2

How to exit the Vim editor
Всегда интересовало: Я единственный человек которому отображается такое вот при запуске ВИМа
~                              VIM - Vi IMproved                                
~                                                                               
~                               version 7.4.8056                                
~                           by Bram Moolenaar et al.                            
~                 Vim is open source and freely distributable                   
~                                                                               
~                        Help poor children in Uganda!                          
~                type  :help iccf<Enter>       for information                  
~                                                                               
~                type  :q<Enter>               to exit                          
~                type  :help<Enter>  or  <F1>  for on-line help                 
~                type  :help version7<Enter>   for version info
UPD. Разметка на ДОУ как всегда прекрасна

Проверил на убунте 16.04 — и ви и вим сразу файл открывают, без таких приглашений.

Такая картинка возникает, если его запускать без указания файла.

Ну скорее всего проблемы возникают когда надо срочно отредактировать файл, особенно на незнакомой системе. А когда пользователь запускает пустой вим, то он вероятно что-то про него прочитал предварительно.

ПС: в ви подсказки нет.

Отсутвие нормального ИТ образования. Большинство до сих пор смотрит на POSIX экосистему, как ксеноморфов из другой галактики.

ИТ образование не обязательно под Unix заточено.
Похоже что такие «интересные» хоткеи в vim, emacs, screen и других тулзах в мире Unix устоялись в давние времена, когда клавиатура сильно отличалась от современной. В то время как современная клавиатура несет наследие адаптации под DOS и Windows, с времен когда софт стал более юзер-френдли и хоткеи стало принято ассоциировать с первыми буквами английских слов, а не с чем придется.

Viное :q от quit и происходит, по первой букве.

А IT образование нормальное заточено под Unix потому что вещи вроде основ ОС, компиляторов и т.д. проще на Unix изучать.

на ми не шукаємо легкий шляхів)

Как раз легких, потому что POSIX надлжащим образом структурированый и документированный стандарт, опирающийся на более ранние стандарты, а также в подавляющем большинстве случаев доступен в открытых реализациях.
Win-платформа — это классическое «X&X и в продакшен», где нет ни устояшегося АПИ, ни архтитектуры ни, наконец даже внятной документации от производителя.

Перед этим надо еще очень интуитивную комбинацию Shift+" нажать. Спасибо конечно, что хоть курсоры добавили, а то могли оставить hjkl-навигацию от терминала ADM-3A.

Да, попутал, писал о vim глядя на выбор окон в screen.
Сложно или не сложно это другой вопрос, но контринтуитивно — это да.
Это как зайти в 3ds Max после AutoCAD и SolidWorks.

Осилить-то несложно. Но если без предварительного опыта набрал в консоли crontab -e, а там стоит vim — придётся лезть на SO чтобы понять как отсюда выйти. Это портит впечатление. Когда знаешь — то действительно думаешь «что тут непонятного?»

потому что гладиолус.
статистика ни о чём — в процентах не имеет смысла подобное анализировать.
6% — это 6 из 100 пользователей vim’a? или 60 000 из 1 000 000?
то же самое и про остальных.

Там же написано прямо на графике — процент от всего трафика с тегом vim на СО.

то есть, без разделения на страны?
типа, суммарно из трафика по тегу vim со всеми возможными вопросами почти 30% траффика было на вопросы про выход из него?

как я понимаю: имеется в виду (траффик по vim quite для указанной страны) / (общий траффик по vim для страны)

ZZ !

«How to exit the Vim editor»

Не, чуваки) все проще. Просто надо юзать gVim. :-)
«Файл -> Выход» или «Файл -> Выход с сохранением» xD
З.Ы. у меня gVim русскоязычный, в англоязычном gVim’е проблем с выходом думаю тоже быть не должно даже у чайников))

Гаразд брехати! По скайпу він говорив... В Китаї...

Коли був трансфером в аеропорту, не зміг скористатись ні одним звичним сервісом.
Мабуть, дійсно — паркан. Треба було заздалегідь підготуватись.

Они не ходят на стековерфлоу и гуглом не пользуются. У них свои копии всего.

что они таки используют линукс
Таки очень редко. Опыт 2х компаний показывает что даже виндоз98 им милее чем убунта\минт и производное от них. Даже с гуями аля вин7\ХР

скоее каждый второй пытается его использовать

Там еще один график «What developers are most likely to get stuck in Vim»...

Там на первом месте jquery и css.

IT в Украине специализируется на web design ? Похоже на правду?

Интересно...

Есть у меня среди клиентов одна компания в которой UI разработка была сугубо украинской. Теперь они наняли китайцев ( C++/WinAPI и UI/HTML/CSS skill sets).

Т.е. это веяние времени ...

Підписатись на коментарі