Простое руководство по текстовому редактору Vim.

Vim — это мощный текстовый редактор с широкими возможностями настройки, который существует с 1991 года. Он известен своим модальным интерфейсом редактирования, что означает, что он позволяет пользователям переключаться между различными режимами редактирования, навигации и выбора текста. Vim широко используется программистами и другими опытными пользователями, которым нужен быстрый и эффективный способ редактирования текстовых файлов и управления ими. Одним из основных преимуществ использования Vim является его скорость и эффективность. Как только вы изучите команды и освоите интерфейс, вы сможете выполнять сложные задачи редактирования всего несколькими нажатиями клавиш.

В этом посте мы рассмотрим наиболее распространенные команды, используемые в Vim. Я включил шпаргалку сразу после этого раздела, которую можно использовать для дальнейшего использования. Шпаргалка сопровождается подробным руководством по командам. Я бы порекомендовал сначала пройти подробный раздел учебника, а затем для будущего использования вы можете просто обратиться к таблице шпаргалок.

Давайте начнем!

(Все изображения, если не указано иное, принадлежат автору.)



Обзорная таблица важных команд Vim

В следующей таблице приведены некоторые из наиболее важных команд Vim, которые вам необходимо знать. Каждая команда более подробно описана в следующем разделе.

Команды Vim — подробное руководство с реализацией

В этом разделе мы подробно рассмотрим некоторые из наиболее распространенных команд Vim. Мы также применим каждую из команд к текстовым файлам, чтобы увидеть результаты. Мы будем использовать интерфейс командной строки (CLI) для запуска команд Vim (если вам нужно освежить знания в CLI, вы можете посетить это [руководство по CLI]()). Если вы готовы, откройте интерфейс командной строки и приступим!

1. «vim" — Создать файл

Сначала мы создадим файл с именем demo.txt, чтобы мы могли применять команды в этом текстовом файле следующим образом:

vim demo.txt

Эта команда создает текстовый файл с помощью Vim в CLI. Как только вы запустите эту команду, вы увидите пустую страницу в CLI, похожую на эту картинку:

Как видите, файл пустой и мы видим только имя файла в левом нижнем углу. Давайте посмотрим, как мы можем добавить текст в текстовый файл.

2. «i» — вставить

Команда i означает «вставить» и используется для входа в режим вставки в Vim. Когда вы находитесь в режиме вставки, вы можете вводить и редактировать текст так же, как и в любом другом текстовом редакторе. Чтобы использовать эту команду, просто нажмите i в обычном режиме.

Идите вперед и нажмите i, а затем введите следующее:

Topic: VIM Tutorial

Author: Farzad Nobar

If you find this helpful, follow me on Medium at: https://medium.com/@fmnobar

Убедитесь, что ничего больше не нажато. Ниже показано, как выглядит мой CLI на данный момент:

Мы видим текст на этой картинке, а также в самом низу мы видим, что мы находимся в режиме — INSERT — . Чтобы выйти из этого режима, просто нажмите клавишу выхода на клавиатуре (обязательно сделайте это, прежде чем переходить к следующему шагу).

Пока мы добавили этот текст в файл, но еще не сохранили изменения. Давайте посмотрим на это дальше.

3. «:w» — написать

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

Совет для профессионалов: обратите внимание, что команда «Запись» была введена после «:». В Vim входим в «командный» режим, добавляя команду :. Другими словами, сначала мы входим в командный режим, набрав :, а затем набираем w, что в целом становится командой «Запись». Мы всегда можем выйти из командного режима, нажав кнопку выхода. Мы будем больше использовать командный режим в следующих частях.

Теперь, когда мы сохранили наши изменения, мы можем выйти (то есть закрыть) файл на следующем шаге.

4. ':q" — Выйти

Команда :q означает «выход» и используется для выхода из Vim. Чтобы использовать эту команду, просто введите :q в обычном режиме (и нажмите клавишу возврата/ввода на клавиатуре). Если у вас есть несохраненные изменения в файле, Vim предложит вам сохранить их перед выходом.

5. «:wq» — написать выход

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

6. «h», «j», «k», «l», «w», «b» — навигация по текстовым файлам.

Эти команды используются для перемещения курсора в Vim. h перемещает курсор влево, j перемещает его вниз, k перемещает его вверх и l перемещает его вправо. w перемещает курсор в начало следующего слова, а b перемещает курсор в начало текущего слова. Эти команды используются в обычном режиме.

Чтобы попрактиковаться в этом, откройте созданный нами файл с помощью следующей команды:

vim demo.txt

Теперь, когда у вас есть файл, открытый в Vim, вы можете использовать клавиши навигации для перемещения — попробуйте!

Совет для профессионалов. Обратите внимание, что команды для открытия существующего файла и создания нового файла одинаковы. Если файл уже существует, Vim открывает существующий файл. Если файл не существует, Vim создаст новый файл.

7. «х» — Удалить

Команда x используется для удаления символа под курсором. Чтобы использовать эту команду, просто поместите курсор на символ, который хотите удалить, и нажмите «x» в обычном режиме.

Давайте используем это, чтобы удалить буквы «ic» из «Темы». Я вижу следующее:

Но что, если мы удалили их по ошибке? Давайте посмотрим, как мы можем отменить это действие на следующем шаге.

8. «у» — отменить

Команда u используется для отмены изменений в Vim. Чтобы использовать эту команду, просто нажмите u в обычном режиме.

Я дважды нажал u, и удаления были отменены следующим образом:

9. «Ctrl-r» — повторить

Команда Ctrl-r используется для повтора изменений в Vim. Чтобы использовать эту команду, просто нажмите Ctrl-r в обычном режиме.

Допустим, мы передумали (снова) и на самом деле собирались удалить эти две буквы. Я дважды нажимаю Ctrl-r и на скриншоте ниже мы видим, что буквы снова удаляются:

Хорошо. Оставим пока эти изменения. Теперь поговорим о поиске термина с помощью Vim.

10. «dd» — Удалить строку

Команда dd используется для удаления всей строки в Vim. Чтобы использовать эту команду, просто нажмите dd в обычной модели.

11. «/search_term» — поиск

Команда / используется для поиска термина в Vim. Чтобы использовать эту команду, введите /, затем термин, который вы хотите найти, и нажмите клавишу ввода. Vim подсветит следующее появление термина в файле.

Давайте попробуем. Я искал «средний», используя /medium, и ниже приведены результаты:

Как мы видим на картинке, курсор перескочил на начало слова «средний» в последней строке текста.

Теперь давайте продолжим и выделим результаты поиска, используя: :set hlsearch, и теперь искомый термин (т.е. «средний» в этом примере) выделен, как показано на рисунке ниже:

Мы можем отключить этот выделенный поиск, используя :set nohlsearch.

12. «:s/search_term/replace_term/g» — заменить

Команда :s/search_term/replace_term/g используется для замены всех вхождений термина в Vim. Чтобы использовать эту команду, введите :s/search_term/replace_term/g в обычном режиме и нажмите Enter. Vim заменит все вхождения поискового термина замещающим термином.

Я попробовал это, заменив «Tutorial» на «guideline» следующей командой: :s/Tutorial/Guideline/g
Ниже приведены результаты:

Далее давайте поговорим о том, как мы можем скопировать текст, а затем вставить его.

13. «yy» — янки

Команда yy используется для копирования строки текста в Vim. Чтобы использовать эту команду, просто поместите курсор на строку, которую хотите скопировать, и нажмите yy в обычном режиме.

14. «р» — вставить

Команда p используется для вставки скопированного или удаленного текста. Чтобы использовать эту команду, просто нажмите p в обычном режиме.

Давайте попробуем команды yank и paste. Нажмите yy в самом начале файла, а затем нажмите p и посмотрите, что произойдет. Обратите внимание, что ничего не происходит, когда вы нажимаете yy, но на самом деле это происходит в фоновом режиме. Как только вы нажмете p, вы увидите результаты. Я случайно нажал p дважды, и вот результаты:

15. ':set number" — показать номера строк

Команда :set number используется для отображения номеров строк в Vim. Чтобы использовать эту команду, введите :set number в обычном режиме.

Это говорит само за себя. Ниже показано, как выглядит мой интерфейс командной строки после ввода команды:

16. «:set nonumber» — скрыть номера строк

Команда :set nonumber используется для скрытия номеров строк в Vim. Чтобы использовать эту команду, введите :set nonumber в обычном режиме.

А ниже результаты скрытия номеров строк:

17. «:set paste» — Вставить без автоматического отступа

Команда :set paste используется для вставки текста без автоматического отступа. Чтобы использовать эту команду, введите :set paste в обычном режиме, затем вставьте текст и введите :set nopaste, чтобы выйти из режима вставки. Примером использования этой команды является вставка текстовых входных данных, чувствительных к отступам, таких как программные сценарии (подумайте о цикле for в Python или подобном).

18. «:set Spell» — проверка орфографии

Команда :set spell используется для включения проверки орфографии в Vim. Чтобы использовать эту команду, введите :set spell в обычном режиме. Vim выделит все слова с ошибками.

Давайте посмотрим, идентифицирует ли Vim что-нибудь в нашем файле:

Как и ожидалось, мое имя выделено и не распознается Vim как правильно написанное слово — я не буду принимать это на свой счет!

19. «:set nospell» — отключить проверку орфографии.

Команда :set nospell используется для отключения проверки орфографии в Vim. Чтобы использовать эту команду, введите :set nospell в обычном режиме.

20. «:w имя файла» — запись в файл

Команда :w filename используется для записи содержимого текущего файла в новый файл с указанным именем. Чтобы использовать эту команду, введите :w filename в обычном режиме.

Давайте попробуем этот. Сначала я продолжу и сохраню содержимое этого файла в новый файл с именем demo2.txt, используя следующую команду: :w demo2.txt. Затем я закрыл Vim (используя :q!), а затем просматривая файлы (используя команду ls в CLI), я вижу, что новый файл с именем demo2.txt теперь добавлен туда. Давайте откроем его с помощью Vim и посмотрим, как это выглядит:

21. «:к!» - Выйти без сохранения

Команда :q! используется для выхода из Vim без сохранения каких-либо изменений в файле. Чтобы использовать эту команду, введите :q! в обычном режиме. Если вы заметили в предыдущем примере, я вышел из Vim, используя :q!, поэтому мы ожидаем, что изменения не были сохранены. Давайте откроем demo.txt и проверим это. Ниже приведены результаты:

Как и ожидалось, изменения не были сохранены, и я получил исходный файл.

22. «:e имя файла» — открыть файл

Команда :e filename используется для открытия файла в Vim. Чтобы использовать эту команду, введите :e filename в обычном режиме.

Теперь, когда у нас открыт файл demo.txt, давайте откроем второй файл с именем demo2.txt с помощью этой команды, и ниже приведены результаты:

Как и ожидалось, второй файл был открыт.

23. «:set tabstop=4» — установить ширину вкладки

Команда :set tabstop=4 используется для установки ширины вкладок в Vim на 4 пробела. Чтобы использовать эту команду, введите :set tabstop=4 в обычном режиме.

Давайте попробуем этот. Сначала я установлю табуляцию на 4, войду в режим вставки, а затем добавлю табуляцию в начало второй строки в файле, и ниже приведены результаты:

Теперь давайте изменим размер табуляции на 8 и посмотрим, как он изменится:

Обратите внимание, что изменение было применено автоматически к существующей вкладке в файле, а размер вкладки был увеличен с 4 до 8, как показано на рисунке выше.

24. «:set expandtab» — ​​используйте пробелы вместо табуляции

Команда :set expandtab используется для замены табуляции пробелами в Vim. Чтобы использовать эту команду, введите :set expandtab в обычном режиме. Это говорит само за себя, поэтому давайте перейдем к следующей команде.

25. «:set синтаксис=python» — подсветка синтаксиса

Команда :set syntax=python используется для включения подсветки синтаксиса для кода Python в Vim. Чтобы использовать эту команду, введите :set syntax=python в обычном режиме.

У меня возник соблазн включить это, потому что это связано с тем, что я делаю, и я ежедневно использую Python. Чтобы проверить это, давайте выполним следующие шаги:
1. Откройте новый файл Python с помощью Vim: vim demo.py
2. Вставьте следующую команду (выбранную из моего поста о Многомерном анализе)

# Import libraries
import numpy as np
import pandas as pd
import seaborn as sns
from scipy import stats
import matplotlib.pyplot as plt
%matplotlib inline

# Show all columns/rows of the dataframe
pd.set_option("display.max_columns", None)
pd.set_option("display.max_rows", None)

# Read the data
df = pd.read_csv('auto-cleaned.csv')

# Return top 5 rows of the dataframe
df.head()

Ниже приведены результаты, которые я вижу:

3. Затем я устанавливаю синтаксис Python, используя: :set syntax=python
4. Затем я включаю синтаксис, используя: :syntax on
Ниже приведены результаты, которые соответствуют синтаксису Python, как и ожидалось:

Как и ожидалось, синтаксис Python распознается и выделяется цветом.

Заключение

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

Спасибо за прочтение!

Если вы нашли этот пост полезным, пожалуйста, подпишитесь на меня на Medium и подпишитесь, чтобы получать мои последние сообщения!