Перемещение (эффективно) вертикально в Vim

Когда я хочу достигнуть к определенной части слова в Vim (горизонтально), я просто нажимаю w, b, f или t (что-то). Существует ли хороший способ сделать это вертикально? Например, я хочу добраться до определенного слова или буквы строки, которая является ниже, или выше строки я в настоящее время нахожусь в.

PS: Без использования: (номер строки)

27
задан 06.04.2010, 16:37

8 ответов

H, M и L переместит Ваш курсор в вершину, середина и нижняя часть экрана, соответственно. Впоследствии, можно совершить нападки zz для центрирования экрана на строке курсор идет.

29
ответ дан 07.12.2019, 09:26
  • можно использовать/стрелка вниз для перемещения одной строки
  • можно ввести число и затем использовать/стрелка вниз для перемещения/вниз что много строк
  • маленький g переходы к первой строке документа
  • капитал G переходы к последней строке документа
  • и т.д.

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

Ссылка на одну шпаргалку: Шпаргалка

Также:

  • / + строка + (Enter) поиски следующего возникновения строки от курсора передают в конец документа
  • ? - делает то же, но от курсора назад к началу документа
11
ответ дан 07.12.2019, 09:26
  • {} получит Вас к началу / конец следующего абзаца
  • () то же для предложений
  • ^ $ первый, последний знак строки

Справочник / шпаргалка здесь

9
ответ дан 07.12.2019, 09:26

Я перехожу вокруг путем поиска уникальных строк, где я хочу пойти. В Vim можно сделать это с:

/search-string

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

Я также прокручиваю Ctrl-F использования и Ctrl-B для пролистывания кода быстро. Но я чаще всего использую поисковый прием. Иногда можно заблудиться при прохождении через результатов поиска с n и N. Хорошая команда для ориентации себя является Ctrl-G, который распечатывает что-то вроде этого у основания экрана Vim:

строка "script.pl" 219 из 328 - 66% - седло 19-23

6
ответ дан 07.12.2019, 09:26

попытка:: он motion.txt и: он up-down-motions

Это имеет целый список возможных движений вниз

4
ответ дан 07.12.2019, 09:26

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

3
ответ дан 07.12.2019, 09:26

как ранее упомянуто H, M, L (как в высоком, среднем, низко) нижний регистр h j k l является типичными консольными игровыми командами для левого, вниз, права и работы то же в vi (j, k работа в Gmail при включении ключевых команд),

2
ответ дан 07.12.2019, 09:26

<Ctrl>+D - вниз

<Ctrl>+U -

1
ответ дан 07.12.2019, 09:26

В дополнение к обычным вертикальным движениям, я использую модифицированную версию https://stackoverflow.com/questions/4946421/vim-moving-with-hjkl-in-long-lines-screen-lines. Обычно я двигаюсь с помощью клавиш со стрелками, а не hjkl (долгое время пользователь других редакторов до того, как я нашел Vim, слишком привыкший к стрелкам/Home/end/PgUp/PgDn для переключения, даже после 5+ лет эксклюзивного использования Vim).

function! ScreenMovement(movement)
   if &wrap
      return "g" . a:movement
   else
      return a:movement
   endif
endfunction
map <expr> <C-Down> ScreenMovement("j")
map <expr> <C-Up> ScreenMovement("k")
map <expr> <C-Home> ScreenMovement("0")
map <expr> <C-End> ScreenMovement("$")

Удерживая Ctrl, я могу визуально перейти к началу/завершению или вверх/вниз по строкам отображения. Для меня это более эффективно, чем альтернативы, по крайней мере.

Чуть не забыл: мне нужно было изменить .Xdefaults, чтобы он работал именно в urxvt, но это, наверное, нестандартная проблема (с ответами в Google).

*.
1
ответ дан 07.12.2019, 09:26

Теги

Похожие вопросы