Библиотека сайта rus-linux.net
Назад | Просто о Vim | Вперед |
Vim : Первые шаги |
Запуск Vim
Первый делом, конечно, нужно узнать, как запустить Vim.
Графическая версия
Windows: Нажмите Start → Programs → Vim 7 → gVim.
Mac OS X: Нажмите Finder → Applications → MacVim.
Linux/BSD: Нажмите Applications → Accessories → GVim Text Editor, или нажмите Alt+F2, наберите gvim и нажмите клавишу enter.
Терминальная версия
Windows: Нажмите Start → Run, наберите vim и нажмите клавишу enter.
Mac OS X: Нажмите Finder → Applications → Utilities → Terminal, наберите vim и нажмите клавишу enter.
Linux/BSD: Нажмите Applications → Accessories → Terminal, или нажмите Alt+F2, наберите konsole/gnome-terminal и нажмите клавишу enter. Затем, наберите vim и нажмите клавишу enter.
Отныне, когда мы говорим «открытыть Vim», воспользуйтесь одним из методов, упомянутых выше.
Примечание: Когда вы запустите Vim, вы увидите, что вы не можете сразу начать печатать текст. Не паникуйте, все будет объяснено через некоторое время.
Графическая или терминальная?
Графическая версия Vim имеет меню в верхней части приложения, а также различные опции, доступные с помощью мыши, но учтите, что это совершенно необязательно. Вы можете получить доступ ко всем функциям Vim только с помощью клавиатуры.
Почему это важно? Потому что работа человека будет намного эффективна, если использовать только клавиатуру, чем при использовании мыши, в этом случае человек гораздо быстрее набирает текст и делает меньше ошибок.
Это происходит потому, что нет лишних движений руки, необходимых для переключения между клавиатурой и мышью, и нет переключения контекста в сознании человека при переносе руки между клавиатурой и мышью. Нужно взять за привычку использовать клавиатуру как можно больше, Вы экономите ценное движения руки.
Конечно, это субъективно. Некоторые люди предпочитают мышь, а некоторые предпочитают клавиатуру. Я рекомендую вам использовать клавиатуру как можно больше, чтобы узнать реальную мощь Vim.
Введение в режимы
Представьте себе, что в субботу вечером вы устали от телепрограмм. Вы хотите посмотреть старый любимый фильм. Вы переключаете телевизор в режим видео так, чтобы он показывал то, что отображает DVD-плеер, вместо кабельных каналов. Обратите внимание, что телевидение по-прежнему транслирует видео, но вы переключаете контекст на просмотр DVD или на транслируемые телепередачи.
Аналогично, Vim имеет режимы. Например, Vim имеет режим для ввода текста, режим выполнения команд и т.д. Все они связаны основной целью редактирования текста, но вы переключаете контекст в зависимости от того, нужно просто набрать текст, или вы хотите выполнить некоторые команды над текстом.
Разве это не просто?
Традиционно концепция режимов является наиболее часто приводимой причиной начинающих о том, почему они считают Vim "запутанным". Я сравниваю его с ездой на велосипеде — стоит вам проехаться несколько раз и, как только у вас начнет получаться, вы будете удивляться, какая суета была раньше.
Так почему же в Vim есть режимы? Чтобы сделать все как можно проще, даже если их использование может на первый взгляд показаться «странным».
Что я подразумеваю под этим? Давайте возьмем пример: одна из ключевых целей в Vim - делать все с клавиатуры, чтобы не нужно было использовать мышь (вы можете использовать мышь, если вы хотите, но это строго по желанию). В таком случае, как бы вы различали текст, который вы хотите написать, и команды, которые вы хотите запустить?
Решение, предлагаемое в Vim, состоит в том, чтобы иметь "нормальный" режим, где вы можете выполнять команды, и режим "вставки", в котором вы просто вводите текст. Вы можете постоянно переключаться между двумя режимами.
Например, нажав i вы переключаете Vim в режим вставки, а нажатием <Esc> вы переключаете Vim в нормальный режим.
Как это делают традиционные редакторы, как они отличают команды и ввод текста? С помощью графического меню и комбинаций клавиш. Проблема в том, что это решение не масштабируется.
Прежде всего, если у вас есть сотни команд, создание меню для каждой из этих команд будет безумным и запутанным. Во-вторых, настройка использования каждой из этих команд будет еще более трудным делом.
Давайте возьмем конкретный пример. Предположим, вы хотите заменить в документе все вхождения слова "from" на слово "to". В традиционном редакторе, вы можете открыть меню, Правка -> Заменить (или использовать сочетание клавиш, типа Ctrl-R), а затем ввести слово "from" и слово "to", а затем нажать на кнопку "Заменить". После проверки можно выбрать вариант "Заменить все". В Vim, вы просто выполните :%s/from/to/g в нормальном режиме. Команда :s является аналогом команды "заменить".
Посмотрите, не правда ли, просто?
Что делать, если вы теперь хотите запустить эту замену только в 10 первых строках текста и вы хотите иметь подтверждения да/нет для каждой замены? В традиционных текстовых редакторах, получить подтверждения да/нет легко, сняв флажок "Заменить все", но сначала, вы должны найти, что менять и затем с помощью мыши щелкнуть на опции (или использовать длинную последовательность клавиш клавиатуры). Но как вы укажете, что нужно заменить только в первых 10 строках? В Vim, вы можете просто запустить :0,10s/from/to/gc. Новая опция с ('c'onfirmation), которую мы используем означает, что мы хотим подтверждение для каждой замены.
Разделение режимов на ввод (вставка) и командный (нормальный) делает Vim легким для нас, и простым при переключении режимов.
Обратите внимание, что первые шаги в использовании Vim кажутся немного "странными", немного "чудными", но как только вы попробуете его в действии, поймете что это имеет смысл. Самое приятное то, что эти основные концепции помогут вам понять все, что вам нужно знать о том, как использовать Vim.
Теперь вы понимаете разницу между обычным режимом и режимом вставки. Работая в нормальном режиме вы можете использовать различные команды, и вы можете сразу начать использовать их. Сравните это с изучением новых команд в традиционных редакторах, где сперва нужно прочесть множество документации, много искать по меню методом проб и ошибок, или просто просить кого-то помочь.
Лично я считаю, что названия режимов непонятны для начинающих. Я предпочитаю называть режим вставки как режим "записи" и нормальный режим работы, как режим "перезаписи", но мы будем придерживаться стандартной терминологии Vim, чтобы избежать путаницы.
Примечание: Все команды в нормальном режиме должны заканчиваться клавишей enter, чтобы сказать Vim, что мы написали полную команду. Так что когда мы говорим «выполните команду :help vim-modes-intro», это означает, что вы должны ввести :help vim-modes-intro, а затем нажать клавишу enter для завершения команды.
Запись в файл
Давайте теперь посмотрим, как открыть, отредактировать и закрыть файл в Vim.
1. Откроем Vim.
2. Наберем :edit hello.txt и нажмем enter.
3. Нажмем i.
4. Введем текст Hello World.
5. Нажмем клавишу <Esc>.
6. Наберем :write и нажмем клавишу enter.
7. Закроем Vim, запустив :q.
Поздравляю! Вы создали свой первый файл :-).
Много пришлось сделать операций?
Да, на первый взгляд, это так. Это потому что в первый раз, потом мы привыкаем к открытию Vim, записи в файл и закрытию Vim. Вы должны понимать, что это будет лишь незначительная часть вашего времени по сравнению с фактическим временем, которое уходит на редактирование содержания документов.
Давайте посмотрим, что делают вышеперечисленные команды.
:edit hello.txt или просто :e hello.txt — открывает файл для редактирования. Если файл с указанным именем не существует, то Vim создаст его при сохранении файла.
Нажатие i - переключает Vim в режим вставки.
Набор текста Hello World — ввод нужного вам текста в файл.
Нажатие <Esc> - возвращает Vim в нормальный режим
:write или просто :w — говорит Vim, что нужно записать текст (который пока сохранен в памяти компьютера) в файл на жесткий диск. Это означает, что все, что мы написали, будет теперь храниться постоянно.
:quit или просто :q - закрыть файл в текущем окне. Если это было единственное открытое окно в Vim, это также приведет к закрытию Vim (Концепция окон будет обсуждаться в следующей главе).
Попробуйте повторить этот процесс несколько раз с разными именами файлов, другим текстом, и т.д., пока вы не привыкнете к базовым действиям в использовании Vim.
Обратите внимание, что когда вы находитесь в режиме вставки, Vim показывает - INSERT - в нижнем левом углу. При переключении в нормальный режим, он ничего не показывает. Это потому, что нормальный режим является режимом по умолчанию, в котором работает Vim.
Потратьте некоторое время, чтобы отдохнуть от полученной информации, это, пожалуй, самый тяжелый урок, который нужно узнать о Vim, остальное все просто:)
И не волнуйтесь, помощь не слишком далеко. На самом деле, просто запустите команду :help. Например, выполните :help :edit, и вы увидите открытую документацию. Идем дальше, пробуйте.
Итоги
Мы уже обсудили основные понятия и использование Vim. См. :help notation и еще :help keycode.
Убедитесь, что вы досконально поняли эту концепцию. Как только вы начнете "думать в Vim", остальные функции Vim будут очень простыми.
Предыдущий раздел: | Следующий раздел: | |
Установка | Оглавление | Режимы |