Comments 370
Vim позволяет тому, кто умеет им пользоваться, значительно ускорить работу с кодом.
ПО сравнению с какой программой? nanо, блокнот? НЕ сказал бы что у меня есть проблемы с скоростью написания кода. скорее проблемы с скоростью понимания но скакать по вкладкак довольно удобно и мышкой. а клавиши Page Up Page Down помогают делать это быстро
НЕ сказал бы что у меня есть проблемы с скоростью написания кода
Ну так тут и не утверждают, что у вас есть проблемы с написанием кода.
Написано же: ускорить работу с кодом.
А если надо в обратную сторону — какой будет вимовский аналог «show usages»?
/это_ищу
Если похожее, то жмёте «N».
А реальное преимущество перед мышью будет тогда, когда вы ищете то, что за пределом экрана.
А если у меня одна переменная перекрывает область видимости другой — он тоже это корректно обработает?
И в целом проекте (размазанном по куче файлов) он тоже ищет?
Ну да. 7 лет назад я отлично изучал с помощью него кодовую базу django.
А если у меня одна переменная перекрывает область видимости другой — он тоже это корректно обработает?
Допускаю, что не для всех языков, но на C и Python с парой дополнений это делалось.
А код это всегда 100500+ строк размазаных по сотням файлов?
Ну мне повезло. Тысяча строк в десятке файлов меня не ставит в тупик.
IDE безусловно удобная вещь, это ещё не говоря о языках/платформах где без неё вообще не возможно что-то вразумительное сделать. Например, разработка под Андроид.
Честно, я не понимаю вашего негатива в сторону vim. Может всё-таки разрешите людям использовать удобные им инструменты?
P/S. Тут ещё emacs фанаты не набежали, они бы вам рассказали про правильное сочетание клавиш.
— Вот я попробовал vim и трава стала зеленее, а сахар — слаще. Короче, vim — лучше, чем любое другое средство редактирования, все переходите на него, карма очистится (даже на Хабре).
— Чем лучше-то?
— Чем другое средство редактирования.
А, ну это уже классика. Переход с обсуждения инструмента на его фанатов.
Нет ну сравнивать vim и блокнот (я так понимаю классический notepad.exe) совсем странно. Vim вполне можно допилить с помощью плагинов до "почти" IDE. Тем более что сейчас существует LSP. Да и сочетания клавиш можно запилить любые. Есть даже извращенцы которые Emacs mode делают.
Vim корректнее было бы сравнивать с тем же Emacs, Sublime text (тоже кастати был очень популярным с армией фанатов), Notepad++ (на винду всегда ставлю).
А скорость работы редактора и доступность его на любой железке уже идут как бонусом.
Но, безусловно, для этого нужен навык слепой печати.
Вы попробуйте годик поработать в нем, там поймёте.
Ты интуитивно, рефлекторно набираешь текст, пальцы и текст за ними бегут быстрее твоих мыслей
это абсурд, это ты привык думать в контексте vim, а не он такой удобный. Я пользуюсь vim когда нужно что то совсем небольшое поправить на удалённой машине, для этих задач он неплохо подходит, но ни чем не лучше nano или mc для тех кто привык работать с ними.
Но автор заявляет что VIM магическим образом позволит очень сильно ускориться при работе с кодом после глубинного понимания этой «волшебной» утилиты. Но это полный и бездоказательный бред. Единственный обоснованный плюс vim это наличие данного редактора на 99% posix платформ.
И мне абсолютно не понятно зачем из буханки хлеба делать автобус, а потом ещё и учиться его водить.
Наличие команд ускоряет работу с текстом
В нано нет команд
В вим есть
Банальный пример, получить буст в скорости работы можно, перейдя с нано на вим и зная только лишь, как работает команда delete. Ситуации, когда необходимо удалить большое количество строк в каком нибудь конфиге, возникают очень часто, и в nano вы 20 раз нажмете ctrl+k, а в vim — выполните простую d20d. Одна только эта мелочь может сэкономить десяток секунд жизни. Из таких мелочей и складывается магическое ускорение работы. Когда знаешь и применяешь кучу возможностей вим, это становится реально заметно
Как-то странно Вы скорость сравниваете. Где оценка времени на ТОЧНЫЙ подсчёт строк, которые надо удалить? Если их штуки три, выгоды нет, если штук двадцать девять — уже надо точно знать, СКОЛЬКО. Ошибся на одну — и никакого тебе преимущества. В классическом же редакторе я выделю строки почти не глядя, за исключением крайних строк. И удалю скопом
Мне это напомнило анекдот, извините.
Изобретён новейший полуавтоматический роботизированный комбайн для сбора грибов. Оператору достаточно найти гриб и ввести его координаты в систему управления, а остальное дело техники.
P.S. Я не против vim, честно. На днях по приколу часа два в нём просидел, работая над примерами кода, и даже не заплакал ни разу, почти понравилось. Раздражали только длительная (четыре клавиши, Карл! Esc, :, w, Enter) команда сохранения файла и отсутствие сохранения по потере фокуса. Автосохранение по таймеру не предлагать, укушу.
Но как длина полного тормозного пути зависит не только от эффективности тормоза, но и от скорости реакции водителя и скорости срабатывания тормозной системы, так и полное время исполнения функции редактирования зависит от времени, которое надо потратить на подготовку (в том числе расчёт аргументов, если их таки надо вводить)
d20d
Я, например, очень плохо измеряю на глаз, 20 строк надо удалить или 21. У меня так:
d20d
#fuck
u
d19d
2. то что это ровно «20» срок совсем не очевидно, это ещё нужно напрячься посчитать
да и вообще для редактирования конфигов на сервере я сам всегда использую vim и не вижу тут смысла спорить так как ни одним другим редактором я и не пользуюсь для этих целей. Но речь идёт именно о редактировании кода на локальной машине.
В обычном C, когда функция описана в одном файле, а используется в другом — тоже.
Зачем вообще использовать vim для работы с кодом, когда это задача IDE?Вы говорите так, словно IDE не содержит редактор, а у вим нет плагинов, превращающих его в IDE.
Посоветуйте для python, пожалуйста. Нужны autosuggestions и справка, запуск и отладка внутри vim.
Смотря про какой язык речь. Тонны бойлерлейта Java/C# действительно, наверное, удобнее ворочать в IDE.
Навскидку во всех без исключения остальных языках — хорошим разработчикам IDE только мешает.
А как вы сравниваете IDE и Vim? Можно пользоваться Vim для конфигов, и IDE с Vim плагином для кода, и использовать все плюшки мира)
Есть такая вещь как easymotion и подобные, позволяют довольно удобно навигироваться по коду без мышки.
Обратно: Ctrl — o
И вы действительно кликаете?
В любой нормальной IDE для этого есть горячие клавиши. В IDE от JetBrains это Ctrl-B
, например.
Симулятор, что ли, запилить, чтобы показывал случайный кусок кода и мерял затраченное время…
А как это выглядит в ${IDE}? Запишусь в очередь на изучение ;)
Это везде есть.
«перейти на вызов именно той функции, которая мне нужна, хоть я его еще даже не вижу на экране и про него вообще пока не знаю» — это оно разве?
>> Это везде есть.
В vscode, помню, не нашел как ни старался.
Ctrl-End почти везде работает
Охотно верю, я к тому, что перейти в конец файла в любом редакторе займет столько же времени, как и в vim.
Я как-то пытался освоить vim, но для себя я решил, что он того не стоит. На его изучение нужно потратить довольно большое количество времени, а выгода непонятно когда наступит, учитывая что для большинства vim-овских команд в IDE (я сейчас, в основном, использую IDE от IntelliJ, но и в других будет +- также) есть свои аналоги — комбинации клавиш. И судя по всему, таких как я большинство.
В этом случае можно часто используемым командам назначить комбинации из клавиш, которые есть на клавиатуре
И как часто вы папку открываете? Раз в день? 2 раза?
А как в vim папку открыть, простите?
Так же как и файл?
Shift+; e <пробел>
против Ctrl+O
? На мой взгляд, в vim надо больше клавиш нажать.Но как мы уже выяснили раз 20, наверно: если вам нравится нажимать больше — нажимайте больше (в обе стороны работает).
- Перенастройте клавишу Caps Lock (но это необязательно)
Caps Lock действительно самая бесполезная клавиша, но лучше на нее повесить переключение языков, если вы «счастливый» носитель кириллического языка, конечно же.
Ну нет, нет же!
/sarcasm on
Caps Lock
надо переназначить на LCtrl
/LControl
(потому что emacs
-ом надо пользоваться.)
/sarcasm off,
а нижнюю левую (у меня это fn
) — уже на переключение языков.
Еще можно нижнюю левую на один язык, а нижнюю правую пожертвовать для другого (и наклеить на них аутентичные надписи ЛАТ
/РУС
.)
Menu — переключение на En
Shift-Menu — переключение на Ru
И индикатор текущей раскладки становится не нужен!
Тут та же петрушка: Control (СУ) под мизинцом, внизу раздельные переключатели раскладки. Умели ведь!
Вот да! Помню, был у меня электронный словарь с фонетической клавиатурой (только обратной — от QWERTY) и это было чертовски удобно.
Не напоминайте мне об этой боли. Из-за этого мне пришлось, в срочном порядке, изучать ассемблер, по книжке Питера, нашего, Нортона. Потому что с такой раскладкой, без резидента переназначающего клавиши, играть на Искре 1030 в любимых леммингов (управление как на спектруме — qaop) не было ну совершенно никакой возможности! ;-)
SUN, я полагаю?
И что вешать на капслок пока не очень придумал.
Caps Lock
совершенно точно не самая бесполезная клавиша. Клавише Fn
это звание подходит гораздо больше. Или, если выбирать среди клавиш с индикатором состояния, то Scroll Lock
.
Бесполезных клавиш много разных. Только расположены они обычно не самым удобным или постоянным образом, чтобы на них вешать что-то полезное. Иногда они оказываются не такими уж и бесполезными.
Fn во многих случаях не выходит за пределы самой клавиатуры (в смысле невозможно детектировать нажатие и отпускание программно, поскольку клавиатура не порождает код нажатия или отпускания сразу после Fn, только если после нее, соответственно, нажать или отпустить другую клавишу). Кроме того без него иногда недоступны PgUp, PgDn, Home и End. Да и всякие полезности через нее часто работают вроде управления яркостью экрана и громкостью звука, включением-выключением тачпада и т.п… А еще ее иногда вообще на клавиатуре нет.
Scroll Lock часто расположен нестандартно (искал на своей клавиатуре, нашел — Fn+F12). На другой клавиатуре вообще не нашел.
Не зря то же переключение раскладок часто вешают на Ctrl, Alt и Shift в разных комбинациях. Только это порождает свои проблемы, поскольку данные клавиши часто задействованы в других комбинациях, что часто приводит к спецэффектам (часто встречаю — MS Word, переключение по Alt-Shift, сразу после переключения раскладки часто переводит в меню, после чего клавиши с буквами приводят к выбору различных пунктов меню, когда безобидно, а когда и что-то серьезно-неприятное может произойти).
Вот и получается, что CapsLock единственная "ненужная" клавиша, которая находится в подавляющем большинстве клавиатур на одном и том же месте, реально используется по назначению крайне малым количеством людей, почти не задействована в популярных и стандартных сочетаниях клавиш, иногда еще и состояние на клавиатуре подсвечивается. В результате прямо просится на место переключателя двух раскладок (при желании можно и трех, но это немного сложнее и не так удобно).
позволяет пользоваться в браузере клавиатурными сокращениями Vim, отвечающими за перемещение по документу (H, J, K, L и так далее).
Ну, вообще-то в наше время, в отличие от тех времен когда их вводили, уже и на всех клавиатурах есть стрелки и pgup-pgdn, и сам вим научился их понимать…
"… вы что, до сих пор жарите сосиски на той маленькой сковородке?"
С одной стороны — да, а с другой у клавиш управления курсором те же проблемы, что у мышей:
- Надо убирать руки с «основной» клавиатуры.
- Местоположение не стабильно.
Правда, я всё равно пользуюсь стрелками просто из-за того, что привык по другим программам)
Если программист думает быстрее, чем пишет, то это либо крайне простой код (в котором просто негде ошибиться), либо он пишет бойлерплейт вручную. Ну или третий вариант — он пишет со скоростью стенографистки, но с такой кучей опечаток, что потом так же быстро бежит по всему коду и исправляет ошибки (вероятно, за несколько проходов). Все эти ситуации не очень нормальные.
жарю. У меня нет стрелок, решил тут по старой памяти взять полноразмерную клаву — очень неудобно.
Использую капс плюс qwe asd zx для навигации, получается прям быстрее.
а мне это нравится, мейнтейнить конфиг на 500+ строк, я вот прям удовольствие получаю, когда оптимизирую свой конфиг. Тоже самое про весь мой сетап — tmux, dwm, mutt, etc.
Делитесь конфигами. :)
вот (n)vim — https://github.com/edganiukov/dotfiles/blob/master/init.vim и там еще много всего (zsh, tmux, mutt, weechat), много чего не использую уже, как история хранится
dwm — https://github.com/edganiukov/dwm
st — https://github.com/edganiukov/st
Использование Vim как среды для разработки без плагинов невозможно. Так что, основная сложность тут будет мэйнтейнить персональный конфиг на 500+ строк.
500+ строк — это фигня.
У меня скрипты на javascript для Notepad++ (плагин jN) по объему к 400 кб. приближаются. В самом большом, реализующим Intellisense для js, vbs, php Intell.js — сейчас 3,5к строк. И все равно эта хрень довольно часто ошибается. :( Надо бы доделать.
И в итоге функций не так уж и много добавил:
Скрипты->Список функций Ctrl+1
Скрипты->Перейти к определению F12
Скрипты->Вернуться назад Ctrl+-|Alt<-
Скрипты->Пойти вперед Ctrl++|Alt->
Скрипты->addToHistory..print
Скрипты->Tags navigation
Скрипты->Tags navigation->Перейти к тегу на выбор Ctrl+Shift+3
Скрипты->Tags navigation->Список тегов script Ctrl+4
Скрипты->Список объектов (Intell.js) Ctrl+2
Скрипты->Список объектов тек.файла (Intell.js) Ctrl+3
Скрипты->
Скрипты->Включить отладку Intell Ctrl+Shift+F9
Скрипты->Intelisense run ctrl+I
Скрипты->Intellisense (вкл/выкл) ctrl+F8
Скрипты->Перечитать шаблоны
Скрипты->UntilMenu
Скрипты->UntilMenu->UntilMenuCut
Скрипты->UntilMenu->UntilMenuCut->Comment selection Ctrl+/
Скрипты->UntilMenu->UntilMenuCut->Удалить строки длинее N Ctrl+Shift+K
Скрипты->UntilMenu->UntilMenuCut->Обрезать строки длинее N
Скрипты->UntilMenu->UntilMenuCut->testCMakeParser Alt+T
Скрипты->UntilMenu->Разбить строки на сегменты по 110 симв. Ctrl+Shift+S
Скрипты->UntilMenu->Удалить пустые строки Ctrl+Shift+E
Скрипты->UntilMenu->VimComplete Ctrl+L
Скрипты->UntilMenu->Сортировать строки
Скрипты->UntilMenu->Сортировать строки Desc
Скрипты->Закрыть окно сообщений Ctrl+Shift+Q
Скрипты->Templater Shift+F12
Скрипты->
Скрипты->Скобки
Скрипты->Скобки->Вставить последние 'скобки' Ctrl+B
Скрипты->Скобки->Выбрать и вставить 'скобки' Ctrl+Shift+B
Скрипты->Скобки->Выбрать и вставить 'скобки'-2 Ctrl+Shift+V
Скрипты->Скобки->
Скрипты->Скобки->Вставить скобки каждой строке
Скрипты->Скобки->
Скрипты->Скобки->Открыть каталог настройки
Скрипты->Форматировать
Скрипты->Форматировать->Форматировать Ctrl+Y
Скрипты->Форматировать->Открыть конфигурацию tidy
Скрипты->Форматировать->MinifyCSS
Скрипты->Форматировать->Форматировать *.html (тек.дир) Ctrl+shift+Y
Скрипты->
Скрипты->Time addition(2.45+20 = 3.05) Ctrl+Shift+D
Скрипты->Eval selection Ctrl+Shift+C
Скрипты->sWaper Alt+W
Скрипты->en/decode URI Ctrl+F6
Скрипты->Punto switcher F6
Скрипты->Text processors
Скрипты->Text processors->Combine lines into paragraphs Ctrl+Shift+A
Скрипты->Text processors->Объединить текст в строку Ctrl+Shift+P
Скрипты->Отфильтровать текст по выделению Ctrl+Shift+L
Скрипты->
Скрипты->Тест квадратной скобки Ctrl+[
Скрипты->Translate…
Скрипты->Translate...->getWordTranslation Alt+F11
Скрипты->Translate...->
Скрипты->Translate...->To мessage
Скрипты->Translate...->Append selection
Скрипты->Translate...->Reaplece selection
Скрипты->Translate...->
Скрипты->Translate...->Edit translate file list
Скрипты->Translate...->
Скрипты->Translate...->E:\Utils_Dicts\001.txt
Скрипты->Translate...->E:\Utils\Qdictionary7\Dicts\enrus.dic
Скрипты->Translate...->E:\Utils\Qdictionary7\Dicts\rusen.dic
Скрипты->Translate...->E:\Документы\Литература_English\Словари\001-Словарь.txt
Если бы добрые люди не подсказали, застрял бы в нем навсегда.
Это как до такого додуматься — «esc ->: -> q»
у меня это решалось проще: перезапуском компьютера :)
ctrl Z
ps
kill -9 `pidof vim`
Да, это не самый лутший способ выхода из vim, но мне помогло ;)
Кстати, по поводу стрелочек (клавиш управления курсором) и hjkl. Мало того, что до стрелочек надо руку отрывать от алфавитно-цифрового блока, так еще и на многих ноутах они могут быть размещены совершенно «дизайнерским» образом.
В браузере vim-образный tridactyl.
Я поступил радикальнее. Поставил qutebrowser
так еще и на многих ноутах они могут быть размещены совершенно «дизайнерским» образом.
Ага, особенно когда клавиши вверх-вниз имеют половинную высоту. Видимо делались для тех, у кого палочки от мороженного, вместо пальцев.
Главная проблема таких браузеров в том, что средства для подавления нежелательного контента сильно уступают таким вещам как ublock, umatrix, privacy badger etc.
И если 10 лет тому назад с этим можно было мириться, завернув браузер через squid с тем же rejik'ом, то сейчас всякой динамической гадости и трекеров стало несоизмеримо больше.
Потому пользуюсь обвешанной лисой. Благо, что хоть возможность худо-бедно изменять интерфейс через userChrome.css еще сохранилась.
В qutebrowser встроенный адблок. Особой разницы, по сравнению с той-же лисой или brave, не заметил. Единственное что немного печалит, так это отсутствие интеграции с KeePassXC. Но ничего, будет время, порефакторю свои workflow скрипты для i3wm, заодно попробую прикрутить keepassxc-cli
к браузеру.
А уж vi-расширения для браузеров — это, простите, что-то вида «я не смог адаптироваться к графическому миру, поэтому использую клавиатуру».
И представляю насколько уныло бы было без этих плагинов.
Так что всё хорошо вместе.
А про mcedit не понял:
Если там нет vim mode, то на кой леший он нужен? Это же неудобно.
А если есть? То на кой леший он нужен? Это же бессмысленно.
Если там нет vim mode, то на кой леший он нужен?
А на кой везде нужно пихать vim-mode? Родные средства навигации — это что-то плохое? Почему вы (и другие) считаете, vim такой мегаудобный — потому что «я потратил неделю на изучение этих сочетаний клавиш, теперь хожу и выпендриваюсь»? Или просто вы не в состоянии использовать что-то другое? Адаптируетесь плохо, например.
Может, вы к смартфону тоже подключаете внешнюю клавиатуру, чтоб и там использовать vim-комбинации?
Что такое родные средства навигации? Родные для кого?
Vim действительно удобный. И в некоторых (в большинстве) OS после установки (ещё без пакетов) в системе гарантировано есть vi (даже не vim). И какие-то настройки нужно призводить именно так.
Зачем нужно изучать «родной» nano, mcedit и пр. со своими поистине интригующими новыми очень родными свойствами?
Vim находится в актуальном состоянии, под множество ОС, действительно очень удобен.
Никто его не превращает в IDE. Но поддержка в самих этих IDE vim режима намекает, что это довольно востребовано.
Родные для кого?Для той программы, которой вы пользуетесь.
И какие-то настройки нужно призводить именно так.Ну да, ведь мы же так часто пользуемся чистыми ОС приличный срок, и лишь потом dnf/apt-get install stuff.
Зачем нужно изучать «родной» nano, mcedit и пр.Вы не поверите, но основные команды там прям на экране написаны, даже изучать не надо, достаточно просто в экран посмотреть.
Но поддержка в самих этих IDE vim режима намекаетПоддержка мыши или общепринятых Ctrl+X/C/V/F/H тоже намекает, что они очень удобны. А ещё они работают в гораздо большем количестве приложений сразу, без конфигурации.
Для той программы, которой вы пользуетесь.
Нет, для меня. Для той программы что я пользюсь запилили плагин с vim-mode. Это плохо?
Вы не поверите, но основные команды там прям на экране написаны, даже изучать не надо, достаточно просто в экран посмотреть.
Зачем, если есть родной vi/vim?
Поддержка мыши или общепринятых Ctrl+X/C/V/F/H тоже намекает, что они очень удобны.
Конечно удобны и главное привычны, так или иначе но Windows занимает 90+ процентов дестктопа.
А мне за 20 лет работы с Unix системами + X удобно то, что выделение сразу в буфер обмена копирует и фокус ввода за мышкой следующий.
Это у вас какой-то синдром, что вы пытаетесь доказать людям для которых vim удобен, что он неудобен.
Желание сохранить удобный и привычный интерфейс это как раз нормально. Иначе бы не было столько плача про "Как плохо сделали в Win10 интерфейс".
Про браузеры вам расскажут люди которые этим занимаются.
Лично я начал полноценно осваивать браузеры параллельно с vim. Поэтому привык к их интерфейсам. Так же и с MS Office, LibreOffice. Вообще нет проблем. Даже с Windows особых проблем нет, кроме упомянутого выделения — копирование в буффер обмена.
А вот с IDE, да. Прямо как собака Павлова — вижу код, значит :wa! Потому что работаю чаще c vim чем с IDE, поэтому и выход — установить vim плагин.
Если ты даун, то и не поймешь никогдаФу, как грубо. А самое главное — каково ваше обоснование? «Все вокруг мышеюзеры, а я — д'Артаньян»? Для себя можете хоть бинарно команды в USB отправлять, кнопка нолика под мизинцем правой ноги, а единички — под языком. Но оскорблять других просто ВОТ ТАК?
Может, у вас просто тяжёлый день выдался? Если так — советую поспать.
"Из-за таких идиотов, как ты все нормальные программы урезают функционал, потому что 90% даунов и домохозяек его не юзает, поэтому остальные обойдутся. Только дегенераты и нацисты навязывают всем свое мнение. "
Ужос какой. Ваше мнение безусловно более важно, ага.
все нормальные программы урезают функционал, потому что 90% даунов и домохозяек его не юзаетТо есть вы хотите, чтобы каждая прпограмма поддерживала все функции всех предыдущих версий, а также ещё и имела встроенную интеграцию схем управления от других? Это как, запустил Word — а он не поддерживает vim-схему, значит сразу говно? Или, простихосподи, запустил Steam, а он тоже не поддерживает — тоже «дауны и домохозяйки» виноваты? Может, ещё и микроволновка должна перемещаться по столу, если на ней нажимать hjkl?
Поддержка мыши или общепринятых Ctrl+X/C/V/F/H тоже намекает, что они очень удобны.
Проблема многих комментаторов в том, что они забывают добавить "мне": "мне удобно". И им сложно понять других, когда им говорят что убирать руки с клавиатуры и тянуться к мышке для того, чтобы переключить вкладку — бывает не так удобнее и быстрее, как нажать однажды выученное сочетение клавиш.
В большинстве своем многие программы используют уже устоявшиеся комбинации клавиш:crtl+c ctrl+v. Почему-то в vim пошли своим путем
Если у вас CLI, то то же самое, потому что даже консольный режим в Linux'ах уже много лет как поддерживает мышь.
А там и не надо считать. :set relativenumber
включён постоянно и сразу кажет сколько строк нужно скопипастить/удалить/сдублировать/закомментировать etc.
Если у вас GUI, то мышкой будет (потенциально) ещё быстрее, потому что не надо будет считать строки/слова/символы.У вас есть опыт или вы пишите так вам хочется? Мне достаточно набрать vi" и я выделил текст в кавычках. Я за это время не успею перенести руку с клавиатуры на мышь и обратно, не говоря уже о том, что у меня нет опыта в шутерах, чтобы так быстро и точно, не промазав ни на символ, выделить текст. Номера строк отображаются слева, их не нужно долго считать, что позволяет довольно быстро, даже на созвонах подсказать в какой строке править текст.
Покажите мне буфер обмена в SSH сессии, буду вам премного благодарен. ;-)
А Ctrl-w / Ctrl-y в bash — это не подойдет?
Если вы назовёте графическую оболочку терминала, которая не умеет использовать буфер обмена ОС — я буду крайне удивлён, но благодарен за любопытную информацию.
UPD: только что проверил JuiceSSH на Android — она тоже умеет работать с системным буфером обмена.
Технически ничто не мешает в линуксе перейти в консоль, открыть ssh и наслаждаться отсутствим системного clipboard.
Правда, есть два нюанса: чаще всего код для них пишут не на них самих (а в изначальной статье рекомендуют именно программистам переходить на vim), и редактирование конфигов != программирование (я писал об этом где-то на этой самой странице). Если хотите — интерпретируйте мою мысль как «программисты, оставьте vim админам»
Если человек, грубо говоря, не очень умный, то ему и пристрастие к vim не поможет. А если достаточно умный — он сам решит, что эффективнее использовать для задачи: vim, VS Code или вовсе скрипт на AWK написать.
Однако как только вам понадобится взаимодействовать с другими приложениями (коллеге в Slack задать вопрос и приложить кусочек кода, скопипастить из Stack Overflow или ещё что угодно) — вы будете вынуждены использовать команды терминала.
Вы можете сказать «при чём тут другие приложения, мы тут vim обсуждаем», но учтите, что мой предыдущий комментарий — это ответ на
Покажите мне буфер обмена в SSH сессии
"+yip — 5 кнопок, нужно запомнить. А выделить и скопировать первые 4 аргумента функции, например? Vs 1 движение мыши, которое работает одинаково что для абзаца, что для предложения.
"+
, а не «кнопки с "+
» и можно использовать '=
)Если у вас в вашем vim/Neovim/IDE с vim-плагином получается быстрее, чем в Notepad++/IDE без vim-плагина — вам, конечно, имеет смысл использовать vim-штуки. Если же vim-штуки тратят больше времени, то вы лукавите, возможно даже самому себе.
В любом случае, никто не заставляет вас резко отказаться от вашего уклада.
Вот именно. Vim позволяет делать очень крутые трюки с текстом, но запоминать правила составления заклинаний — :-/
"+yip
— копирует, но не в системный clipboard, а во внутреннй буфер vim. Немного не то.y4t,
— ничего не выделяет и не копирует.Если мне надо скопипастить в слак, например, абзац, внутри которого я нахожусь, то я просто нажму "+yipВставьте в Slack из буфера vim'а, желательно без команд терминала-оболочки.
Everybody vim-gangsta until «ну значит нельзя».
В любом случае, спасибо за продуктивную беседу.
IDE vs vim — это вовсе не спор, это как лакмусовая бумажка: если человек топит за IDE, почти наверняка писать код он умеет только по подробной подсказке, на среднем уровне. Чтобы убедиться в чем-нибудь — ему всегда хватает версии «Мойша напел».
Я никогда не встречал настоящих профессионалов, которым бы требовались «умные» среды разработки.
Так вот. В дебианах системный клипборд по умолчанию отключен. Надо накатывать что-то типа gtk-vim
. fkthat просто уже от усталости и твердолобости собеседников перестал воспринимать этот разговор всерьез, да и зачем?
Если некоторые заклинания работают только у автора, и он не может объяснить почему — из этого следует, что он крутой профессионал В VIM. Ну ок ;)
Не знаю, как у крутых специалистов по набору и копированию, а у меня чаще всего чтение и поиск (по всему проекту). Тут ide удобнее.
А иногда нужно смотреть какие то diff'ы — тут vim удобнее. Или преобразовать кусок файла из одного формата в другой без скрипописания — тут vim вне конкуренции.
:echo has('clipboard')
Если «1», значит все должно работать (у меня прекрасно работает).
Подозреваю что vim у вас собран без поддержки буфера обмена. В этом можно убедиться при помощи заклинания vim --version|grep -o '\-clipboard'
ну это не правда, у меня vim янкает в системный clipboard — выделяю кусок код, жму y
и потом ctrl-v браузере.
Если надо ставить что-то в терминал — у меня в tmux prefix+p
вставляет (по аналогии с vim). Еще у меня есть десктоп в офисе, когда удаленно работаю по SSH, так
ForwardX11 yes
ForwardX11Trusted yes
и теперь я могу y
в vim на удаленном сервере и и ctrl+v
в браузере у себя на локалхосте.
Ирония в том, что для отправки в буфер нужно, в большинстве случаев, использовать мышь. Вы без мыши попробуйте.
ForwardX11 yes
ForwardX11Trusted yes
подойдет?
Это не устоявшиеся комбинации. Это просто стандарт. (Привет IBM CUA93!). Но это стандарт на взаимодействие с графической оболочкой и софтом под неё. Родился он благодаря тому, что софтописатели 80-х лепили хоткеи кто во что горазд (до сих пор помню хоткеи word-star подобных текстовых редакторов Ctr-K-C, Ctrl-K-V и это вот всё), но вы-ж не жалуетесь на то что в мире далко не один стандарт, ну например на пивоварение. Просто кому-то ближе ибм-овский стандарт (который приняли Apple и Microsoft) и активное использование мыши, кому-то вим-биндинги, которые хоть официальным стандартом и не являются, но тем не менее активно используются.
Почему-то в vim пошли своим путем
может быть потому, что корни у него растут из тех времён, когда не было устоявшихся комбинаций?
«d» это удалениеДопустим
«dd» это удаление строкиУдаление-удаление — это строка… как-то странно, но ок.
«12dd» это удаление 12 строкАга, число + команда = «выполнить команду Х раз»
«d7w» это удаление 7 слов впередТак, стоп. Почему число внутри команды? Почему не 7dw? Или, аналогично, почему удаление 12 строк не d12d?
Вы, конечно, простите, но это примерно та же самая причина, по которой римские цифры сложнее арабских — «символ тот же, но если слева, то вычитаем, если справа прибавляем».
7dw тоже работает, как и d12d
более человеческий mcedit
Смешно.
Мне тоже смешно но я привык к мс и да пользуюсь его редактором везде где могу. Не для замены ide, конечно, но при переходе с far было удобно и так и привык.
Ага. Особенно если учесть, что ставить этот бесполезный оверинжиниринг предлагается на сервера. Вот мне ансибловые плейбуки больше занять нечем.
Если вы сисадмин-эникейщик, ковыряетесь с разными системами, разными файлами — то возможно mc вам сокращает нервы.
А в моей практике, я обслуживаю одинаково настроенный парк или дженкинс нод или кластеров или софта, который разрабатываем мы, имена файлов почти известен наизусть. И тут даже ls не всегда нужен…
При наличии autocompletion даже ls не всегда нужен. Двухпанельник (у которого тоже vim интерфейс) я запускаю исключительно для заливания музыки на телефон.
У VIM хорошая подсветка синтаксиса
Во времена тормозящих удаленных шеллов редактировать файлы было еще той задачей
Пакетная обработка файлов и макросы
У VIM хорошая подсветка синтаксисаУ vim модсветка синтаксиса на регулярках, со всеми вытекающими: длинные строки не подсвечивает, в сложных файлах(когда комбинируется сразу несколько синтаксисов, например php(js, html и сам php) она часто ломается, и иногда чинится прокруткой вверх, иногда нет.
Есть же поддержка tree-sitter, например, Nvim Treesitter
А уж vi-расширения для браузеров — это, простите, что-то вида «я не смог адаптироваться к графическому миру, поэтому использую клавиатуру».
Нет. Это банально быстрее. Пример — открытие ссылки. Пальцы гораздо быстрее нажимают две-три клавиши (в зависимости от количества ссылок в видимой области страницы), чем перемещение правой руки к мыши, перемещение самого курсора мыши и клик. Даже на ThinkPad, где руку к мыши перемещать не нужно, курсор ведомый трекпойнтом моментально к нужной ссылке не переместится. В случае-же вим биндинга, ссылка открывается со скоростью мысли.
Осваивать Vim — это, пожалуй, страшно. Или, точнее, очень страшно
Никогда если честно, не понимал — почему вима так боятся.
Чтобы пользоваться примерно на уровне обычного блокнота Windows — нужно освоить не много клавиш. Это «hjkl» (Либо стрелочки для казуальщиков) для перемещения, «i» для вставки и «o» для вставки новой строки, «esc» для выхода из режима редактирования и :w/:q/:wq для сохранения/выхода/сохранения и выхода.
Этого по большому счёту, хватит чтобы просто набрать текст.
Остальные фичи можно спокойно освоить в процессе использования.
Кроме того есть vimtutor, с которым во всём можно разобраться буквально за 2 дня
Разбираться 2 дня, что бы «просто набрать текст». Вы сами вдумайтесь в абсурд этой ситуации.
P.S. При этом я лично ни разу не фанат vim, и при наличии возможности предпочитаю пользоваться mc.
Страшно прочитать пару страниц инструкции что-ли, до того как начинать пользоваться?Так дело в том, что большинство других редакторов (кроме emacs, пожалуй) вообще не требуют накаких инвестиций времени в мануалы перед началом работы. А из vim'а вы натурально не сможете выйти, если никогда не сталкивались.
Ну да, этот анекдот уже тут рассказали :) Однако хочу заметить, что там есть хелп — а значит его можно прочитать. Ну т.е. я бы просто называл это ощущение слегка иначе. Неспособностью читать мануалы, например, или даже скорее нежеланием. Потому, что если вы возьмете другой текстовый редактор, ну допустим Xedit, то там тоже чтобы выйти, нужно ввести команду. Если вы ее не знаете — то у вас тоже будут проблемы. Quit или Exit? Это тоже страшно? Ну в общем, слово страх тут как-то не очень уместно выглядит.
XEDIT это тот который на IBM-овских мейнфреймах, с REXX скриптованием и этим вот всем?
Разбираться 2 дня, что бы «просто набрать текст». Вы сами вдумайтесь в абсурд этой ситуации.
"Лучше день потерять, а потом за полчаса долететь".
А на самом деле vim не так страшен, как его порой малюют.
При необходимости могу легко с ним справиться (и даже справляюсь, когда надо бывает).
Но все же не люблю его. Причем не за клавиатурные сочетания, а за необходимость переключения между тремя режимами как минимум (вставка, навигация и ввод команд).
Причем режимы эти визуально отличимы очень плохо. Чуть не дожал кнопку или промахнулся — и несколько секунд дезориентации обеспечены. Тут простые переключения раскладки и режима вставки/замены иногда доставляют. А в виме еще "веселее" получается.
На самом деле эта проблема очень просто решается: вы практически всегда находитесь в командном режиме. Нашли место, где нужно дописать код — o<набираете пару строк><Esc>
. Визуальный режим вообще используется довольно редко и исключительно для того, чтобы выбрать блок, к которому надо применить операцию, после применения сразу переход обратно в командный режим происходит.
Чуть не дожал кнопку или промахнулся — и несколько секунд дезориентации обеспечены.
В любой непонятной ситуации можно ещё раз нажать Esc.
Проблема не в определении, в каком режиме в итоге находишься (это достаточно быстро определяется, если знаешь, куда смотреть), а в возможных печальных последствиях ошибки (вот они могут хорошо в ступор вогнать).
Когда руки заметно опережают восприятие введенного, то можно много наворотить, пока глаза увидят, и до мозга дойдет, что что-то не так. А когда существенной визуальной разницы в режимах нет, то запаздывание с пониманием случившегося возникает еще позже.
Помнится, в далекие досовые времена немного помогал в таких случаях переключатель раскладок с заметным цветным индикатором русской раскладки на экране (не успевал вводить больше нескольких символов не в той раскладке).
А в vim у меня как-то получилось случайно стереть полтекста, сохранить файл и выйти (повторить не возьмусь, специально оно так не получается, только случайно). В "традиционных" (впрочем, учитывая древность vim, вопрос традиционности не столь однозначен) редакторах такого не случалось ни разу.
Я вот тоже не понимаю этих прыжков вокруг сложности vim.
Когда я был зеленый, и не знал о *никс ничего, мне показали как подключаться по ssh и как редактировать текстовый файл через «vi », и пару хоткеев. Остальное man vi. И я просто так и делал, без лишних стонов «а где тут мышка и любимый блокнот/ворд». Так и освоил.
Капс у меня переназначен на смену раскладки, короткое нажатие шифта — на ESC.
Писать код в виме перестал, это возможно, это удобно, но зачем, если есть продвинутая IDE? Сейчас максимум — править удалённо конфиги на сервере.
Изначально перешёл на вим из-за боли в запястье — туннельный синдром сказывался. Не могу сказать с уверенностью, что именно вим спас меня, но тем не менее работать стало ощутимо легче — не нужно было пользоваться мышкой и раскорячиваться с хоткеями, а потом и боль ушла.
Порекомендую ли вим — определённо да. Заставляю ли, агитирую ли, призываю ли — определённо нет, если вам и так удобно — зачем что-то менять?
ZZ — сохранить документ и выйти из Vim
Много где пишут про этот вариант, но почему-то почти нигде про делающий то же :x, а мне он почему-то кажется удобнее.
:x клавиши находятся в разных частях клавиатуры. Надо две руки. В случае ZZ, это две соседние клавиши — левый шифт и Z. Почти как даблклик мышкой.
В случае ZZ, это две соседние клавиши
Спасибо, стало понятнее, почему расхожусь с предпочтениями большинства: у меня они не соседние) Ну и ещё мне нравится, как :x соотносится с :w — в голове эти две вещи логично рядом укладываются.
— тексты с не-WYSIWYG разметкой: LaTeX, markdown и подобное. Особенно если это надо лишь время от времени, а не 40 часов в неделю
— старые языки, например asm PDP-11. Представьте себе, он еще не помер, и процессор серийно выпускается.
— новые языки, например, ассемблер NM6403-6407.
— Чужие языки, например, надо чей-то код внезапно однажды на питоне посмотреть и поправить, хотя по работе питон не нужен от слова абсолютно.
— огромные по размеру таблицы данных в виде plain text, которые завесят наглухо практически любой другой редактор. Причем, с прекрасной возможностью поиска по этим данным путем регулярок, а также выборки нужной пачки этих данных.
— сложные и регулярные манипуляции с текстом, например, периодически необходимое преобразование опять же данных, полученных в текстовом виде (результаты записи контрольных приборов, полученных от сторонней организации, повлиять на формат записи нельзя), с выборкой и заменой части этих данных по какому-то (не буду слишком подробно) правилу, тут скрипты vim влегкую уделывают любые макросы. Причем, макросы там тоже есть.
— необходимость работать с зоопарком кодировок с перебросом текста на кириллице из одних кодировок в другую — vim удивительно всеяден и позволяет делать это настолько легко, что не надо совсем задумываться над процессом и последовательностью операций.
Некоторые из этих вопросов решаются настройкой любимой IDE под использование постороннего компилятора, но это потратить изрядно времени на такую настройку, потом, однозначного соответствия, скажем, сишным операциям в питоне или асме не будет, все равно боль, а в vim привычно, быстро и легко.
Некоторые вопросы решаются другими средствами. Но зачем? Если есть инструмент, который перекрывает этот спектр с запасом (я еще не все вспомнил, за что люблю vim).
Это кое-что из того, что в моей повседневной работе встречается более-менее регулярно. И VIM здесь великолепен портясающей настраиваемостью, подсветкой синтаксиса под все, что надо (и очень легко добавить еще), скриптуемостью, всеядностью по кодировкам, форматам конца строки и размерам, кучей возможностей редактирования, поиска и замены из коробки, переносимостью между кучей ОС (забрал свой vimrc — и на чужой машине ты как дома), встраиваемостью сторонних утилит в процесс редактирования и поиска (типа ctags из простого), и, черт побери, ругаемой всеми модальностью, которая поначалу кажется чем-то диким, а потом не понимаешь, как без нее другие обходятся. Многое из этого (и еще много чего не перечисленного) есть и в других редакторах, но все это есть в одном месте. Наверное, emaсs не хуже. Говорят, в принципе, такой же, я не пробовал. Но nano, mcedit и тому подобное… Конфиги править — может быть.
Да, для шарпа я буду пользоваться студией, для явы — идеей, благо теперь есть и бесплатные версии, возможностей которых для меня хватает. Но IDE для LaTeX? Для PDP-11? Или вспоминать, как работает iconv (передаваемы параметры и все такое), и где-то добывать ее под винду, когда интернета на рабочей машине нет, и вообще он далеко?
Я не знаю, кто хуже — веган, который всех остальных при каждом удобном случае брезгливо честит трупоедами, или любитель шашлыка, пытающийся перепрошить вегана. Не надо так.
1) при возникновении необходимости сделать какое-то действие, например, промотать открытый файл, в котором курсор на нижней строке так, чтоб строка с курсором стала посередине, не тянуться к мыши с колесиком прокрутки, а выяснить (:help, google, stakoverflow) как это делается в vim. Это будет поначалу дольше, чем крутнуть ролик, но это еще учеба
2) записать в шпаргалочку: «zz — прокрутить строку с курсором в середину окна»
3) после разрастания шпаргалки больше двух страниц а5 упорядочить подсказки по темам: поиск, редактирование, настройка, командная строка, регистры вставки и т. д.
4) при возникновении предпосылки к п.1 сначала смотреть свою шпаргалочку.
5) изредка пересматривать шпаргалочку и удалять то, что уже прекрасно запомнилось.
Шпаргалка сперва разрастается, потом сжимается. В моей сейчас страниц 10 (а5), но если по ней вдумчиво пройтись пятым пунктом, останется где-то 5, и это будут в основном шаблоны подстановки для командной строки, да хитрости редко используемых плагинов.
Дело в том, что возможностей у VIMа немеряно, но каждый пользуется ограниченным подмножеством. Надо свое подмножество выяснить опытным путем и отточить.
Надо свое подмножество выяснить опытным путем и отточить.При условии, что вам вот действительно нужен именно vim и никаких более user-friendly альтернатив нет и не предвидится. В противном случае 99,9% пользователей проще сразу взять что-то иное. Да, пусть там надо будет вместо 4 клавиш нажать 8, зато гораздо быстрее освоить.
Насчет юзер-френдли альтернатив (только если не предвидится) — еще раз повторюсь, для десятка разных задач, решаемых одним инструментом, существенно лучше освоить один этот инструмент, чем десяток юзер-френдли отдельных. Какие бы френдли они ни были к юзеру, их все равно надо осваивать. А перед этим про них надо узнать, их надо выбрать из множества альтернатив (вероятно, попробовав по нескольку штук руками), их надо скачать и установить (и они будут жрать место и ресурсы), с ними надо разобраться в плане чистоты, платности и лицензируемости (на работе это может быть критично), их надо настроить под себя, с ними надо решать вопросы совместимости по ОС… Я наверное еще не все перечислил.
А можно просто использовать vim. Спасибо за предложение, но нет.
В моей сейчас страниц 10 (а5)
поделитесь?
Vi это предок Vim'а, а не аналог)
При чем тут скорость.
ну при том что автор статьи сам это написал
кто умеет им пользоваться, значительно ускорить работу с кодом.
Тоже хотел вим освоить, на роутере vi, исправить добавить строчку и сохранить, максимум что понадобилось.
Сам я обычно работаю в полнокнопочной клавиатуре, левая рука это ctrl shift правая это стрелки и верхний блок из 6 клавиш, то есть выделять, вставлять, удалять, скролить одной рукой можно.
ctrl + ins — копировать
shift + ins — вставить
shift + home | end | pgup | pgdown — выделение
delete тут понятно, ctrl + del ещё вариант
Правая рука рядом с enter backspace плюс правее целый калькулятор с вводом любой математики.
Привык очень. Как то у товарища на ноуте хотел код чуть подправить, так себя не удобно почувствовал, как без рук. Пришлось за мышкой тянуться(
Стрелки для более точного позиционирования курсора, плюс быстрые скачки вверх, вниз, вперёд, назад, удаление, копирование, вставка. Писать одна позиция, навигация и прочее другая. Причём выделять как по мне даже точнее чем мышкой
Имхо. Кстати тоже везде поддерживаются сочетания
Как освоить Vim?Чтобы освоить vi(m) достаточно выучить :q! и сделать apt-get install nano
Собственно, если нужно пару строк в конфиге поправить — любой редактор годится. А в nano (и в mcedit тоже) ещё и подсказка внизу экрана болтается, ничего учить не надо.
Но вот если надо делать что-то более-менее нетривиальное с текстом (вырезать кусок из одного файла и вставить в другой, например) — простые редакторы становятся сложными.
если надо делать что-то более-менее нетривиальное с текстомЕсли надо сделать с текстом что-то нетривиальное (спарсить xml, работа с файлами) то существуют скриптовые языки программирования. Впрочем, некоторые предпочитают извращаться — это их право.
Ну, расскажите, как с помощью скриптового языка вы будете вырезать некоторые строки из одного файла и вставлять в другой.
Никакой не годится, это sed, открывать любой редактор как то много.
Привычка с времен терминалом 9600 8-n-1
На мой взгляд, примерно то же самое происходит с владельцами автомобилей Mercedes, однажды пересев на него, они продолжают оставаться преданными этой марке.
Как освоить Vim?
Осталось только понять зачем. Если редактор требует столько усилий, то может быть ну его?!
Cplk все таки кириллица. vim для маргиналов, это про управление текстом мыслью. К написанию мыслей текстом он не имеет отношения совсем. Очевидно, что есть знаменитые писатели, а знаменитых редакторов нет. Но спросите писателей — есть ли очень уважаемые редакторы? А что такое текст? Это мысль, написанная. Алгоритм для тутошных. Vim для мысленного редактирования мыслей уже верно. Вот пальцем — неудобно, в телефоне писать. В Vim отредактировать всю ветку комментариев прямо на сервере, выделив нужные тебе мысли — самое то. Особенно если с телефона на этот сервер зайти, и тут vim великолепен, неподражаем, могуч, незаменим.
Удобно использовать одноразовые макросы когда надо сделать много однотипных правок: qq включает режим записи вводимых команд, еще раз q останавливает запись. Записанный макрос можно выполнить набрав @q. Ну или 10@q чтобы выполнить его десять раз подряд. Теоретически вместо q можно использовать любые другие буквы или символы, сохраняя тем самым разные макросы в разные регистры, но ситуации когда это бывает нужно встречаются крайне редко.
Зачем ВИМ?
пс. Написание кода — это в том числе вставка бойлер принта, рефакторинг и прочие фишки, которые в виме надо реализовать с помощью почти полностью убогих плагинов. Нет, спасибо, лучше уж саблайм с мультикурсором.
Все правильно. Только код программы лучше править в IDE, умеющей в этот язык. Которая умеет отличать переменные от функций и комментариев. Vim сам по себе умеет отличать только слова, скобки и кавычки.
Все вот говорят, что vim не удобен для работы с кодом, а я вот не соглашусь. Например, в Intellij IDEA есть прекрасный плагин IdeaVim, которой позволяет просто использовать синтаксис вима внутри редактора, но не лишает пользователя инструментов IDE. Такая комбинация на мой взгляд дает гораздо больше возможностей, чем использовать плагины вима для нафигации, поиска и тп, но при этом писать код с vim удобнее имхо...
Писать текст удобно в любом редакторе ;)
Редактировать — в зависимости от вида текста. Vim, он как швейцарский ножик. Да, им можно резать, пилить и крутить винты. Но специальный инструмент удобнее же. У vim есть много очень полезных и мало где ещё реализованных функций. Но нужны они очень не часто.
Те, кому не нужен vim — они просто не решали специфических задач, где он действительно нужен. Те, кому он необходим, и они в нем даже интернет отстают — просто кокетничают :)
В копилку раздела 5 я бы добавил Control-V — прямоугольное выделение (VISUAL BLOCK), позволяет выбрать и удалить (или скопировать) вертикальную колонку. Также, полезные программы view и vimdiff, которые, фактически, тоже vim.
Но самое большое разочарование, меня постигло от visudo: запустить и уже в голове представляя себе следующие команды VI, но внезапно обнаружить, что открылся GNU nano…
После такого предательства "apt purge nano" руки сами набирают без участия разума.
(Если бы sudoedit открывал nano я бы и слова не сказал).
постоянно забываю куда hjkl должны двигать курсор
Где-то, то-ли в vimtutor
, то-ли в мане, видел аналогию для японцев… Короче центр координат, это Япония… Остальные кнопки я не помню, но если хоть чуть знать географию, то J — остров Java, который южнее (вниз), K — Kamchatka, которая севернее (вверх), ну а H и L находятся слева и справа, что запоминается уже автоматически.
К примеру, людей, знающих куда двигает WASD, в тысячи раз больше чем тех, кто знает куда двигает hjkl.
Тут, кстати, всплывает еще один слой: многим уже известно, что раскладка qwerty неоптимальна, периодически в блогосфере всплывают статьи про Dvorak/Colemak или даже самодельные раскладки. И, внезапно, в более эргономичной раскладке hjkl уже не 4 буквы подряд для правой кисти (хотя в Colemak находятся рядом).
Впрочем, VIM-щики и тут придумали себе такой забавный воркэраунд: в режиме редактирования работает раскладка Dvorak, а при выходе в обычный или визуальный режим — qwerty.
Кстати, по поводу вот этого...
Но самое большое разочарование, меня постигло от visudo: запустить и уже в голове представляя себе следующие команды VI, но внезапно обнаружить, что открылся GNU nano…
После такого предательства "apt purge nano" руки сами набирают без участия разума.
(Если бы sudoedit открывал nano я бы и слова не сказал).
Читайте маны, они рулез! С вероятностью 99% дело было в том, что...
visudo locks the sudoers file against multiple simultaneous edits, per‐
or the first editor in the list that exists and is executable.
Note that sudo does not preserve the SUDO_EDITOR, VISUAL or
EDITOR environment variables unless they are present in the
env_keep list or the env_reset option is disabled in the
sudoers file. The default editor path is vi which can be set
at compile time via the --with-editor configure option.
env_editor
If set, visudo will use the value of the SUDO_EDITOR, VISUAL or
EDITOR environment variables before falling back on the default
editor list. Note that visudo is typically run as root so this
option may allow a user with visudo privileges to run arbitrary
commands as root without logging. An alternative is to place a
colon-separated list of "safe" editors int the editor variable.
visudo will then only use SUDO_EDITOR, VISUAL or EDITOR if they
match a value specified in editor. If the env_reset flag is
enabled, the SUDO_EDITOR, VISUAL and/or EDITOR environment
variables must be present in the env_keep list for the
env_editor flag to function when visudo is invoked via sudo.
The default value is on, which can be set at compile time via
the --with-env-editor configure option.
- vim вызывает зависимость;
- vim заставляет ваш мозг работать в модальном режиме;
- Вы будете приходить в ярость, если при нажатии «j» или «k» не работает прокрутка;
- становится невыносимой работа в текстовых «процессорах» типа Word, потому что они печатают на экране ":wq" вместо того, чтобы сохранить документ и выйти;
- если вы раньше с грустью и жалостью смотрели, как кто-то копирует файлы, используя перетаскивание в проводнике, то теперь Вы сами почувствуете себя этим кем-то.
Так что оставьте vim вимерам и живите спокойно!
Ещё одна чудесная статья из серии "А лучше чем Б по причине моих субъективных предпочтений". Другие примеры: Android vs iPhone, Windows vs Linux, PS vs Xbox vs PC, MP3 vs Lossless — тысячи их и все бессмысленны
Как освоить Vim?