search

Wednesday, April 2, 2014

Как пользоваться vim (очень краткое руководство)

Наверняка многие слышали о редакторе vim. Говорят, что настоящие программисты пользуются именно им. Или Emacs. Не могу удержаться и не поменстить эту картинку:

Честно признаюсь: первый раз когда я запустил vim, я с него даже выйти не смог! :/

Vim(или vi) есть на практически каждом компьютере работающем под linux. Именно поэтому надо уметь выполнять хотя бы базовые действия с ним. В этом посте будет рассказано как открывать, редактировать и сохранять файлы.

Итак, приступим. К примеру у нас есть файл simpleblogger.py. Открыть его с vim проще простого. Запускаем из консоли:
vim simpleblogger.py


Как видно в комплекте сразу подсветка синтаксиса для Python. Главное особенность vim в том, что у него есть два режима: режим просмотра и режим редактирования. По умолчанию файл открывается в режиме просмотра. Ничего набрать в этом режиме не получится (только удалить). Чтобы перейти в режим редактирования, надо нажать кнопку "i". Выйти из него - Esc. Vim сообщает вам, что вы находитесь в режиме редактирования показывая слово INSERT в конце файла.

Файл просматривать надо в обычном режиме (не редактирования). Навигация с помощью стрелочек и Page Up, Page Down. На самом деле, в vim для навигации лучше использовать h, j, k, l. Но к ним еще надо привыкнуть... При просмотре логов (длинных логов) удобно перейти сразу в конец файла. Сделать это можно нажав Shift + G. Поиск по файлу осуществляется так: нажимаете "/", вводите искомые символы и нажимаете Enter. Vim подсветит все места где встречается искомый набор символов. К следующему месту можно перейти нажав "n".

Итак, предположим вы отредактировали файл. Его надо сохранить. Для этого нажимаем Esc (выход из режима редактирования), потом ":" (означает что мы собираемся ввести команду) и затем "!qw". ! знак означает, что вы вкурсе изменений, q - выйти, w - сохранить изменения. В итоге:
Esc : ! w q

Команды можно комбинировать. Например, Esc : ! q - выйти без сохранения изменений.

No comments:

Post a Comment