Есть ли какая-то схема за многими командами VIM? - PullRequest
6 голосов
/ 12 января 2010

Мне нужно добавить личность VIM в IDE. Я никогда не использовал VIM для более чем основных правок, и теперь я поражен сложностью структуры команд.

Существует ли какая-либо общая структура для комбинации подсчета ходов и команд вставки / удаления? Я просто не вижу дрова для деревьев.

Ответы [ 4 ]

17 голосов
/ 12 января 2010

Ну, очевидно, что за h , j , k , l есть образец положения пальца.

То, что ^ идет в начало строки, а $ идет в конец, основано на обычном синтаксисе регулярных выражений.

Ctrl-F и Ctrl-B страница вперед и назад, и это довольно интуитивно понятно.

i вставляет (до) и a добавляет (после курсора).Аналогично,
I вставляется в начало строки, а A добавляется в самом конце.

> и <</kbd> отступ и отступ соответственно.Это также интуитивно понятно.

Но в целом многие другие команды находятся на тех клавишах, которые были оставлены - трудно найти интуитивно понятное отображение между буквами алфавита и командами редактора.

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

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

  • , перемещать курсор с помощью клавиш со стрелками (вам не нужно использовать h , j , k , l );
  • вставка с i , удаление с Del (вам не нужно использовать x );
  • удалить строку с d d
  • выйти из вводарежим с Esc
  • выйти из vi с помощью : x (выход) или q! (выйти и выбросить мои изменения!)

Поскольку я намного умнее, я знаю и использую следующие дополнительные команды:

  • переходите в начало файла с помощью g g , нижняя часть с G .
    Я могу перейти к указанному номеру строки с (номер строки) G .
  • copyстроку с y (yank), вставьте ее с помощью p
  • измените слово с помощью c w ,остаток строки с C
  • удалить слово с помощью d w , остальная часть строки с D
  • Я иногда использую . повторить последнюю команду или u (отменить), если я напутал.

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

10 голосов
/ 12 января 2010

Это хорошая статья для объяснения философии VIM.

2 голосов
/ 12 января 2010

Я думаю, что характеристикой, которая лучше определяет VIM по сравнению с другими редакторами, является широкий спектр команд перемещения. Первое, чему нужно научиться в полной мере использовать VIM, - это как можно меньше нажимать клавиши со стрелками и думать о тексте в терминах «блоков», таких как «предложение», «тег», «слово», «группа скобок».

Скажем, у вас есть function foo($bar, $fooz), вы можете изменить параметры, просто поместив курсор в любое место внутри скобок и нажав ci) (мнемоника: изменить внутреннюю скобку). Тот же шаблон применяется к другим командам: yank (y), delete (d) и т. Д.

Я знаю, что это не объясняет всю "философию VIM", но сочетание команд обычного режима с огромным количеством модификаторов движения - это то, что действительно заставило меня увидеть свет.

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

Есть много хороших и интересных уроков. Одним из примеров является

http://blog.interlinked.org/tutorials/vim_tutorial.html

Но широкая структура, которую даст вам большинство из них,

  1. Существует два основных режима редактирования - командный режим и режим вставки. Вы можете перейти из режима вставки в командный режим с помощью клавиши.
  2. Вы можете выполнять команды в командном режиме, набрав одну клавишу или последовательность клавиш.
  3. Команды могут помочь вам достичь самых разных целей удаление строк - дд дергание (копирование строк) - гг вставка строк ниже текущей строки - p вставка строк над текущей строкой - P (и т. д.)

    Большинство команд в командном режиме можно предварительно фиксировать с помощью «счетчика», чтобы указать, сколько раз команда должна быть выполнена. Например, 3dd удалит три строки.

    Один набор команд в командном режиме позволяет перейти в режим вставки. Это объясняется ниже.

  4. Существуют различные способы входа в режим вставки из командного режима. Среди них выделяются (i-insert в курсоре, I-insert в начале строки, o-вставка строки ниже, O-вставка строки выше, a-append, A-добавление в конце строки.

Краткий справочник по

http://www.andy -roberts.net / разное / ВИМ / vim.pdf

Поможет вам понять актуальность «графа»

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