Комментарии 106
Вообще-то, у Notepad много пользователей, это дефолтный текстовый редактор во всех win системах.
Хм… кажется этот аргумент выглядит неубедительно
А вообще меня самого в детстве учили виму, мне он нравился, но со временем я пересел на нормальные редакторы =) Но в последние года, я как-то начал включать вим плагин везде где можно: браузеры, IDE, файл менеджеры. Да и в самом виме провожу куда больше времени.
ps. Вы забыли написать, что на самом хабре jk переходят между постами =)
Если интересно, то режимами. Тем, что для того, чтобы начать вводить текст — надо перейти в режим ввода текста, а чтобы передвинуть курсор — надо вернуться обратно в нормальный режим.
Спасибо за ответ, но как-то режимы сомнительное преимущество
Тем не менее вимом пользуются именно из-за них. Остальное можно найти в любом другом редакторе.
мне в редакторе главное удобство интерфейса
Как правило любители вима придерживаются мнения, что интерфейс без режимов — неудобный.
в Vim — чето я такого комфорта не заметил для себя
Скорее всего вы режимами особенно не пользуетесь. Поэтому вам вим в основном мешает.
Много смотрю видео уроков от разных популярны авторов буржуйский и Vim видел только в одного
vim особенной популярностью не пользуется, тут не поспоришь. Если ваша цель — лучше программировать на js, то лучше использовать то, чем пользуются все остальные.
Ну и напоследок важный момент. Если вам нужны плагины и фичи для работы с кодом — используйте IDE, там это обычно сделано на порядок лучше, чем в текстовых редакторах. Вим интересен режимами. Плагины в нём написаны людьми, которые хотят пользоваться модальным редактором для повседневных нужд. Многие считают, что режимы в виме — зло и пережиток прошлого. И их терпят только ради фич. На самом деле наоборот. Фичи пилят ради того, чтобы пользоваться режимами.
Возможно эта статья вам поможет разобраться: habr.com/post/339908
ИМХО, vim, точнее его предок vi, незаменимый инструмент unix администратора: есть на любом юниксе и может быть запущен практически в любом терминале. В этом отношении конкурентов практически нет. Остальное — субъективно.
Был забавный случай. Знакомый — музыкант, заинтересовался Линуксом, поствить я ему помог, но с vi ему пришлось столкнуться один на один. Так вот по его словам vi напомнил ему нотные редакторы — режим перемещения и режим правки разделены, очень удобно, разобрался без проблем.
vi — почувствуй себя композитором.
Vim удобен для работы по ssh, т.к. не нужно транслировать графику.
Это статья не про Vim!
Где холивар на 300 комментариев? :/
Такими темпами версия 1.0 выйдет лет через 10, не раньше.
Именно режимы это его настоящая киллер-фича.
Помнится, Джеф Раскин приводил vim в качестве примера наиболее неудачного интерфейса. И один из основных аргументов у него был именно присутствие режимов.
Патамушта человек плохо адаптирован к режимам — ему удобнее кнопку или педаль держать нажатой, нежели запоминать, какой сейчас режим включен.
Да-да, вам удобно, вашим коллегам нравится, у всех работает…
Помнится, Джеф Раскин приводил vim в качестве примера наиболее неудачного интерфейса.
Было дело.
И один из основных аргументов у него был именно присутствие режимов.
Не один из основных, а единственный. И не присутствие режимов, а то, что сложно понять, в какой режим на данный момент активен.
Патамушта человек плохо адаптирован к режимам — ему удобнее кнопку или педаль держать нажатой, нежели запоминать, какой сейчас режим включен.
Держать кнопку нажатой удобнее, если в режиме, который включает кнопка пользователь проводит совсем немного времени. Если пользователь проводит в этом режиме много времени — удобнее ввести полноценное переключение между режимами. Такое, чтобы пользователь всегда понимал, в каком режиме находится. Собственно, все так и делают.
Да-да, вам не удобно, вашим коллегам не нравится, ни у кого не работает...
Если пользователь проводит в этом режиме много времени — удобнее ввести полноценное переключение между режимами.
Вообще-то нет. Если пользователь проводит в неком «режиме» много времени, ему удобнее использовать отдельный набор управляющих элементов. Например, отдельный блок кнопок для ввода команд редактирования. Необходимость в отдельных режимах при этом отпадает.
Конечно, у Раскина свои тараканы. Следуя его логике, для ввода русских букв удобнее использовать отдельную клавиатуру, а не переключение режимов. Оно-то, возможно, и так, только где же столько места на столе найти? :)
Вообще-то нет. Если пользователь проводит в неком «режиме» много времени, ему удобнее использовать отдельный набор управляющих элементов.
Удобнее, но не всегда это возможно. Режимы получаются удобнее дополнительного блока кнопок, потому что на него замучаешься руки переставлять. Но, надо сказать — пока не попробуешь — поверить в это невозможно, да и даже из тех, кто попробовал — с тем, что режимы это хорошо, согласны далеко не все.
Было бы здорово найти человека, который прекрасно владеет вимом и при этому не любит режимы, но, к сожалению те, кто не любит режимы — не горит желанием овладевать модальным редактором. В результате получается так, что любители вима хорошо представляют себе альтернативу, а вот те, кто вим с его режимами не любят — альтернативу (то есть в данном случае режимы) представляют себе плохо.
Следуя его логике, для ввода русских букв удобнее использовать отдельную клавиатуру, а не переключение режимов.
Или повесить включение русского языка на одну комбинацию клавиш, а английского — на другую. Тогда нет необходимости помнить, какой язык активен сейчас. Не уверен — включи нужный и продолжай печатать.
Было бы здорово найти человека, который прекрасно владеет вимом и при этому не любит режимы, но, к сожалению те, кто не любит режимы — не горит желанием овладевать модальным редактором.
Есть у меня знакомый любитель вима. Говорит примерно так же, как и вы, и то же, что и вы. Причем говорит горячо и убедительно.
Вот только есть нюанс: с его же слов, на освоение вима в минимальной конфигурации у него ушел целый месяц. А на то, чтобы полностью освоиться с вимом и обрасти плагинами, ушло полгода. Учитывая, что товарищ очень упорный, умножаем данные числа на два и получаем среднее время освоения вима среднестатистическим программером.
Попробуем осознать. На то, чтобы комфортно пользоваться текстовым редактором, требуется два месяца тренировок. Два месяца, Карл! И при этом, заметим, человек остается абсолютно беспомощен, когда сталкивается с настоящим, кондовым виаем, в котором не работают стрелочки и нет привычных плагинов. Нет, выйти-то он может, но редактирование превращается в декламирование мантры «мля».
Я все это к тому, что иногда мне кажется, что ярые поклонники вима
Помню, после одной многочасовой дискуссии «vim vs mcedit» сошлись на том, что вим круче, ибо верую. :)
Вот только есть нюанс: с его же слов, на освоение вима в минимальной конфигурации у него ушел целый месяц.
Ну, то есть примерно столько же, сколько в случае с каким-нибудь другим редактором.
А на то, чтобы полностью освоиться с вимом и обрасти плагинами, ушло полгода.
Ну, то есть примерно столько же, сколько в случае с каким-нибудь другим редактором.
На то, чтобы комфортно пользоваться текстовым редактором, требуется два месяца тренировок.
Думаю, вы уже догадываетесь, что я напишу ))
Для того, чтобы научиться пользоваться любым редактором надо потратить достаточно много времени. Если речь о том, чтобы двигать курсор стрелками и что-то печатать, то да, это как правило умеет каждый. Сложности начинаются дальше, когда выясняешь, как передвинуть курсор на слово вперёд, назад, как выделять блоки текста и всё такое.
Двигать курсор стрелками и что-то печатать можно и в виме. Для того, чтобы прыгать по словам и делать другие чудеса — нужно учиться, но это придётся делать везде. В случае с другими редакторами обучение растянуто во времени на годы. Нередко пользователь вообще не подозревает, что можно переместить курсор в начало строки или в её конец и спокойно живёт. В случае с вимом обучение очень быстрое, потому что если не пользоваться описанными выше фичами, то не совсем понятно, зачем вим вообще нужен. Действительно, из-за этого создаётся впечатление, что вим это очень сложная штука.
Я все это к тому, что иногда мне кажется, что ярые поклонники вима страдают наслаждаются стокгольмским синдромом. Да что там — не иногда, а почти всегда.
Со стороны может создаться такое впечатление, но это как слепая печать. Надо потратить время и силы. Но те, кто потратили как правило довольны. Стокгольмский синдром?
Помню, после одной многочасовой дискуссии «vim vs mcedit» сошлись на том, что вим круче, ибо верую. :)
О чём там говорить много часов? Если у редакторов есть паритет по фичам, то весь вопрос сходится к тому, любите вы режимы, или нет.
Вот только есть нюанс: с его же слов, на освоение вима в минимальной конфигурации у него ушел целый месяц.
Ну, то есть примерно столько же, сколько в случае с каким-нибудь другим редактором.
Хорошо пошутили, ценю.
«Какой-нибудь другой редактор» осваивается за вечер. Это если говорить о необходимом минимуме для комфортной работы: поиск, редактирование, замена, откат изменений, сохранение.
Для того, чтобы научиться пользоваться любым редактором надо потратить достаточно много времени. Если речь о том, чтобы двигать курсор стрелками и что-то печатать, то да, это как правило умеет каждый. Сложности начинаются дальше, когда выясняешь, как передвинуть курсор на слово вперёд, назад, как выделять блоки текста и всё такое.
В том-то и дело, что в современных «безрежимных» редакторах это делается легко, просто и интуитивно-понятно. Выделение текста — шифт+стрелки, прыжки вперед-назад по словам — контрол+стрелки, основные действия — сначала через меню, потом — по мере обретения опыта — по хоткеям. В этом объеме редактор осваивается за день. И уже потом начинаются тонкости — макросы, вызов внешних программ, автоформатирование и т. п.
И только в виме надо учить педальную морзянку для самых базовых действий.
Со стороны может создаться такое впечатление, но это как слепая печать. Надо потратить время и силы. Но те, кто потратили как правило довольны. Стокгольмский синдром?
А знаете, не исключено, что и так. :)
Лично я видел не так много людей, которым слепая десятипальцевая печать была действительно нужна в работе. Возможно, у вас другой опыт, но программистам навык слепой печати никак не помогает в работе. Большую часть времени программист не клацает по клавиатуре, а все-таки думает. Вот для девочек, подрабатывающих набором текстов на компьютере, слепая печать действительно помогает жить.
О чём там говорить много часов? Если у редакторов есть паритет по фичам, то весь вопрос сходится к тому, любите вы режимы, или нет.
Вы первый раз холиварите что ли? Вопросы вкуса фломастеров — самые животрепещущие и долгообсуждаемые. :)
А паритета фич у vim и mcedit и близко нет. Вим — чугунный швейцарский нож с педальным управлением и встроенным подогревом сиденья (правда, искаропки подогрев на дровах, но это можно исправить парой навесных блоков). Мцедит — ностальгия по встроенному в нортон коммандер редактору со всеми вытекающими: одновременно умеет редактировать только один файл, поддерживает только необходимый минимум действий. А еще, поскольку половина действий повешена на функциональные кнопки, его иногда запаришься конфигурировать под конкретный терминал (особенно эротично это делать в сессиях screen на всяких интересных платформах типа соляриса). Тем не менее и в нем можно творить удивительные вещи, т.к. есть макросы и вызов внешних программ.
Так что пообсуждать было что.
Попробую вставить свои 5 копеек в ваш холивар.
Уже 5 месяцев прошло с того момента как я перешел на vim, до этого работал в phpstorm, поэтому есть что сказать.
Но сначала о слепой печати…
Перед тем как перейти на vim я освоил слепой набор, на раскладке dvorak и на это у меня ушло 95 часов (или ~3 месяца по 1-2 часа тренировок каждый день). Раскладка dvorak была выбрана не случайна т.к. до этого пробовал освоить слепой набор на qwerty, и после 20 часов тренировок понял что это самая неудобная раскладка для латиницы, которая так же сопровождается туннельным синдромом после длительного набора текста.
За скоростью набора текста особо не гнался но после 95 часов, скорость была ~300 знаков, на данный момент 350-400.
И да, я с вами согласен что владение слепой печатью или высокой скоростью набора текста — ничего не говорит о человека в плане того какой он хороший программист, только есть одно но,… Обладая подомными навыками можно очень быстро проверить на практике идею которая пришла к вам в голову, в голове все всегда идеально складывается но когда начинаешь писать код, то понимаешь что много чего не было учтено, куча мелких деталей и прочего.
С опытом ко мне пришло понимание того что нельзя сразу написать хороший код, перед этим нужно сначала провести эксперименты и проверить все на практике, а для этого нужно писать много кода, постоянно что-то переписывать, переделывать и доводить до состояния хорошего кода.
Ок, теперь по поводу vim'a
Основная причина по которой я решил перейти на vim — это желание избавиться от мышки, что бы полностью перейти на ноут и сделать свою тушу более мобильной.
И vim в данном случае является великолепным инструментом и ни одни шорткаты в других редакторах кода не дадут вам такой свободы в навигации по коду.
По поводу того что нужно что-то заучивать,… ну первые пару недель активной работы в vim'e у меня была постоянно открыта шпаргалка, но потом я ей пользовался все реже и реже. Спустя некоторое время уже перестаешь вспоминать, а просто делаешь это на автомате даже не задумываясь, как при вождении автомобиля на механике.
И еще тут вроде говорили о том что непонятно в каком режиме находишься, и это действительно так, если пользоваться именно редактором vim, я же использую neovim, у него в режиме вставки курсор из прямоугольника превращается в привычный | как у обычных редакторов, а внизу есть статус бар в котором так же видно какой сейчас режим включен.
Ну и конечно, vim нужно использоваться в связке с tmux — это самый крутой сетап.
«Какой-нибудь другой редактор» осваивается за вечер. Это если говорить о необходимом минимуме для комфортной работы: поиск, редактирование, замена, откат изменений, сохранение.
Поиск:
vim — нажать / ввести что ищете, нажать Enter
стандартный редактор — нажать Ctrl + F, ввести, что ищете, нажать Enter
Редактирование:
vim — стрелками подвести курсор к месту, которое нужно редактировать, нажать i, начать набирать
стандартный редактор — стрелками подвести курсор к месту, которое нужно редактировать, начать набирать
Замена:
vim — нажать :%s/слово, которое искать/слово на которое заменить/g
стандартный редактори — не помню хоткея, наверное надо лезть в менюшку
Откат изменений:
vim — нажать u
стандартный редактор — нажать Ctrl+Z
Сохранение:
vim — у меня настроен на Ctrl+S. Если вдруг этой настройки нет, то :w
Стандартный редактор — нажать Ctrl+S
Как мы видим, и то и другое легко осваивается за вечер, разницы большой нет.
В том-то и дело, что в современных «безрежимных» редакторах это делается легко, просто и интуитивно-понятно.
Просто стандартному редактору вы научились уже давно и учились постепенно.
Выделение текста — шифт+стрелки
В vim — v а потом стрелки. Разница не так уж грандиозна.
прыжки вперед-назад по словам — контрол+стрелки
В vim работает.
И только в виме надо учить педальную морзянку для самых базовых действий.
Для базовых действий надо запомнить, что есть режимы. Это несложно, просто очень непривычно.
Поиск:
vim — нажать / ввести что ищете, нажать Enter
стандартный редактор — нажать Ctrl + F, ввести, что ищете, нажать Enter
Да что вы говорите?/слово
Редактирование:
vim — стрелками подвести курсор к месту, которое нужно редактировать, нажать i, начать набирать
стандартный редактор — стрелками подвести курсор к месту, которое нужно редактировать, начать набирать
Вы знаете, это iпрекрасно, пока iне надо наiбирать кириллицу.
Замена:
vim — нажать :%s/слово, которое искать/слово на которое заменить/g
стандартный редактори — не помню хоткея, наверное надо лезть в менюшку
Какая чудесная, интуитивно-понятная команда!:%s/чудесная/прекрасная/g
Не работает что-то.
Откат изменений:
vim — нажать u
стандартный редактор — нажать Ctrl+Z
Мне коuажется, вы чего-то не договвuариваете. :)
Я к тому, что без выработки дурацкой^W привычки тыкать Esc перед любым действием vim — это наказание, а не редактор.
Я к тому, что без выработки дурацкой^W привычки тыкать Esc перед любым действием vim — это наказание, а не редактор.
Как я уже писал.
Для базовых действий надо запомнить, что есть режимы. Это несложно, просто очень непривычно.
Понаблюдайте как-нибудь со стороны, как именно работают в виме люди — они практически никогда не отслеживают текущий режим. Надо сохраниться — [esc]:w без вариантов, хотя в настоящий момент вим мог находиться в режиме команд и esc не нужен. Нажатие esc становится привычкой, которая даже не замечается.
Доходит до абсурда: для начала редактирования люди нажимают [esc]i, чтобы сначала выйти из режима редактирования (если находились в нем), а затем снова войти. Да, это происходит быстро и уже ушло на уровень подкорки, но это — мусорные действия, которые возникают исключительно из-за наличия в редакторе режимов.
Я к тому, что без выработки дурацкой^W привычки тыкать Esc перед любым действием vim — это наказание, а не редактор.
Я использую ctrl+c(на qwerty это ctrl-i) вместо esc, при этом на caps lock забинден ctrl, очень удобно
Да что вы говорите?/слово
Нажать / ввести слово (или несколько слов) и потом прыгать по результатам поиска нажимая n, что может быть проще? Ах да, Ctrl+f а потом Enter, да, "очень удобно". А как же быть с регистронезависимым поиском, наверное поставить какую нибудь галочку, в vim можно просто ввести \c после слова и он произведет такой поиск.
В целом нет смысла говорить о каких то конкретных вещах типа поиска, ведь мощь вима раскрывается тогда когда используется набор команд, т.к. вы же не делаете поиск только ради поиска, обычно это поиск + редактирование.
Реальный пример: вам нужно найти слово, потом найденное слово оказывается в кавычках и вам нужно удалить все что в кавычках и написать что-то новое.
В обычном редакторе это: Ctrl+f + enter + подвести мышку к найденному результату и сделать двойной клик что бы выделить все что в кавычках, а потом начать вводить изменения.
В vim это: /word + n + ci"
В vim нет привычной вам интуитивности на уровне интерфейса, в нем интуитивность на уровне ваших пальцев
в нем интуитивность на уровне ваших пальцев
Лозунг красивый, но бессмысленный.
Нет никакой интуитивности на уровне пальцев. Есть моторная память, закрепленная многократным повторением. Она, заметим, никак не зависит от редактора — пальцам абсолютно все равно, что набирать.
Единственное реальное преимущество вима — это возможность все делать с клавиатуры, без привлечения мыши. Впрочем, без мыши прекрасно можно обойтись и во множестве других редакторов. При этом некоторые из них еще и позволяют не мучиться с переключением раскладки с кириллицы на латиницу и обратно.
Я не совсем понимаю о каких проблемах с раскладкой кириллицы вы говорите, можете привести пример?
По поводу интуитивности на уровне пальцев, я имел ввиду
d — delete
a — append
u — undo
di" (delete inside ")
ci" (change inside ")
Это не достаточно интуитивно?
Я не совсем понимаю о каких проблемах с раскладкой кириллицы вы говорите, можете привести пример?
Об очевидных проблемах. Жц вместо :w — почему-то не работает. Если вместо u набрать г — тоже почему-то не работает. И т. д. для практически любой команды.
В результате редактирование русского текста превращается в постоянное переключение раскладок.
Это не достаточно интуитивно?
То, что вы привели в качестве примера — это мнемонические правила для запоминания дурацких^W команд. Это не имеет ничего общего с уровнем пальцев.
И согласитесь, гораздо логичнее для перехода в режим вставки использовать клавишу Insert, для удаления символов — клавишу Del или Backspace.
Это не достаточно интуитивно?
Это вообще не интуитивно, это мнемоники.
Об очевидных проблемах. Жц вместо :w — почему-то не работает. Если вместо u набрать г — тоже почему-то не работает. И т. д. для практически любой команды.
Вим можно настроить так, что в нормальном режиме язык всегда будет английским. И Жц никогда не наберётся. Так что проблемы с раскладками нет. Я, признаться, сначала подумал, что вы шутите.
И я сильно сомневаюсь, что вим можно настроить на преобразование кириллицы в латиницу, когда он запущен в удаленном терминале и с ним работают через какое-нибудь putty
Вообще без проблем. Не надо даже русского языка на локальной машине. Правда, нужна поддержка русского на удалённой и доступ к настройкам вима.
Понял.
Другими словами, в ситуации, когда раскладка переключается на локальной машине, работать оно не будет.
Если нужно переключать раскладку на локальной машине, то есть другой способ. Вим будет видеть, что пользователь вводит о и превращать нажатие в j, если реактор находится в нормальном режиме. Но я при работе в виме держу раскладку ос английской. Это, помимо прочего, позволяет переключать языки не убирая руки с home row.
И да, некоторые сотрудники по долгу службы пишут на не-латинице — текрайтеры, локализаторы.
Это достаточно реальный сценарий для вас?
Да, вполне. Спасибо.
Действительно было интересно.
Это достаточно реальный сценарий для вас?
Текрайтеры и локализаторы, которые пишут в консольном редакторе, подключаясь через ssh? Честно говорят — какой-то вообще нереальный ))
Программистам-то было пофиг, ибо кругом латиница. А вот текрайтерам было хреново. Выкручивались как могли, но ни один не использовал вим.
Впрочем, кроме ssh был открыт еще порт X window — можно было подключиться к юниксовой машине Х-клиентом и работать в окнах. Правда, там все было очень хреново в плане кириллицы, поэтому никто так не работал (кроме пары программеров — один xemacs запускал, второй, кажется, eclipse).
И согласитесь, гораздо логичнее для перехода в режим вставки использовать клавишу Insert, для удаления символов — клавишу Del или Backspace.
Логично — да, удобно — нет.
При слепом наборе руки всегда находятся в области буквенно-цифровых клавиш, а если быть точнее указательные пальцы всегда на F и J и все в пределах досягаемости, без перемещения кистей рук. Так зачем мне тянуться к del или insert, или выворачивать свой мизинец что бы нажать backspace? Все что мне нужно уже у меня под пальцами.
И это абсолютно не универсальное решение, которое хорошо работает только если у вас полноразмерная клавиатура, а если это ноутбук в котором хоть и есть del, но нет insert. И все это находится не на своих местах и урезано что бы сократить место.
Тут как бы уже речь идет об универсальности, среди людей который пишут код очень много тех кто любит универсальные и простые решения и инструменты.
Мне не важно какая под моими пальцами клавиатура, есть в ней цифровой блок или его нет, на клавиши fN мне тоже все равно, мне не нужны стрелки — я ими не пользуюсь как и клавишами del, insert, pgup, etc. Я могу взять любую клавиатуру или любой ноут и работать так как я работаю всегда. А для того что бы начать использоваться вим мне нужно его установить, стянуть свой конфиг и установить плагины, и все это занимает 5-10 минут и я готов к работе.
Об очевидных проблемах. Жц вместо :w — почему-то не работает. Если вместо u набрать г — тоже почему-то не работает. И т. д. для практически любой команды.
В результате редактирование русского текста превращается в постоянное переключение раскладок.
Проблема высосанная из пальца.
- Насколько я знаю все это можно настроить в конфиге, в том числе и сделать что-то вроде ctr+s
- зачем вам кириллица при написании кода?) Ну ок, комментирование фрагментов кода, но в чем проблема переключить раскладку?
<шутка про punto switcher>
Так зачем мне тянуться к del или insert, или выворачивать свой мизинец что бы нажать backspace?
Вы лукавите.
Расстояние до Esc, которую приходится жать постоянно, ничуть не меньше, чем до Backspace.
Мне не важно какая под моими пальцами клавиатура, есть в ней цифровой блок или его нет, на клавиши fN мне тоже все равно, мне не нужны стрелки — я ими не пользуюсь как и клавишами del, insert, pgup, etc. Я могу взять любую клавиатуру или любой ноут и работать так как я работаю всегда.
Это очень слабое оправдание. Привыкнуть к особенностям ноутбучной клавиатуры в любом другом редакторе — дело нескольких минут.
И я очень сомневаюсь, что вы меняете клавиатуры постоянно: даже сисадмины, которым постоянно приходится коннектиться к разным машинам по ssh, работают с одной и той же клавиатуры, максимум — с двух (ноутбук и стационарная).
Проблема высосанная из пальца.
1. Насколько я знаю все это можно настроить в конфиге, в том числе и сделать что-то вроде ctr+s
Не всегда есть доступ к конфигам на удаленной машине. Точнее, не всегда их разрешено менять.
зачем вам кириллица при написании кода?)
Подмена понятий.
Мы обсуждаем vim как текстовый редактор. А значит, уметь работать с текстами в различных кодировках и на различных языках — его прямая обязанность.
Если же мы ограничиваем область применения vim набором и редактированием текста в Latin1 — простите, это не редактор, а неполноценное поделие.
Ну ок, комментирование фрагментов кода, но в чем проблема переключить раскладку?
То, что вы лично не сталкивались с необходимостью редактирования русскоязыных текстов в виме, еще не означает, что такой задачи нет.
Помнится, надо было срочно-бегом-вотпрямщас поменять на одной шарабайке xml с русскими текстами. И ви таки будете смеяться, но задачу решили отнюдь не вимом, хотя сначала попытались использовать его.
<шутка про punto switcher>
Мы обсуждаем не костыли и подпорки, а Vеликий I Mогучий текстовый редактор.
Вы лукавите.
Расстояние до Esc, которую приходится жать постоянно, ничуть не меньше, чем до Backspace.
Поэтому Esc мало кто жмёт. Из коробки можно вместо Esc нажать Ctrl+[. Почти с тем же эффектом можно нажать Ctrl+c. Или можно забить какую-то другую, удобную лично вам комбинацию.
Не всегда есть доступ к конфигам на удаленной машине. Точнее, не всегда их разрешено менять.
Если вам запрещено менять конфиги на удалённой машине, перед вами встаёт целый спектр проблем, которые бессмысленно перечислять в рамках обсуждения vim как текстового редактора.
Если вам запрещено менять конфиги на удалённой машине, перед вами встаёт целый спектр проблем, которые бессмысленно перечислять в рамках обсуждения vim как текстового редактора.
Как раз наоборот — именно в этих условиях вим как текстовый редактор и способен блеснуть во всей красе. Установлен практически везде в юникс-мире, (почти) не зависит от глюков и кривых настроек терминала, работает в обычном текстовом режиме, обладает мощным набором команд для редактирования (для инструмента такого класса), не требует долгого конфигурирования.
Но нет, почему-то все аргументы стороников вим — из разряда «это можно настроить» и «мне так удобно». Ах да, еще один коронный аргумент — «вам это не нужно».
Как раз наоборот — именно в этих условиях вим как текстовый редактор и способен блеснуть во всей красе.
Если рассматривать перечисленные вами преимущества вима как единственные или просто главные, то, конечно, так оно и есть. Но фишка вима не во всём этом, а в режимах )). Если вам нужен редактор, который удобно будет использовать через терминал для редактирования русскоязычных текстов и который нельзя настроить — возможно вим не ваш выбор, не знаю, я не пробовал использовать его таким образом.
Но нет, почему-то все аргументы стороников вим — из разряда «это можно настроить» и «мне так удобно».
Если почитать ветку, можно заметить, что "это можно настроить" вам отвечают, когда вы находите какой-нибудь фатальный недостаток, о котором никто уже не помнит, поскольку применены настройкия, которые его устраняют.
"Мне так удобно" вам отвечают, когда вы говорите, что собеседнику совершенно точно неудобно. В общем-то ожидаемая реакция.
Ах да, еще один коронный аргумент — «вам это не нужно».
В моём исполнении это звучит как — если вам это нужно, то вим не подойдёт.
Единственное реальное преимущество вима — это возможность все делать с клавиатуры, без привлечения мыши.
Много где можно делать всё с клавиатуры, вим тут не одинок. В виме можно делать то, что чего в других редакторах надо зажимать Ctrl, просто нажатиями клавиш, без модификаторов. Вот это дейтсвительно преимущество.
Сохранение:
vim — у меня настроен на Ctrl+S. Если вдруг этой настройки нет, то :w
Стандартный редактор — нажать Ctrl+S
Забавно читать, как ярый сторонник режимов в редакторе вводит богопротивные шорткаты, работающие в обход этих самых режимов. :)
Забавно читать, как ярый сторонник режимов в редакторе вводит богопротивные шорткаты, работающие в обход этих самых режимов. :)
Это очень интересная тема. Зачем нужны режимы? Затем, чтобы делать в них действия, объединённые по какому-то признаку. То есть, после того, как произведено первое действие в режиме (например курсор передвинут на слово вперёд) — скорее всего пользователь сделает второе такое действие, а потом и третье. Зажимать Ctlr всё это время — устанут пальцы, особенно, если клавиши, которые жмёшь вместе с Ctrl — в разных половинах клавиатуры. Поэтому удобно ввести режим.
Сохранение — действие однократное, его удобно повесить на шорткат. Потому то дальше Ctrl можно будет отпустить.
Это очень интересная тема. Зачем нужны режимы? Затем, чтобы делать в них действия, объединённые по какому-то признаку. То есть, после того, как произведено первое действие в режиме (например курсор передвинут на слово вперёд) — скорее всего пользователь сделает второе такое действие, а потом и третье.
Тема интересная, но не в том плане, в которым вы предлагаете ее трактовать.
Лично я считаю, что из-за философии вима («делаем все через команды») у адептов происходит деформация привычек, и они начинают делать командами даже то, что прекрасно делается стрелочками и шорткатами.
Неоднократно наблюдал, как люди вводили хитрые команды для поиска и замены, ошибались, откатывали изменения, снова вводили… И это при том, что заменить надо было ровно одно вхождение, которое к тому же было видно на экране. Согласен, в редактировании текста командами есть некий шик, но молотить несколько минут граблями по клавиатуре там, где достаточно пошоркать стрелочками и ввести одно слово — как-то слегка нерационально.
Зажимать Ctlr всё это время — устанут пальцы,
Очень сомнительное утверждение, очень. Этак можно и Shift забраковать как вредную, ненужную кнопку, от которой руки устают. :)
Приведу пример: когда постоянно работаешь в screen'е, комбинация Ctrl+A вводится несколько тысяч раз в день. И знаете — как-то не устают пальцы, хотя примерно за год кнопка Ctrl протирается почти насквозь.:)
Опять же, любители Emacs (второго альтернативного редактора с педальной морзянкой) жмакают комбинации с Ctrl, Shift и Alt сотнями и тысячами ежедневно. И ничего, не жалуются.
Лично я считаю, что из-за философии вима («делаем все через команды») у адептов происходит деформация привычек, и они начинают делать командами даже то, что прекрасно делается стрелочками и шорткатами.
Про стрелочки
Стрелочки тупо зло, потому что надо постоянно переносить руку на стрелочки и потом обратно на букву. Этот пунк не к любителям вима, а вообще ко всем, кто не хочет переносить руку с home row.
Про шорткаты
В виме шорткаты используются и используются достаточно широко.
Насчёт того, что люди иногда используют командный режим там, где можно и без него — это явление общего характера. Видели наверное программистов, которые пишут generic код, чтобы поправить строчку в данных, которую спокойно можно поправить руками? Вот это оно.
Плюс, если операция простая — действительно, иногда двигать курсор лень. Но это уже редкость.
Этак можно и Shift забраковать как вредную, ненужную кнопку, от которой руки устают. :)
Shift зажимается один раз для того, чтобы ввести заглавную букву. Держать его долго как правило не надо. Но и в этом случае рекомендуется sticky shift.
В кейсах, когда Shift надо держать долго — это точно зло.
Приведу пример: когда постоянно работаешь в screen'е, комбинация Ctrl+A вводится несколько тысяч раз в день.
Вводится, но держать Ctrl не надо. Это однократное нажатие, это не так больно.
Опять же, любители Emacs (второго альтернативного редактора с педальной морзянкой) жмакают комбинации с Ctrl, Shift и Alt сотнями и тысячами ежедневно. И ничего, не жалуются.
Ещё как жалуются. Погуглите Emacs pinky. Погуглите, как пользователи Emacs пробуют бороться с туннельным синдромом. Погуглите, что такое плагин god mode в emacs.
Всё, что вы перечислили можно сделать и в обычном Vim (плагинами). Однако мой посыл заключался в том, что в нём удобно текст редактировать. С предоставлением функционала Vim вполне справится и «крутой IDE» (тоже плагинами)
Всё, что вы перечислили можно сделать и в обычном Vim (плагинами).
К сожалению, вим очень сильно недотягивает до IDE по этим фичам.
С предоставлением функционала Vim вполне справится и «крутой IDE» (тоже плагинами)
Функционал вим это в первую очередь режимы. И с ними в крутых IDE не очень хорошо.
а полноценная IDE, способная держать в своей голове весь проект
если способная, со вменяемым быстродействием*. А то уж больно большие в 2018 проекты бывают
В ОС Windows встроенный редактор FAR вполне подходит. MSYS2 ему в помощь.
vim имеет два режима в одном он пищит, в другом всё портит
Как то мало расказали даже про ctrl+n не упомянули, про навигацию и полезные расширения.
Поддерживаю автора статьи, vim очень удобен особенно в связке с tmux.
5 месяцев назад перешел на vim + tmux и ни разу не пожалел, попутно сменил раскладку с qwerty на dvorak и windows на linux. До этого 3 года пользовался phpstorm, а еще до этого 4-5 лет netbeans.
Конечно переход на vim это должно быть осознанное решение и тот человек который задумался об этом должен точно понимать зачем ему этот редактор. Но я к сожалению не могу сказать что одна лишь смена редактора с <ваш_редактор> на vim даст вам что-то ощутимое, тут должен быть комплекс изменений которые в совокупности увеличат продуктивность. Поэтому у меня кроме vim вот такой список:
- Смена стационарного компа на ноутбук
- Смена раскладки с qwerty на dvorak + освоение слепой печати
- Смена ОС, с windows на linux
Моя мотивация была такая:
- Отказ от использования мыши, который был спровоцирован желанием полной миграции с стационарного компьютера на ноутбук, для повышения мобильности. Это дает возможность мгновенной смены локации что положительно сказывается на продуктивности.
- Повышение скорости набора и редактирования кода, а смена раскладки на dvorak только добавила скорости и комфорта
- Tmux позволяет забыть о том что такое окна, и дает возможность очень легко управлять областью в терминале. Во время разработки кроме редактора с кодом приходится часто открывать еще несколько терминалов с тестами или просто для выполнения консольных команд, без tmux нужно городить окна и активно юзать виртуальные рабочие столы, а это все хот-кеи, а хот-кеи не очень то и удобны, даже если вы забиндили ctrl на клавишу caps lock.
- Переход на linux — ну тут все просто, практически все что я использую при разработке или в разработке, очень хорошо работает на linux, на windows приходилось вечно сталкиваться с различными проблемами и искать обходные пути. Ну и конечно же терминал.
А что можете рассказать об адаптации vim к раскладке dvorak?
Никакой адаптации не требуется, во всяком случае если вы начали изучать vim уже с раскладкой dvorak, если вы до этого работали на qwerty, можно сделать qwerty langmap для dvorak в режиме normal(command), а при переключении в insert будет dvorak, но это ужасный костыль который все только усложнит. Т.е. не смысла использовать две раскладки, лучше сразу использовать dvorak.
То, что в qwerty происходит по hjkl, которые находятся прямо под пальцами и расположено в логичном порядке.
Мне правда интересно.
В своё время отказался от идеи перехода на. Dvorak, чтобы не чувствовать себя инвалидом, если сяду не за свой компьютер. Хотя это и так почти получается, потому, что на ноутбуке у меня короткоходовая клавиатура, а на работе hhkb pro, после обеих этих клавиатур — вообще не могу пользоваться обычной плёночной, хотя переключаюсь без проблем с одной на другую.
С 2010 года по работе использую линукс, и по начало 2016 года пользовался только vim'ом. Когда вставал вопрос о редакторе, первая мысль
Сейчас использую vscode, но в терминале особенно в ssh сессии только vim. Дефолтный для ubuntu nano не могу до состояния «аж бесит».
Как Vim украл моё сердце