Vim: переход от мыши к движению - PullRequest
6 голосов
/ 28 января 2010

Я часто использую MacVim (и gvim). Я знаком и использую множество основных команд перемещения (b, w, $, 0, G). Однако для многих вещей, таких как выбор определенных строк на экране или переход к определенному столбцу в другой строке, я использую мышь (иногда вместе с левой рукой на клавиатуре). Также помогает, что у моей мыши есть колесо прокрутки и кнопки для смены вкладок.

Мне также нужно признать ... Я использую клавиши со стрелками на клавиатуре, а не hjkl.

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

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

Этот вопрос вдохновлен этим недавним сообщением

Ответы [ 10 ]

8 голосов
/ 28 января 2010

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

Нет, вы должны выйти из режима вставки сразу после того, как набрали то, что хотите. Это быстро становится рефлексом, поэтому вы действительно не теряете время (иногда я даже нажимаю клавишу escape после заполнения веб-формы ...). Обычный режим предназначен не только для перемещения, он используется для выполнения большинства операций (кроме ввода текста): например, для удаления или перемещения фрагментов текста. Вам также полезно войти в режим вставки с помощью соответствующей клавиши: o для начала строки, S для замены строки (при сохранении отступа), A для перемещения до конца строки, c + motion, чтобы заменить несколько слов или до заданного символа ... Все эти нажатия клавиш сохранения.

Мышь кажется быстрой, но на самом деле она не точная, поэтому вы теряете время (в дополнение к постоянным движениям вперед и назад с помощью клавиатуры). ViM имеет длинный список команд перемещения (см. :help usr_03), которые в большинстве случаев быстрее, чем мышь, в большинстве ситуаций.

Используйте поиск как можно чаще (/, ?, *, #, f, t ...). Я лично использую Ctrl + ( d , u , f , b ) много. Кроме того, Ctrl + ( o , i ) и `` действительно полезны, чтобы вернуться туда, где вы были до поиска или чего-то еще.

ч , j , k , l , чтобы расположить правую руку рядом с полезными командами ( i , u , o ...): у меня всегда на них пальцы. Стрелы заставляют вас сильно двигать рукой.

Попробуйте взглянуть на несколько команд в :help, затем используйте их часто, и у вас появятся привычки относительно того, что вам следует использовать для перемещения в зависимости от ситуации. Никто не использует ViM так же.

5 голосов
/ 28 января 2010

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

Если вы хотите заставить что-то делать, просто отключите мышь на некоторое время! Чем больше вы используете клавиатуру, тем больше она вам понравится. Это сработало для меня.

Для перемещения между строками я обычно просто использую jk, но я часто пропускаю строки, используя :line_num. Чтобы добраться до определенного столбца в строке, я обычно использую wbe^0$ и помещаю модификаторы перед w, b или e, если пропускаю несколько слов. И есть также сдвинутые версии, WBE, которые также часто пригодятся.

3 голосов
/ 01 февраля 2010

Одна команда, которая действительно улучшит вашу скорость передвижения, это f . f плюс символ перейдет к первому появлению этого символа в текущей строке. Нажатие ; перейдет к следующему вхождению. Конечно, это можно использовать в сочетании с другими командами. Так, например, удаление всех символов, вплоть до первой закрывающей скобки, включая нажатие d + f + ) .

3 голосов
/ 29 января 2010

Я бы запустил vimtutor из командной строки (Terminal.app в OS X). Он работает vim с учебным документом. Именно этот документ заставил меня осознать силу некоторых команд. Вы подберете те, которые наиболее полезны для вас, и со временем получите больше. В конце концов вы будете использовать мышь все меньше и меньше.

3 голосов
/ 28 января 2010

Я должен признать, что я часто использую клавиши со стрелками для определенного движения в vim. Я редко использую HJKL. Тем не менее, я обнаружил, что большая часть моей навигации выполняется с помощью других команд, таких как w (пропустить слово вперед), b (пропустить слово назад). Объедините это с модификаторами, такими как 3w (3 слова вперед). : перейти к определенной строке.

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

1 голос
/ 29 января 2010

Вы можете серьезно вращать свою жизнь вокруг jk в hjkl.

nnoremap <c-k> ddkP "move current line up one
nnoremap <c-j> ddp "move current line down one
vnoremap <c-j> dp'[V'] "move visual block down one
vnoremap <c-k> dkP'[V'] "move visual block up one

"These may be a bit more esoteric to me"
inoremap jj <esc>o "Insert mode can move to next line (works mid line)
inoremap kk <esc>O "Insert mode new line on previous line 

также для настольного графического интерфейса (ion3 и gnome)

win j - следующее окно

победа k - предыдущее окно

(Это превосходит alt tab если вы редактируете в vim весь день)

также читайте: он полностью или полностью использует motion.txt, используя j и k для прокрутки вверх и вниз, как и вы.

0 голосов
/ 04 сентября 2010

Я почти никогда не использую hjkl, потому что это слишком утомительно. Я обычно пытаюсь прыгнуть прямо туда, куда хочу. Существует отличный шпаргалка (доступна также версия Dvorak (хотя она в формате PDF)), на которую вы можете посмотреть и представить возможности.

В основном я использую f, F, t и T, и иногда они улучшаются путем ввода числа вперед, например, d2t) удалит до второй закрытой пары. Иногда я использую поиск. Большую часть времени я использую w, W, b, B, e и E. Они все фантастические.

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

Что-то, что я сделал, что я не знаю, распространено это или нет, переназначило мои клавиши со стрелками на <Esc><Up> и так далее. По какой-то причине я всегда начинал стрелять и предполагал, что вернусь в нормальном режиме, поэтому я просто заставил это сделать ...

Самым большим обломом в Vim является то, что теперь, когда я редактирую что-либо еще, я нажимаю клавишу escape все время и после каждого изменения набираю :w ...

0 голосов
/ 29 января 2010

Думаю, вам интересно, есть ли быстрый способ перемещения в режиме вставки (без использования мыши или клавиш со стрелками), но, к сожалению, его нет; Вы должны выйти из режима вставки. Тем не менее, я знаю, что прыгать полностью до вашей клавиши Esc может быть очень раздражающим, поэтому я привык иметь привычку сбегать с помощью Ctrl + c , это намного быстрее.

0 голосов
/ 29 января 2010

Используйте мышь там, где это имеет смысл. Это часто происходит (копирование / вставка в и из других приложений графического интерфейса).

Однако, чтобы ответить на ваш вопрос: как только вы начнете использовать vim в качестве инструмента для преобразования текстовых битов макросами, все движения начнут становиться на свои места;)

0 голосов
/ 28 января 2010

Я выучил vi, поэтому мне никогда не приходилось использовать мышь с текстовым редактором.

Я не использую hjkl, за исключением случаев, когда устройство / сеть / клавиатура / что-либо промежуточное не настроено должным образом.

...