Редактор Vi: почему программисты думают, что этот старый редактор все еще потрясающий

Раскрытие информации: Ваша поддержка помогает поддерживать работу сайта! Мы зарабатываем реферальную плату за некоторые услуги, которые мы рекомендуем на этой странице.


Vi – это текстовый редактор, изначально созданный для операционной системы Unix. Вместо меню vi использует комбинации нажатий клавиш для выполнения команд. Таким образом, нет необходимости использовать мышь или сенсорную панель – все делается исключительно с помощью клавиатуры..

Изучите редактор Vi

Краткая история

Vi ведет свое происхождение от самого раннего редактора командной строки, используемого в системах Unix, называемого ed. Эд работал очень хорошо с телетайпами, но не подходил для отображения терминалов. Многие люди считали Эда недружелюбным и взяли на себя задачу создать лучшую версию. Среди них Джордж Кулурис, в то время преподаватель колледжа королевы Марии, который создал em, редактор, предназначенный для дисплейных терминалов..

В 1976 году он посетил Калифорнийский университет в Беркли и показал их различным людям. Реакции были смешанными, но пара студентов, Билл Джой и Чак Хейли, были впечатлены ими и использовали их в качестве основы для своего собственного редактора под названием en, который затем был расширен для создания версии ex 0.1. После того, как Хейли покинул Беркли, Джой перепроектировал редактор в 1977 году, когда он добавил полноэкранный визуальный режим для ex, позволяя просматривать текст на полном экране, а не только по одной строке за раз..

Ex 1.1 был официально включен в первый выпуск BSD Unix в 1978 году и стал известен как vi после выпуска ex 2.0 в рамках второго дистрибутива программного обеспечения Berkeley в 1979 году, когда редактор был установлен под именем «vi», потому что он автоматически пользователи прямо в визуальном режиме бывшего.

клоны

Учитывая тот факт, что исходный код оригинального vi не был свободно доступен до 2002 года, было создано много клонов редактора vi. Они имели схожий внешний вид и функциональность, но были написаны полностью с нуля. Это позволило добавить больше функций и перенести редактор в другие операционные системы..

Список клонов vi включает в себя Кельвина, Элвиса, Элвина, Лемми, Нви, Стиви, Вайла, Вайпера, BusyBox и xvi. Однако наиболее популярным клоном является Vim, улучшенная версия редактора vi, распространяемая в большинстве систем UNIX..

напор

Vim расшифровывается как Vi IMproved и включает в себя даже больше функций, чем vi, что делает его любимым среди многих программистов. Эти функции включают (синтаксис) подсветку синтаксиса, поддержку мыши, графические версии, визуальный режим, новые команды редактирования и расширения для ex-команд. Он входит почти в каждый дистрибутив Linux и поставляется с каждой копией Apple MacOS.

Из-за того, что некоторые функции vi отсутствуют в Vim, он имеет режим совместимости с vi, что позволяет ему более строго соответствовать vi. Эта функция может управляться параметром: set совместимый.

Vim может быть настроен разными способами, включая его пользовательский интерфейс и основные функции. Вы можете определять персонализированные макросы для автоматизации последовательности нажатий клавиш, устанавливать внутренние пользовательские функции и использовать многочисленные плагины, которые добавляют новые функции в Vim. Плагины написаны на внутреннем языке сценариев Vim, который называется vimscript. Он также поддерживает сценарии с использованием Lua, Perl, Python, Ruby, Tcl и Racket..

Основы Vi

В этом разделе вы ознакомитесь со всеми основами vi, чтобы вы могли сразу начать продуктивное редактирование документов. Но помните: нужно знать намного больше, и все, что вы узнаете, сделает вас более продуктивным.

Что делает Vi?

С помощью vi вы можете редактировать текстовые файлы, используя только клавиатуру. Это включает в себя XML, TeX, HTML и языки программирования, но не двоичные файлы, такие как Word или OpenDocument. Чтобы редактировать файл, введите командную строку:

vi имя файла

Когда vi запускается, он захватывает окно терминала. Если файл уже существует, его начало заполнит экран. Имя файла появится в последней строке. Если он еще не существует, экран заполнится пустыми строками, за исключением тильды на левом поле. В нижней строке будет отображаться «[Новый файл]» после имени.

Изначально вы находитесь в командном режиме. Это один из трех основных режимов vi. В командном режиме любое нажатие клавиши является командой. Вы можете начать, нажав «я». Теперь вы находитесь в режиме вставки, как вам напоминает слово «- INSERT -» в нижней части окна. Все, что вы напечатаете, будет вставлено как текст. Чтобы вернуться из режима вставки в командный режим, нажмите клавишу.

Третий режим – режим последней строки. Вы попадаете в командный режим, набирая двоеточие (:). Пока вы находитесь в режиме последней строки, вы вводите командную строку в нижней части окна. Это выполняется только при нажатии. Чтобы сохранить то, что вы вставили, введите «: w» (двоеточие и строчные буквы w и). Это запишет файл. Если это новый файл, вам нужно будет указать имя файла. Это можно сделать, введя «: w filename», а затем. После этого вы вернетесь в командный режим..

Все нажатия клавиш в vi чувствительны к регистру! Если вы случайно оставите заглушку заблокированной, могут произойти странные вещи.

навигация

Эта статья описывает только некоторые основные команды vi. Для более подробной информации смотрите документацию vim.

Мелкомасштабное движение

Вы можете перемещать курсор с помощью клавиш со стрелками или с помощью «j» (вниз), «k» (вверх), «h» или (влево) и «l» или (вправо). Лучше всего избегать клавиш со стрелками по ряду причин. Самое главное, что вашим пальцам не нужно покидать исходное положение. Другое – то, что они не всегда доступны – если вы найдете старую версию или версию, в которой тип терминала установлен неправильно. Наконец, если вы используете функцию: map (см. Ниже), вам будет проще использовать команды letter.

Вы можете переместиться на одно слово с помощью «w» или вернуться на слово с помощью «b».

Крупномасштабное движение

Ввод «0» приведет вас к началу строки, а «$» – к концу. Аналогично, «: 0» приведет вас к началу файла, а «: $» приведет вас к его концу. Это часть общей системы, где «: num» приведет вас к номеру строки num. Таким образом, «: 101» приведет вас к строке номер 101. (Если в файле менее 101 строки, вы попадете в конец файла.)

Vi обычно позволяет вам делать важные вещи несколькими способами. Таким образом, вы можете перейти к определенной строке с помощью «Gnum», где num – номер строки. Это имеет преимущество в том, что требует на одного персонажа меньше. Но у него есть недостаток, заключающийся в несовместимости с «0» и «$», так что «0G» не приведет вас к началу файла, а «$ G» не приведет вас к концу.

Еще две важные навигационные команды: ctrl-b, чтобы вернуться на страницу, и ctrl-f, чтобы перейти на страницу..

Добавление и изменение текста

Вы уже видели команду «i» для вставки текста. Это поместит то, что вы печатаете, начиная с позиции курсора. Команда «a» вставит текст, начинающийся с символа после того, как вы находитесь. Таким образом, легко представить, что эти две команды: insert (i) и append (a). Если вы помните их, вы можете легко запомнить заглавные версии этих команд. Команда «A» вставляет текст в конце строки, а команда «I» вставляет текст в начале строки. Прописная команда «A» добавит то, что вы вводите в конце строки.

Ввод «о» откроет новую строку после строки курсора и позволит вам начать ввод в нее. Заглавная буква «О» будет делать то же самое перед курсором.

Удаление текста

Команды удаления очень универсальны. Ввод «dw» удалит слово, начиная с позиции курсора. Вы можете поставить перед ним число, чтобы удалить столько слов. Таким образом, «3dw» удалит три слова. Ввод «d $» или «D» удалит до конца строки. Команда «dd» удалит всю строку, а «10dd» удалит десять строк. Ввод «d» (буква d, а затем пробел) или «x» удалит один символ. Ввод «20x» удалит до 20 символов, но не будет проходить мимо текущей строки.

Изменение текста

Команда для изменения текста – «с». Она работает точно так же, как команда «d», за исключением того, что затем она переходит в режим вставки, где текст был удален. Таким образом, 3cw удалит три слова и заменит их тем, что вы введете, пока не нажмете .

Не паникуйте, если вы удалили не ту вещь. Команда «u» отменит последнее внесенное вами изменение. В большинстве реализаций вы можете ввести его несколько раз, чтобы отменить последние изменения. Если вы отменяете один раз слишком много, Ctrl-R вернет то, что вы только что отменили.

Одна из самых мощных вещей в vi – это «.» команда. Это повторяет ваше последнее изменение. Так что, если вы просто использовали «3cw» для изменения текста, введите «.» приведет к тому, что следующие три слова (где бы вы ни находились) к тому, на что вы изменили последние три слова. Или, если вы только что удалили десять строк, набрав «10dd», введите «.» удалит следующие десять строк. Это также очень полезно с командой «: map».

Вставка текста

Вы можете перемещать текст из одного места в другое, удаляя и вставляя. Команда для вставки – «p» для вставки после курсора или «P» для вставки перед ним. Если вы удалите одну или несколько полных строк текста, текст появится ниже (с «p») или выше (с «P») текущей строкой.

Янкинг Текст

Команда «y» для «yank» копирует, а не удаляет. Он помещает текст во временный буфер, который вы можете вставить в другое место, один или несколько раз. Параметры аналогичны параметрам для удаления, за исключением того, что «yy» используется для восстановления всей строки. (Это соответствует «dd» для удаления всей строки.)

Быть осторожен. Каждый раз, когда вы дергаете или удаляете, текст попадает в безымянный буфер, который похож на буфер обмена в других приложениях. Он заменяет предыдущий безымянный буфер. Если вы хотите сохранить текст немного дольше, вы можете использовать один из 26 именованных буферов. Вы указываете его, поставив перед буквой символ двойной кавычки. Чтобы вставить четыре строки в буфер с именем «c», введите «4» cyy ’(для ясности в кавычках). Чтобы вставить его, вы должны использовать тот же символ двойной кавычки и букву буфера перед командой вставки. Поэтому, если вы хотите вставить четыре строки, которые мы только что скопировали, в буфер «c», в строку ниже текущей, вы должны использовать команду «cp».

Поиск

Для поиска текста введите «/», затем строку поиска и. Он найдет следующее совпадение после курсора, при необходимости оборачиваясь на вершину. Для поиска в обратном направлении введите «?» вместо “/.”

случай

Поиск по умолчанию чувствителен к регистру. Чтобы выполнить поиск без учета регистра, начните строку поиска с «c». Так что если вы используете «/ cthis», а затем vi найдет «this» независимо от его заглавных букв. Вы также можете изменить значение по умолчанию, введя «: set ignorecase», а затем. Вы также можете ввести «: установить IC.» Чтобы вернуться к поиску с учетом регистра, вы должны ввести «: set noignorecase» или «: set noic».

Вы можете повторить последний поиск с помощью команды «n». Если вы хотите искать в обратном направлении, используйте команду «N».

Регулярные выражения

Строка поиска на самом деле является регулярным выражением. Это позволяет вам искать шаблоны, но некоторые символы не работают как буквальные совпадения. В качестве простого примера, поиск «w..d» найдет «wood», «wind» или «w00d». Это потому что “.” в поиске соответствует любой символ. Если вы хотите найти «.» Вы вводите обратную косую черту перед ним. Таким образом, вы должны ввести «/.» команда.

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

Работа с файлами

Как уже упоминалось, «: w» сохранит файл. Если вы хотите сохранить его в другом файле, введите «: w newfilename». Когда вы все сделали с помощью vi, вы можете набрать «: wq» для сохранения и выхода. Не забывайте, что команда последней строки, начинающаяся с двоеточия, требует, чтобы вы завершили ее. В результате многие энтузиасты vi используют команду «ZZ», которая делает то же самое.

Новый файл

Чтобы переключиться на другой файл, введите «: e newfilename«. Если вы не сохранили предыдущий файл, vi предупредит вас. Если вы действительно хотите отменить изменения, используйте «e! newfilename «. Вы можете использовать «: e!» без имени файла, если вы запутались и хотите вернуться к последней сохраненной версии текущего файла.

Вы можете переключаться между текущим файлом и последним отредактированным файлом, используя команду «: e #». При этом вы можете переключаться между двумя файлами, что аналогично редактированию двух файлов одновременно, что мы обсудим ниже..

Несколько файлов

Вы можете редактировать несколько файлов одновременно и переключаться между ними. В терминологии vi вы переключаетесь между их буферами редактирования. Чтобы отредактировать несколько файлов за один сеанс, запустите vi с помощью командной строки, например:

vi файл1 файл2 файл3

Первый файл, который вы перечислите, появится на экране. Чтобы просмотреть их, вы можете использовать «: bn» (следующий буфер) или «: bp» (предыдущий буфер). Вы можете использовать именованные буферы для копирования текста из одного файла в другой. (Редактирование буферов и вставка буферов – две разные вещи. Это немного сбивает с толку.)

Команды оболочки от Vi

Вы можете запускать команды оболочки, не выходя из vi. Для этого введите «:!» (двоеточие и восклицательный знак), а затем команда. Вы увидите вывод команды, а затем вам нужно нажать, чтобы вернуться в командный режим. Вы даже можете набрать «:! Sh», чтобы запустить оболочку из vi, выполнить несколько команд и затем вернуться обратно к vi. Это удобно, если вы редактируете некоторый код и хотите проверить свои изменения.

Вы можете запустить команду оболочки и вставить ее вывод в текущий файл, набрав «: r! Command«.

Раскладка клавиатуры

Одна из самых сильных сторон vi – его способность отображать команды на клавиши. Это делается следующим образом:

: отображение ключевых команд

Ключ представляет собой один символ. Это может быть любой символ, но лучше не использовать клавишу, которая уже является командой типа «c» или «a». Команды могут быть довольно сложными. Они могут, например, включать клавишу ввода с «» и клавишу выхода с «.» Поэтому, если у вас повторяющаяся задача, вы можете легко сопоставить ее с одним ключом. Например, следующая команда приведет к тому, что клавиша «q» перейдет ко второму слову в следующей строке, заменив ее на «Справка!» и вернитесь к первому символу оригинальной строки:

: map q j0wcwHelp! k

Команда map является самой мощной в сочетании с регулярными выражениями и командой repeat («.»). Всякий раз, когда вы обнаруживаете, что делаете что-то скучное, находясь в vi, посмотрите, сможете ли вы создать отображение, способное это сделать. В большинстве случаев вы можете.

Ресурсы

Это был очень быстрый обзор того, что возможно в vi. Снова, проверьте документацию для полной информации. Вы можете добавить в закладки шпаргалку, такую ​​как vimsheet.com или шпаргалку Vim для программистов. Вот еще несколько ресурсов:

Интернет-ресурсы

Следующие ресурсы состоят из различных статей, учебных пособий и даже шпаргалок..

  • The Traditional Vi: официальная домашняя страница редактора vi со ссылками на скачивание.
  • Vi FAQ: отличное место для начала, так как оно отвечает на некоторые наиболее часто задаваемые вопросы о vi и о том, почему его стоит изучить.
  • Введение в редактирование отображения с помощью Vi: учебное пособие по vi, предназначенное для более продвинутых пользователей, охватывающее его возможности и способы его использования..
  • Страница руководства Vi: содержит описание доступных команд.
  • Unix – Руководство по редактору Vi: очень краткое и конкретное руководство по vi, предназначенное для начинающих.
  • Как использовать Vi: еще одно учебное пособие, предназначенное для начинающих, чтобы послужить «мягким введением» в редакторе, но его также можно использовать в качестве справочного материала для промежуточных пользователей..
  • Vi Cheat Sheet: удобный шпаргалка основных команд vi.
  • Vim: официальная домашняя страница Vim.
  • Интерактивное учебное пособие по Vim: как следует из названия, это учебное пособие является интерактивным – имитируя командную строку и клавиатуру прямо в браузере, чтобы вы могли протестировать его и изучить Vim, не опасаясь сломать компьютер.
  • Графическая шпаргалка и учебное пособие Vi-Vim: графическая шпаргалка, показывающая основные команды на клавиатуре GIF с сопровождающим учебным пособием.
  • Vim Awesome: довольно большая коллекция плагинов для Vim.
  • Чрезвычайно быстрое и простое введение в текстовый редактор Vi: это руководство Норма Мэтлоффа предоставляет «5-минутное введение» в vi. Это, вероятно, слишком кратко для истинных новичков, но это отличный документ, если вам просто нужно быстрое напоминание.
  • Текстовый редактор Vi: этот учебник Райана представляет собой базовое введение, которое поможет вам узнать ничего не зная.
  • Изучайте Vim постепенно: этот учебник начинается с самого начала, но быстро разбирается во многих продвинутых предметах.
  • Отображение ключей в Vim: это подробное руководство по отображению с использованием vim. Если вы хотите стать опытным пользователем vi, вы должны проверить это.

Видео уроки

Несколько видеоуроков доступны, если вы предпочитаете учиться по ходу дела.

  • Редактор Vi / Vim: вводное руководство по использованию редактора vi / vim, в том числе как открыть файл, вставить текст, записать текст в файл и выйти из vi.
  • Учитесь любить Vim: само по себе это не учебник, но он подчеркивает, почему вы должны использовать Vim.
  • Изучение Vim за неделю: выступление Майка Коутермаша, основанное на его посте в блоге Learning Vim за неделю. Предназначен для начинающих, он охватывает начало работы с Vim.

книги

Учитывая популярность как vi, так и Vim, следующие книги охватывают редакторов очень глубоко.

  • Изучение редакторов Vi и Vim (2008 г.) Роббинсом, Ханной и Лэмбом: охватывает основы редактирования и продвинутые инструменты для редакторов и программистов, такие как многооконное редактирование, как писать интерактивные макросы и сценарии для расширения редактора, так и Больше.
  • Mastering Vim (2014) от Damien Conway: лучше всего подходит для промежуточных пользователей, включает в себя более продвинутые функции Vim, параметры конфигурации и несколько плагинов, которые улучшают качество редактирования.
  • Как использовать текстовый редактор UNIX-LINUX Vi: советы, хитрости и приемы (и уроки тоже!) (2006) Ларри Смита: это краткое и простое введение в редактор. Если вы хотите начать работать в выходные, это книга для использования.
  • Практический Vim: Редактируйте текст со скоростью мысли (2015) от Drew Neil: если вы уже знакомы с редактором vi и хотите стать опытным пользователем, это книга для использования. Он состоит из 126 советов, которые покажут вам, почему некоторые люди теряются без.
  • Vi и Vim Editors Pocket Reference (2011) от Arnold Robbins: охватывает наиболее ценные команды для vi, Vim и основных клонов vi.

Чтобы стать экспертом по vi, требуется время, но как только вы попадете туда, вы удивитесь, почему вы когда-либо беспокоились с помощью мыши.

Вывод

Среди серьезных разработчиков (по крайней мере, в мире Unix) на самом деле стоит упомянуть только два редактора: Emacs и vi. У них обоих есть свои преимущества и недостатки. И разные люди имеют твердое мнение о том, какой редактор вы должны использовать.

Ричард Столлман – основатель проекта GNU и движения за свободное программное обеспечение. В дополнение к написанию исходного компилятора GNU (GCC) он написал GNU Emacs. Здесь он немного развлекается за счет ви:

Emacs позволяет вам делать гораздо больше, особенно если вы пишете на Лиспе. Но vi очень легкий и для тех, кто хорошо это знает, очень мощный и быстрый.

Вышеуказанные ресурсы помогут вам быстро стать мастером vi и значительно повысить производительность.

Дальнейшее чтение и ресурсы

У нас есть больше руководств, учебных пособий и инфографики, связанных с кодированием и разработкой:

  • Mantis Hosting: узнайте, какие веб-хостинговые компании предлагают выгодные предложения, включающие эту популярную программу отслеживания ошибок, важный инструмент для серьезных программистов.
  • Учебник по Ubuntu: узнайте все об одном из самых популярных дистрибутивов Linux. Это отличная система для разработки – и она поставляется с vim!
  • Объектно-ориентированное программирование: узнайте о концепциях объектно-ориентированных языков и специфике широкого спектра объектно-ориентированных языков программирования. Некоторые могут вас удивить. Объектно-ориентированный Фортран?!

Выживет ли Интернет на краю света??

Задумывались ли вы, что крупная катастрофа будет делать с Интернетом? Проверьте нашу инфографику, Выживет ли Интернет конец света? Возможно, мы все можем быть уничтожены, но интернет будет жить.

Будет ли Интернет пережить конец света?
Выживет ли Интернет на краю света??

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map