Как стать автором
Обновить

Комментарии 21

"Большая" проблема Vim из одного пункта? Мощно.


Если я ошибся в имени файла ---> во 2 пункт

Сел и подумал: почему ты не использовал, к примеру, автокомплит?


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

Да, согласен, Я не дописал главные проблемы Vim-а, вот тебе лично напишу:

  • Если ты используешь раскладку Dvorak или ещё какую-то, то Vim-ом тебе пользоваться ничем ни легче, чем обычными стрелками. А в xah-fly-keys для этого надо выполнить лишь одну команду (см. доку https://github.com/xahlee/xah-fly-keys)

  • Vim изначально имел KEYMAP-ы для того, чтобы их легче запомнить, на пример V - visual mode, c - change, и т.д

  • Для многих KEYMAP-ов в Vim-е надо нажимать Shift, хотя по идеи Vim наоборот создан, чтобы избавиться от всяких лишних нажатий Win, Ctrl, Alt, Shift

Ну сделай себе такую же команду в виме. nnoremap тебе поможет.

Да и что? Только "hjkl" не из этой оперы

>хотя по идеи Vim наоборот создан, чтобы избавиться от всяких лишних нажатий Win, Ctrl, Alt, Shift

Shift-то за что? Нет, вим не был создан для дискриминации шифта, это твои фантазии.

Не, ну тогда нет ни одной причины вообще использовать 2 режима (insert, command) ведь всегда можно использовать Alt, Ctrl и т.д. (я считаю shift из той же оперы)

Мало ли что ты там себе считаешь, а разница в том, что с помощью Shift ввести непечатаемый символ невозможно. Нажатия Alt обрабатываются в зависимости от того, какой у тебя эмулятор терминала, и даже от модели компьютера, что как-то сразу усложняет станадартизацию комбинаций. А самое главное, ты путаешь вимовские keymaps с hotkeys в других редакторах.

НЛО прилетело и опубликовало эту надпись здесь
именно, поэтому он и использует до сих пор ХККБ для печати. Она как раз и использует эти старые расположения

Так в этом и суть, В этом посте Я описал плагин для Emacs который перенастраивает дефолтные кнопки, например вместо Ctrl-pnae надо использовать jkil

если я захочу перейти к редактированию другого файла, то мне нужно:
Перейти в командный режим (Нажав сами знаете куда)
Напечатать :find и имя файла
Если я ошибся в имени файла ---> во 2 пункт

Жму <leader>o и открывается окошко открытия файла с нечетким поиском через fzf. Правда в NeoVim, не в emacs.
https://github.com/Garrus007/dotfiles/blob/master/.config/nvim/init.vim#L72

Да, реально NeoVim уже очень близок к гибкости emacs и, наверное, имеет все возможности, которые имеет Emacs. Вообще, эта статья не про Emacs, а про то, что другое расположение кеймапов в зависимости от того как их часто используют, Например: в vim чтобы удалить один символ справа нужно использовать X, и не самая не удобная, но и не самая удобная, ведь удалять по одному символу нужно довольно часто, в xah fly keys для этого нужно нажать d что удобнее, то же самое и для запуска команд, в vim для этого надо нажать : не самое лучшее решение, в xah fly keys нужно a. Чтобы выделить слово в vim нужно нажать целых три буквы viw, в Emacs одну цифру - 8

Клавиша для входа в командный режим находится в самой жопе углу клавиатуры

Если вы про режим ввода команд, то в самой жопе находятся еще пару спец символов, которые постоянно нужно нажимать. 9 лет назад пересел на дворак для программеров и проблема ушла (теперь это shift+q)
Если про normal mode, то есть ctrl+c вместо Esc
image


если я захочу перейти к редактированию другого файла

Есть ctrlp как в большей части популярных редакторов

У меня к программисткому двораку добавлены три удобных переназначения: LCtrl вместо caps (пользователи Vim туда часто ставят Esc, но Esc не так полезен, особенно вне Vim), Esc вместо LCtrl, Caps Lock вместо Esc. Правда последнее я не знаю, зачем мне нужно: обычно если я нажал Caps я просто молча ругаюсь и нажимаю его ещё раз.

OK

OK!

Единственная придуманная проблема вим, и та из серии «не читал, но осуждаю»
Первое что надо запомнить, в Vim нет кнопки входа в Normal mode, esc это кнопка выхода из других режимов, так что для того чтобы войти в Command mode (: ), не нужно нажимать esc, Normal mode и есть нормальное состояние в vim, в другие режимы заходишь на короткое время и сразу выходишь из них.
Для нахождения файла давно уже используется fuzzy поиск
image
Единственным преимуществом XAH FLY KEYS перед обычными горячими клавишами является использование последовательности нажатий вместо удерживание Alt|Shift|Ctrl вместе с каким нибудь символом. Основной же недостаток никуда не делся, все так же куча не связанных между собой кнопок, которые можно только запомнить.
Те в XAH-FLY-KEYS сначала учишь кнопки для пермещения на символ, слово, на скобку, в конец/начало файла, потом откладываешь это в сторону и учишь кнопки для выделения/удаления/копирования тех же самых сущностей. В vim же на втором этапе нужно запомнить по одной кнопке для каждой из команд и правило как их использовать с командами перемещения/выбора.
Отдельные команды тоже не впечатляют:
  • 9 — выделить текст в ковычках ( почему в кавычках, если на кнопке 9 расположена скобка??? ) против (i|a)+('"<[(t...), помимо того что возможностей гораздо больше, ты напрямую нажимаешь обрамляющий символ, его не надо запоминать как отдельную команду.
  • регистр 1 с отдельными командами вообще ниочем по стравнению с 26 именованых регистров vim

Да, учить вправду не легко, сложно

Вообще в XAH FLY KEYS хоть и куча бессвязных клавиш, но определены они в зависимости от того, как часто их используют

Например: в vim чтобы удалить один символ справа нужно использовать X, и не самая не удобная, но и не самая удобная, ведь удалять по одному символу нужно довольно часто, в xah fly keys для этого нужно нажать d что удобнее, то же самое и для запуска команд, в vim для этого надо нажать : не самое лучшее решение, в xah fly keys нужно a. Чтобы выделить слово в vim нужно нажать целых три буквы viw, в Emacs одну цифру - 8

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

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

Но этого недостаточно. Удобство отдельных клавиш сильно субъективная вещь, зависит от раскладки, частоты применения, привычек. Тот же X я не уверен что вообще когда либо применял, : называть часто используемым тоже довольно странно. а что касается viw, тут есть недостаток упомянутый в предыдущем коментарии. Что вим ты знаешь iw и можешь использовать viw, diw, ciw, gUiw, g~iw и кучу других, включая добавленные плагинами команды. И эти команды тоже применимы не только к iw, а ко всем командам перемещения/выделения. И за счет того что команды действия комбинируются с командами указания области, из небольшого количества базовых кирпичиков, которые надо запомнить получается огромное число команд работы с текстом. А тут придется учить кучу отдельных никак не связанных клавиш. И мало того что их запомнить сложно, одно клавишных просто не хватит для всех команд доступных в вим.

Не зависит от раскладки. Потому что не должно никого волновать где находится клавиша "удалить", волновать должно где находится клавиша delete, или append и т.д. А это обычно знает "мышечная" память. И тут, кстати, отдельный плюс: не нужно в начале мануала рассказывать что M это Meta, которая появилась потому что, а теперь называется вот так, но если у вас не PC, то вот так.

как удобство клавиши не зависит от раскладки?
тогда чем определяется что одна клавиша удобнее другой?

с метой все так, потому что vim работает на куче разных систем, и через разные терминалы. Было бы странно мануал писать исключительно для PC. А плюсов тут особо не видно, однозначный минус в крайне ограниченном количестве команд. И кстати речь то идет про emacs, там с метой все точно также.

Сегодня узнал, что команда втаскивает текст не в регистр 1, а сначала спрашивает имя регистра и втаскивает в него.

А имя регистра может быть:

  1. Любой клавишей (включая русские символы, цифры, символы и TAB). (Это около 50 регистров)

  2. Любой заглавной буквой +50

  3. Любой клавишей с модификаторами (Ctrl, Alt, Ctrl+Alt) +300

    Получается в Emacs 400 регистров, а в Vim всего 26...

    P.S. сегодня это узнал решил написать

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории