LINUX.ORG.RU

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

 ,


1

2

Привет, ЛОР.

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

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

★★★★★

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

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

А хинты тоже не нужны. Штатного / хватит всем. Обычно три-четыре буквы приводят точно в цель.

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

Или вместо ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ можно сделать просто 15j

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

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

Обычно три-четыре буквы приводят точно в цель.

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

anonymous ()

Пользуюсь в браузере.

Как выше отметили очень удобно ходить по ссылкам и по истории. Если нужно на большой блок переместиться вверх или вниз жму пробел (или шифт+пробел). Это и без расширения работает правда. :)

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

frunobulax ()
Ответ на: комментарий от hobbit

перед тем, как набрать d5w, мозг должен хоть на полторы секунды, но призадуматься над формализацией этой операции

Нет, нужно набрать daw и потом . до полного удовлетворения.

no-such-file ★★★★★ ()
Ответ на: комментарий от hobbit

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

Тяжело наверное жить с однозадачными мозгами?

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

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

Тяжело наверное жить с однозадачными мозгами?

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

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

Тяжело наверное жить с однозадачными мозгами?

Это только умозрительно кажется: ну какая же ерунда.

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

Со стороны, не попробовав, понять это не получится.

emorozov ()

тред не читал

Использую JetBrains IDE

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

Очень сильно повышает и ещё пальцы не болят

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

Это не так работает. Для перемещения в основном используются hjkl точно так же как ты бы пользовался стрелкой, только мне для этого не нужно перемещать руку на стрелки. Ещё часто использую перемещение по словам w/b (аналогичное Ctr+Rigth/Left).

Из постоянных кейсов:

  • выделение строк через V ну и копипаста yp или удаление через D/d
  • перемещение в начало/конец через gg/GG
  • перемещение на нужную строку через 123g
  • замена внутри парных символов через vI"c или типо того

на самом деле мелких шорткатов много которые не осознанно используешь но это и не 90% возможностей а лишь база.

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

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

перед тем, как набрать d5w, мозг должен хоть на полторы секунды, но призадуматься над формализацией этой операции

А задумываться над тем как шевелить мышь, вызывать пункты меню, читать варианты в меню, выбирать нужный? Когда ты пользуешься инструментом, ты уже не задумываешься как им пользоваться, ты пользуешься.

Если ты только начал осваивать Vim, то да, всё именно так как ты описываешь, но и с другим инструментом процесс освоения происходит точно так же (дольше с более сложным).

аккорды приученные руки делают практически на автомате

То же касается команд в Vim (ed, ex).

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

надо уметь считать

Чтобы ходить, нужно уметь держать равновесие.

абстрактные текстовые объекты видеть среди буковок

Для этого в Vim есть w, W, второе для любых наборов символов между пробелами. Но это самая-самая база, можно творить гораздо более интересную магию. ^_~

mord0d ★★★★★ ()

На любой клавиатуре и в любом терминале клавиши vim работают одинаково. Будь это клавиатура мас или обычная pc - kjlh везде все одно и то же. А всякие cntrl, pageup и т.п. могут быть, а могут и нет. Этим удобно.

Никаких принципиальных преимуществ у этих кнопок нет. Это вопрос понтов и привычки. На самом деле забивать голову всякими fRrd;rt это только отвлекаться от работы. Фанатики, конечно, будут кричать, что со временем это все будет на автомате и т.д., но это ерунда. Это реально только отвлекает. Гораздо проще мышью тыркнуть в место в тексте, чем изощряться со всякими 29k (Впрочем, мышь в vim’e тоже можно использовать.)

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

А задумываться над тем как шевелить мышь, вызывать пункты меню, читать варианты в меню, выбирать нужный?

Я не задумываюсь о том, как шевелить мышью. Когда читаешь текст, глаза по определению смотрят на то место, которое хочешь отредактировать. И курсор мыши туда сдвинуть - бессознательная операция. А без мыши тебе нужно 1) посмотреть, где сейчас курсор; 2) придумать, как его поставить на нужное место - может 5k может через поиск или через твое gg, например; 3) собственно это сделать. И эти действия не могут быть бессознательными, тут надо думать. Конечно, с опытом ты думать будешь быстро, но это все равно отвлекает. В результате работа с текстом сложнее, чем в блокноте с мышью. Движение мышью - это примитивное движение рукой, оно действительно осуществляется неосознано.

anonymous ()

"Чем она лучше" чем что? Чем Emacs? Чем vim? Чем Microsoft Office 2019? Чем грузины? При чём тут вообще девелопмент?

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

Мануал продолжается много после hjkl на глагне. Пройти вперёд можно по Ctrl+F.

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

эти действия не могут быть бессознательными

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

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

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

Можно сколько угодно обсуждать теоретически. До того, как попробовал vim, тоже писал ровно такие же комменты: «Да что эти вимеры о себе возомнили?!!»

Когда начинаешь пользоваться и привыкаешь, даже мысли использовать что-то другое нет. Сразу.

Есть, правда, два предварительных условия:

  1. Надо владеть слепой 10-пальцевой печатью (не уверен, что без этого vim можно эффективно пользоваться)
  2. Необходимо прочитать пару-тройук руководств по vim дальше первой страницы, чтобы узнать хотя бы десяток команды свыше a, i, hjkl, /
emorozov ()
Ответ на: тред не читал от Noob_Linux

Позволю себе добавить:

  • прыжки между альтернативными буферами (файлами) по ctrl-6
  • прыжки по парным скобкам по %
  • выделение произвольных блоков (не только строк целиком) по ctrl-v
  • возможность пропустить выделенное через произвольный внешний фильтр (горизонты открываются почти неограниченные)
  • добавить в конец строки через A
  • начать вставлять в новую строку выше/ниже по O/o
  • всякие cw/dw

Это то что сходу в голову пришло, сразу всего и не упомнишь - многое уже на грани автоматизма.

ПыСы. Пишу с телефона, память чисто моторная, как что если где очепятки закрались - не обессудьте.

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

обе руки должны быть параллельны друг другу

Не должны, у меня угол между руками несколько меньше 90, все удобно. Клавиатура стандартная. Проверил на маленьком ноутбуке угол сильно меньше, но все ещё удобно.

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

А при использовании airline?
Мне в любом случае не нравится, что это не встроенная функция, а эмулированная (в строке состояния при исполнении можешь например увидеть появление gj — это фу)

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

Нет, проблема именно в реализации gj — это плохая архитектура (собственно в багтрекере эйрлайна эти «баги» отклоняют по этой причине), как и подсветка на регулярках, или костыльный column-guide.
УМВР это конечно хорошо, пока УМВР у тебя.

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

Лучше помогите с освоением шорткатов, а то я уже из-за этого vim с наливки на коньяк перешел)

Намек понял Я в магазин за коньяком, через час буду …

Владимир

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

Зачем 15 раз нажимать стрелку если можно нажать один раз и зажать?

Пять слов тоже проще удалить нажав одну кнопку backspace или delete на нужное количество времени.

Если тормоз, ты или комп, то остановиться заранее и пару раз дожать в конце. Ведь кнопка одна и та же, никакого перемещения пальцев. Те же самые три нажатия.

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

Зачем 15 раз нажимать стрелку если можно нажать один раз и зажать?

Пять слов тоже проще удалить нажав одну кнопку backspace или delete на нужное количество времени.

У меня задержка между повторами — 35ms, ты сможешь попасть на нужную строку с первого раза в таких условиях? Сильно сомневаюсь.

Если тормоз, ты или комп, то остановиться заранее и пару раз дожать в конце. Ведь кнопка одна и та же, никакого перемещения пальцев. Те же самые три нажатия.

Ты всё равно делаешь лишнее движение до Backspace. Vim заточен так, что с домашнего ряда лапки убирать вообще не нужно (в том числе всякие ^M, ^H и так далее). А вообще, попробуй начать с ed(1).

mord0d ★★★★★ ()
Ответ на: тред не читал от Noob_Linux

Для перемещения в основном используются hjkl точно так же как ты бы пользовался стрелкой,

А самое смешное что автор VI для перемещения курсора использовал клавиши где были нарисованы стрелки. Клавиатура поменялась, а фетиш остался.

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

Лорчую этого анона: нигде толком не работает, только раздражение вызывает поведением, отличным от ожидания. Всегда плююсь и открываю взад вим.

pihter ★★★★★ ()