LINUX.ORG.RU

Любители эмуляции vim, чем она лучше?

 ,


1

2

Привет, ЛОР.

Здесь довольно часто всплывает тема vim-подобных хоткеев в разных редакторах кода, IDE, файловых менеджерах и даже браузерах. Вопрос к любителям этого режима работы: чем именно он вас пленяет? Ну кроме привычки, разумеется?

Что из vim-клавиш повышает вашу производительность, комфорт и др.? Например, вы всякий раз, когда надо переместиться вверх, прикидываете число строк и вводите его, и это удобнее, чем давить на стрелку? Или что-то ещё?

★★★★★

Она хуже. Каждый раз когда я включаю эмуляцию где-то, сразу же отключаю после того как пытаюсь удалить слово через Ctrl+W и вместо этого закрываю окно. hjkl ещё куда ни шло, но для редактирования невозможно запомнить что там эмулируется, а что нет.

anonymous
()

Насчёт браузера. Пользуюсь расширением Vimium для Firefox. Попробовать его решил действительно из-за vim в названии, но оставил по совсем не связанным с vim причинам, просто он реализован крайне удачно.

Во-первых, навигация с клавиатуры по ссылкам - это очень удобно, пользуюсь ей 50/50 с мышкой. Во-вторых, движение по странице с помощью клавиш hjkl/ud тут реализовано плавно (зажал - едет), а не с задержкой между первым нажатием и потоком из остальных, что удобно.

Я даже считаю, что ассоциация с vim немного тормозит или направляет не туда развитие расширения, ибо u/d для быстрой прокрутки вверх/вниз - всё же не лучшие клавиши, да и система меток, прямо скатанная из vim, мне в текущей реализации не пригодилась ни разу.

Для редакторов текста эмуляциями vim не пользуюсь, пользуюсь настоящим (neo)vim.

lwo
()

Удобством. Vim-режим может реализовать то, чего без него нет или до чего трудно добираться. В том же браузере, H и L для хождения по истории удобно, а оригинальные сочетания я никогда не использовал и даже не знаю их.

xaizek ★★★★★
()

Не знаю как для кого, а я в виме ценю только кастомизацию и универсальность. Всякие hjkl в жизни не использовал. И да просто вот так и сбросить со счетов привычку нельзя, я вот уже очень привык разбивать окно по vs sp сохранять по :w создавать по :e filename копировать/втавлять и прочее по специфичному. Это делается молниеностно, не потому что «вим ускоряет продуктивность» а просто потому что руки привыкли. И да я пользуюсь стрелочками для меня это удобнее и да я пользуюсь мышкой для тыка в рандомное место потому что механизм перемещения курсора в виме мне жутко неудобен даже спустя года.

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

Я от вима использую ну десяток «фичей» и если иной редактор может предоставить мне тоже самое в режиме эмуляции вима, я предпочту это выбрать вот и всё. 60% от этого выбора это уже привычка которую просто нет смысла ломать обратно так как привычка 90% удобства. И лишь остальные % это реально необходимость,лучше,круче,практичнее.

Но если весь вышестоящий словомусор выкинуть ответ крайне прост -> «мне нравки» вот и всё, без глубоких смыслов. Думаю у многих также.

LINUX-ORG-RU ★★★★★
()

Эмуляция практически никогда нормально не работает за редким исключением, так что более ценны проекты по типу qutebrowser и Nyxt, в которых workflow изначально построен вокруг каких-то Vim- или Emacs-концептов.

Полумеры просто ломают UX и вызывают попаболь.

commagray ★★★★★
()
Ответ на: комментарий от TDrive

а они оказывается сделали отдельный браузер но уже с емакс хоткеями

К вимператору этот проект отношения не имеет насколько я знаю.

xaizek ★★★★★
()

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

pfg ★★★★★
()
  1. Нет необходимости привыкать к каждой IDE/редактору заново
  2. Исчезновение туннельного синдрома в запястье и локте
emorozov
()

Всё это имеет смысл только для редактирования текста. И то, если юзер нормально воспринимает идею режимов. А иначе незачем себя мучить. Хотя конечно хоткеи без модификаторов всяко приятнее, чем рандомные Контрол-Альт-зю.

bread
()
Ответ на: комментарий от xaizek

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

TDrive ★★★★★
()
Ответ на: комментарий от LINUX-ORG-RU

И да просто вот так и сбросить со счетов привычку нельзя, я вот уже очень привык разбивать окно по vs sp сохранять по :w создавать по :e filename копировать/втавлять и прочее по специфичному. Это делается молниеностно, не потому что «вим ускоряет продуктивность» а просто потому что руки привыкли.

Поддерживаю этого оратора.

apt_install_lrzsz ★★★
()

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

Неа, просто указываем номер строки :188 например, а ты будешь 188 раз давить стрелку

Djanik
()

Что из vim-клавиш повышает вашу производительность

Например «shift-y, p».

bugfixer ★★★★
()

Я не пользуюсь, но теоретически вим должен быть наиболее эргономичен. Там где в емаксе 4 кнопки, в виме - одна. Число строк можно в первом приближении прикидывать, да, тоже удобно.

den73 ★★★★★
()

Любители эмуляции vim

Я не любитель, но отпишусь.

vim-подобных хоткеев в разных редакторах кода, IDE, файловых менеджерах и даже браузерах. Вопрос к любителям этого режима работы: чем именно он вас пленяет?

Он меня не пленяет. Он вызывает у меня как правило омерзение.

Всё удобство vim’а в том, что сразу после запуска у тебя 104+ однокнопочных хоткея, которые можно повесить на что хочешь. Режимы эмуляции вима - это жалкое подобие резиновой женщины.

LamerOk ★★★★★
()

Стрелку нащупать нужно, а C-F, очевидно, сильно проще нажать.

urxvt ★★★★★
()

Если бы ты гуглил, то пришел к определённым выводам.

Ты в английский умеешь? Я тогда могу направить на Xah Lee. он хоть и, прости Господи, мудак и извращенец, но некую статистику и мининаучный подход к этому делу запилил.

А по поводу кнопок, ты бы начал со смены раскладки и обучении своей тушки слепым десятипальцевым. Толку будет больше. Потом кастуй волшебника меня, мы поговорим о клавишах, сочетаниях, клавиатурах, собственных раскладках et cetera.

c0ne
()

Например, вы всякий раз, когда надо переместиться вверх, прикидываете число строк и вводите его, и это удобнее, чем давить на стрелку? Или что-то ещё?

В vim существует куча способов переместиться к нужной строке, которых в принципе нет в других редакторах. Можно перемещаться поиском, можно по лейблам, а можно и по номерам строк. Только вместо того, чтобы тупо 23 раза нажимать кнопку «вверх», как в «правильных редакторах», у меня включен режим relative line numbers (rnu), и я сразу вижу, что мне надо нажать 23k. И считать строки не нужно.

Хотя считать строки удобно, когда надо удалить блок кода под курсором, и ты сразу видишь, что в нём 5 строк, например: 5dd. И никаих Shift-стрелочка пять раз, а потом ещё что-то.

emorozov
()

Хоткеи в текстовом редакторе курильщика абсурдные. Они ничем не обоснованы, это странные уродливые сочетания, которые нужно просто запомнить. Знание одного никак не поможет тебе в другом.

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

Эти подходы можно сравнить с китайским и европейским алфавитом. В первом для каждого слова свой иероглиф, которые нужно просто запомнить.

В европеском алфавите зная 27-33 букв можно читать/писать все знания мира.

Например, вы всякий раз, когда надо переместиться вверх, прикидываете число строк и вводите его, и это удобнее, чем давить на стрелку? Или что-то ещё?

set number relativenumber – нумерует строки от текущей. Т.е. ты прямо видишь номер строчки, на который хочешь попасть и нажимаешь 8j – 8 строк вниз или 11k – 11 строк вверх.

Но более лучший подход – это easymotion (hop.nvim).

Im_not_a_robot ★★★★★
()
Ответ на: комментарий от c0ne

В Emacs это всё есть. иногда намного удобнее default в Emacs, чем default в Vim.

Пользовался Emacs много лет. Он убивает суставы рук. Его невозможно нормально эмулировать в других редакторах (во всяком случае, я нормальной эмуляции не видел).

Да и удобнее не может быть. Я любил Emacs, и ещё питаю к нему тёплые чувства, но его сочетания C-M-p C-M-x рассчитаны на осьминогов, у которых, к тому же, нет суставов, которые начинают болеть после нескольких лет ежедневного растопыривания пальцев на всю ширину клавы.

emorozov
()
Ответ на: комментарий от Im_not_a_robot

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

Верно, vi это язык. https://irian.to/blogs/mastering-vim-grammar/

bread
()

кроме привычки

Сверхпривычка. Сперва ты используешь привычные хоткеи с соответствующим модификатором в tmux/i3/sway. Затем вполне логично расширить эту практику на все прочие приложения. И, внезапно, получить вполне себе эффективные и даже почти глобальные хоткеи в системе

bigc ★★
()
Ответ на: комментарий от bigc

Я без малого 20 лет одновременно использую макось и линукс в обиходе. В макоси шикарная, легко нарезаемая «на подкорку» глобальная система хоткеев. В случае же линукса, мой выбор как раз сабж

bigc ★★
()

Некоторые вещи в vim делаются проще.

Нет, число строк не прикидываю, и hjkl не пользуюсь (ну, только когда макросы записываю)

Yp - дублирует строку dd - удаляет строку. dta - удаляет до символа ‘a’. Аналогично dfa, dTa, dFa ciw - заменить слово сi" - заменить то, что в двойных кавычках. Аналогично ci’, ci(, ci{ и т. п. ca" - то же что и ci", но с самими кавычками.

    • поиск по слову, под которым курсор S - удалить строку и вместо неё начать писать что-то другое

. - повторение любой операции. Например, dta.. удалит до третьего символа ‘a’. dd… - удаление 4-х строк. Iabc - написать вначале строки abc, затем перешёл на дргуг строку, нажал ‘.’ и оно оптья вначало вставило abc

Ну, и, конечно макросы и замена с регулярками.

Kroz ★★★★★
()
Ответ на: комментарий от sudopacman


. просто повтотяет предыдущую команду

Это я знаю и использую, а вот про варианты dta... не сообразил.

d4j

Проще но у меня почему то с цифрами получается медленнее чем с повторением букв и символов.

einhander ★★★★★
()

hjkl лежат на домашнем ряду при слепой печати, поэтому и удобны. Причем вниз используется чаще чем наверх, поэтому j на указательном, вправо чаще чем влево поэтому это l, а на h можно и указательный палец передвинуть когда требуется. Это очень удобно и практично.

Притом остальные биндинги достаточно мнемоничны, {i}nsert, {w}ord, {e}nd, {f}ind, {t}il и так далее. Часто достаточно вспомнить, что ты хочешь сделать и аббревиатура этого действия на английском будет хоткем в vim.

einhander ★★★★★
()

Например, вы всякий раз, когда надо переместиться вверх, прикидываете число строк и вводите его, и это удобнее, чем давить на стрелку?

Нэт, дарю

bubvalet
()
  • :w?q?a?
  • :dd
  • :yy
  • :pp
  • :ce
  • :x
  • :u
  • :<номер строки>
  • /<поиск текста>

В режиме вставки:

  • ^W
  • ^H

Это основное, всё не припомнить. На уровне мышечной памяти руки сами находят, когда надо.

neversleep ★★
()
Ответ на: комментарий от Djanik

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

anonymous
()
Ответ на: комментарий от den73

Там где в емаксе 4 кнопки, в виме - одна

ты, надеюсь, в эту одну кнопку вход-выход из режимов включил?

anonymous
()
Ответ на: комментарий от emorozov

В vim существует куча способов переместиться к нужной строке, которых в принципе нет в других редакторах.

емаксеры ржут в уголочке

anonymous
()
Ответ на: комментарий от Im_not_a_robot

Но более лучший подход – это easymotion (hop.nvim).

именно, с ним отображение нумерации строк вообще не нужно

anonymous
()
Ответ на: комментарий от einhander

hjkl лежат на домашнем ряду при слепой печати, поэтому и удобны

для того, чтобы домашния ряд был удобен - обе руки должны лежать на нём, как следствие, обе руки должны быть параллельны друг другу, как следствие, если клавиатура не изогнутая/раздельная - то если тебе удобно, то руки у тебя растут из живота?

anonymous
()

чем именно он вас пленяет?

Прикольно очко щекочет.

anonymous
()
Ответ на: комментарий от LINUX-ORG-RU

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

Exmor_RS ★★★
()
Последнее исправление: Exmor_RS (всего исправлений: 1)

Чем её отсутствие, разве что.

t184256 ★★★★★
()
Ответ на: комментарий от emorozov

Хотя считать строки удобно, когда надо удалить блок кода под курсором, и ты сразу видишь, что в нём 5 строк, например: 5dd. И никаих Shift-стрелочка пять раз, а потом ещё что-то.

Еще более удобно, когда надо блок не удалить, а переместить

annulen ★★★★★
()
Ответ на: комментарий от Exmor_RS

Перемещение между визуальными строками это боль

Я не стал пальцы гнуть и быть Ъ религиозным вимером, на коротких дистанциях перемещения стелоки. На больших мышкой клик и всё. Чего все так ноют про то что до мышки тянуууутся там надо не понимаю и никогда не понимал это тоже из разряда религии мол не оторву руки отклавы даже если буит АПАКАЛЕПСЕС урурлюлю! Кому то может и в правду просто ну удобно всегда держать руки на клаве ибо 10ти пальцевая стойка и всё такое, но опять же могу судить только по себе, а я в 99% случав печатаю факами буквально только ими =)

В конечном итоге вим широк по возможностям и каждый находит для себя тот комплекс взаимодействия с ПО который ему в итоге удобен/приятен и вот это то и хорошо, за бортом остаются лишь ты делаешь не так как я поэтому ты лох, а я Ъ православный

LINUX-ORG-RU ★★★★★
()

В pale moon использую pentadactyl, очень удобно, не надо мышкой целиться по мелким объектам и лишний раз к ней тянуться. Модальность, кстати, хорошо ложится на интерфейс браузера, о чём свидетельствует куча всяких поделок вроде qutebrowser, nyxt, luakit и т.д. А вот эмуляция емакса в браузерах непопулярна, подозреваю, это из-за того, что больше клавиш жать надо. (сам я предпочитаю емакс, вимом не пользуюсь, хотелось бы аналог pentadactyl для емакса, конечно)

nemixer
()
Ответ на: комментарий от Exmor_RS

Перемещение между визуальными строками это боль (в инсерт и нормал моде), один из самых больших недостатков для меня.

Это ж всё настраивается.

У меня настроено перемещение между визуальными строками в insert mode и между реальными («параграфами») в normal mode.

Использовать gj (или g) в normal mode, конечно, иногда приходится, но всё равно, для меня это наилучший баланс.

Kroz ★★★★★
()
Последнее исправление: Kroz (всего исправлений: 1)

Отсутствие уберсложных (три-четыре-пять пальцев) комбо: одна кнопка в Normal Mode делает одно действие, числовые модификаторы делают указанное действие N раз.

Например d5w удалит пять слов, вместо нажатия Ctrl+Backspace (которые расположены довольно далеко друг от друга) пять раз. Или вместо ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ можно сделать просто 15j.

mord0d ★★★★★
()
Ответ на: комментарий от mord0d

Всем спасибо.

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

которые расположены довольно далеко друг от друга

Ну это не убойный аргумент, лично для меня нет проблем нажать Ctrl+Backspace, задействовав одновременно обе руки. Вот когда это делается 5 раз — это да, разница есть и достаточно существенная.

С третьей стороны мне всё-таки кажется, что при перед тем, как набрать d5w, мозг должен хоть на полторы секунды, но призадуматься над формализацией этой операции (а он, вообще-то, занят анализом исправляемого кода и отвлечение его на количество удаляемых слов не очень желательно). В то время, как аккорды приученные руки делают практически на автомате. Но да, это мой субъективный взгляд, и с точки зрения человека, который много лет пишет в vim-раскладках, всё может обстоять с точностью до наоборот.

При этом я не зациклен на одной раскладке, я помню, как много лет пользовались Shift+Ins, а потом пришлось переучиваться на Ctrl+V. Но вим всё же действительно намного более радикален.

hobbit ★★★★★
() автор топика
Последнее исправление: hobbit (всего исправлений: 3)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.