Vim / VI Руководство по выживанию - PullRequest
21 голосов
/ 16 сентября 2008

Какие основные команды vim? Что нужно знать новому пользователю, чтобы не попасть в неприятности? Одна команда на комментарий, пожалуйста.

Ответы [ 37 ]

1 голос
/ 16 сентября 2008

псевдоним vi nedit:)

весь юмор в сторону .. для vi КОГДА НЕ использовать nedit ..

  • i (переключиться в режим вставки)
  • a (добавить = перейти к концу строки и переключиться в режим вставки)
  • esc (выход из режима вставки)
  • dd удалить строку
  • x удалить символ
  • :wq (сохранить и выйти)
  • / начать поиск
  • n найти Далее
  • ? поиск в обратном направлении ..
  • yy (yank) скопировать строку в буфер
  • pp (вставить) вставить сюда
  • r (заменить символ)
  • <N> <command> это аккуратная, но усугубляющая функция, которая позволяет вам вводить цифры, а затем команду, чтобы
  • 5dd удалит 5 строк

но в этот момент вы могли бы также - man vi и освежить память

Хотя есть еще много, я перешел с Vi на nedit несколько лет назад, что, как мне кажется, имеет больше функций, которые я могу использовать на регулярной основе более легко. Редактирование с вкладками, добавочная панель поиска, выбор столбцов, копирование и вставка. сортировка выбранных строк, поиск и уничтожение в выделении, целых документах или всех открытых документах. отрывные выпадающие меню .. и он поддерживает подсветку синтаксиса для всех языков, которые я использую .. (с файлами шаблонов, которые я использовал в течение многих лет. Многие из VIM теперь эквивалентны, но в нем должна быть функция, которой не обладает Nedit, и простой способ перенести файлы шаблонов, прежде чем я снова переключусь.

0 голосов
/ 18 января 2011

Иногда полезно переформатировать буфер (то есть перебазировать, выровнять фигурные скобки и т. Д.). Я недавно научился экономить время на это:

gg=G

Например ... получилось бы следующее:

if ( !flag )
{
  // Do something special
  }
else
   {
 // Do another special thing
}

в следующее:

if ( !flag ) 
{
    // Do something special 
}
else
{
    // Do another special thing
}

Или, если у вас есть XML-файл, который вы хотите переопределить, потому что формат не совсем корректен, вы можете запустить приведенную выше команду и включить что-то вроде следующего:

<root>
<addressBook>
    <contact first="Frank" last="Tank"/>
        <contact first="Foo" last="Man"/>
    </addressBook>
</root>

в нечто более понятное человеку, например:

<root>
    <addressBook>
        <contact first="Frank" last="Tank"/>
        <contact first="Foo" last="Man"/>
    </addressBook>
</root>
0 голосов
/ 18 января 2011

Я сделал свои первые шаги, используя Учебное пособие , и использовал справочную таблицу в течение нескольких недель. И, конечно же, в vim / gvim / Macvim есть vimtutor.

0 голосов
/ 08 мая 2009

Никто не упомянул обильные ctags? Google и установите его; намного лучше, чем стандартные ctags, которые вы, вероятно, имеете. Чтобы использовать его, перейдите в корневой каталог вашего проекта и наберите

:! ctags -R.

Создает базу данных всего в вашем проекте ... java, c ++, python, ruby, javascript, что угодно, в файле с именем tags.

: помочь ctags для множества команд, слишком много, чтобы их можно было суммировать, для использования сгенерированных тегов. Поместите курсор на имя функции, введите CMD], чтобы открыть файл, который ее определяет. Еще много таких команд. Вскоре становится второй натурой ... почти так же хорошо, как IDE (и VIM никогда не подводит вас так, как это часто делает затмение.

0 голосов
/ 07 мая 2009

Мои любимые:

%  find matching bracket/brace 
* and #  next/previous match
gg top of page
G end of the page
<Ctrl-v> Change to visual mode and select column
<Ctrl-a> increase current number by 1
<Ctrl-x> decrease current number by 1
Running macros
0 голосов
/ 16 сентября 2008

Одна из моих любимых команд - это% G, которая ведет непосредственно к концу файла. Особенно полезно в лог-файлах.

0 голосов
/ 23 октября 2012

:g/<pattern>/t$

скопирует <pattern> в конец файла. Полезно, когда вы хотите извлечь строки, но не хотите делать это одну за другой.

0 голосов
/ 16 сентября 2008

i - режим вставки (выход для выхода) dd - удалить строку shift-y - строка "Yank" (копия) p - 'Вставить' (вставить) строку (и) shift-v - Визуальный режим, используемый для выделения текста (попытка «смахнуть» этот текст и «положить» его куда-то. ctrl-w n - создать новое окно (вы можете открыть файл или запустить новый файл здесь) ctrl-w v - разделить существующее окно по вертикали ctrl-n (в режиме вставки) - автозаполнение (если поддерживается) :! запустить команду оболочки, обычно со стандартным в качестве файла или выделения (shift-V)

Полезные плагины для просмотра: * Buffer Explorer - используйте \ be для просмотра файлов в буфере (и выберите для повторного открытия)

0 голосов
/ 16 сентября 2008

Еще одна полезная команда для поиска чего-либо: / например / Mon будет искать (и в случае выделения vim) любые вхождения Mon в вашем файле.

0 голосов
/ 16 сентября 2008

NB vi не vim! VIM быстро превращается в Emacs нового века. nvi, вероятно, самая близкая вещь к оригинальному vi. Вот хороший совет: «xp» поменяет два символа (попробуйте).

...