VIM Super Fast Navigation - PullRequest
       1

VIM Super Fast Navigation

80 голосов
/ 06 января 2012

Единственное, что мне не хватает в использовании других редакторов, - это найти свое место с помощью мыши.Я могу смотреть своими глазами на определенную область файла и одним движением мыши и щелчком мыши я нахожусь там.С VIM я должен jjjjjkkkkkkjjjjhhhh ... почти там hhhhh о дерьмо я пропустил 3 символа, lll.

Я учусь делать оценки, и я нашел плагин закладок, который отлично, я могу создавать маркеры и уничтожатьс помощью <f3> и перейдите к ним, к сожалению, метки будут забыты при закрытии файла.

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

Я также научился использовать /% для поискаконкретный термин.Это помогает, но все соответствующие символы выделены в документе.

Ответы [ 10 ]

147 голосов
/ 06 января 2012

Попробуйте $ vimtutor, это научит вас всему, что вам нужно знать, чтобы начать.

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

wWEe и BbgegE все позволяют перемещать слово за словом:

  • w и e вперед, W и Eучитывать пробелы и пунктуацию

    " here the * marks the default location of the cursor
    " and each letter shows where you jump when you hit the key.
    
    Latin: Lorem ipsum dolor sit amet.
                       *   e   e    e
                       *   E   E     E
    *    w w     w     w     w   w   w
    *      W     W     W     W   W   W
    
  • b и ge идти назад, B и gE учитывать пробелы и пунктуацию

    Latin: Lorem ipsum dolor sit amet.
    b    b b     b     *
    B      B     B     *
         ge    ge    ge*
        ge
         gE    gE    gE*
    

fFtT используются для достижения определенного символа в текущей строке и ;, используются для повторения этого движения в том же направлении для ; ив обратном направлении для ,:

  • fm переходит в следующий m вперед, F идет назад

    Latin: Lorem ipsum dolor sit amet.
    *          fm    ;            ;
               ;     Fm          *
    
  • tm скачки ДО следующего m вперед, T назад

    Latin: Lorem ipsum dolor sit amet.
    *         tm    ;            ;
              ;     Tm           *
    

/? используются для перехода к первому вхождению паттерна изтекущая позиция курсора:

  • /pattern идет вперед

    Latin: Lorem ipsum dolor sit amet.
    *            /ips
    
  • ?pattern идет назад

    Latin: Lorem ipsum dolor sit amet.
    ?Lat             *
    

0$ используются для перехода к первому и последнему символу строки.

    (whitespace)Latin: Lorem ipsum dolor sit amet.(whitespace)
    0                  *                                     $

^g_ используются для перехода к первому и последнему печатному символу строки.

    (whitespace)Latin: Lorem ipsum dolor sit amet.(whitespace)
                ^      *                         g_

Одиночные и комбинированные ()[]{} используются для перемещения фразы по фразе или абзаца по абзацу или блока кода по блоку кода.

<C-b> и <C-f> используются дляпрокрутка экрана назад и вперед.

<C-u> и <C-d> используются для прокрутки на половину экрана назад и вперед.

H, M и L moveкурсор к верхней, средней и нижней части области просмотра соответственно.

zt, zz и zb перемещают линию под курсором к верхней, средней и нижней части области просмотра соответственно.

И т. Д.

:help motion.txt взорвут ваш разум.

22 голосов
/ 06 января 2012

Помимо команды движения vim, я нахожу плагин vim с именем EasyMotion , который очень удобен для навигации, если вы знакомы с vimperator или пентадактилем, EasyMotion просто вернет режим подсказок обратно в vim. здесь - это анимированная демонстрация, а здесь - видеоурок. Надеюсь, это полезно для вас.

18 голосов
/ 06 января 2012

В Vim существует множество способов передвижения, это одна из его сильных сторон. Я много использую { и } , которые перемещаются вверх и вниз к следующей пустой строке в этом направлении. % полезно для перемещения вперед и назад к соответствующей скобке (любого типа). W и B движутся вперед и назад на «слово».

Возможно, стоит ознакомиться с разделом Перемещение руководства Vim.

10 голосов
/ 06 января 2012

vim имеет поддержку мыши! попробуйте (в вашем .vimrc):

set mouse=a

sidenote : как пользователь экрана, я обнаружил, что мне также нужно

set ttymouse=xterm2

чтобы это работало.

8 голосов
/ 24 февраля 2014

лично я предпочитаю использовать:

"/<chars><enter>" to quickly move to somewhere   ( extremely fast! trust me! )
":<number>" to go to some line, 
"ctrl + f/b" to forward/back
"g;" to move to the last editing place.
"w/b" to move by word
"jklh" to move your cursor to the exact position
5 голосов
/ 16 июня 2013

Помимо {, }, (, ), <number>cb, <number>cB, <number>cW и %, я использую такие приемы навигации:

  • ciw, diw (ciW, diW).и т. д. для быстрого редактирования / удаления слова под курсором (включая непробельные символы)
  • ci(, ci" (ca(, ca") и т. д. для быстрого редактирования внутри скобок, кавычек(включая скобки, цитаты).То же самое относится к d.
  • Помечается прописными буквами, чтобы установить их глобально (между файлами) и постоянно (когда буфер закрыт).Например, mA создаст глобальную метку A, которая будет доступна с помощью команды 'A (или `A для соответствующего столбца).
  • gf для быстрого перехода к файлу под курсором
  • f, t (F, T), чтобы перейти к символу, перед символом вправо (влево) (используйте ; для повторения).Они особенно полезны для команд d и c (используйте . для повторения).
  • ^] для перехода к тегу и ^T для возврата назад.

И множество других способов перемещения:)

Проверьте это для получения дополнительной информации: http://www.thegeekstuff.com/2009/03/8-essential-vim-editor-navigation-fundamentals/

PS Для пользователей rails есть очень полезный плагин rails-vim, вы можетехочу проверить это тоже.

4 голосов
/ 06 января 2012

С опцией relativenumber (: относительный номер справки - включен в Vim 7.3 ) вы можете добраться до линии под глазами с помощью движения [count]k или [count]j, которое вы можете перемещатьв текущей строке с такими движениями, как ftweb, как объясняется @ romainl.

3 голосов
/ 06 января 2012

это является хорошим местом для изучения основных навигационных команд, часть силы / скорости vim происходит от комбинации движения с действием, т.е. cw -> change word, d10j -> удалить 10 строк вниз и т. д. Также это и это интересные чтения.

2 голосов
/ 06 января 2012

Вы можете :set nohlsearch, чтобы отключить подсветку символов поиска.

Я тоже много пользуюсь ctags.

0 голосов
/ 20 апреля 2018

Я написал плагин с супер быстрой навигацией, он называется бездвигательный:

https://github.com/anschnapp/move-less

Это позволяет вам удобно искать файл отверстия, прокручивая (h j k l -key). Вы не меняете положение курсора при прокрутке места отверстия (основываясь на уловке фолдинга). Если вы прервете свой поиск, вы только что начали.

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

https://github.com/easymotion/vim-easymotion

Если вы объедините оба, вы даже сможете воспользоваться историей прыжков, и вы можете прыгать между вашим исходным пунктом и пунктом назначения просто через <c-o> и <c-i>.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...