Как редактировать файлы с помощью настоящего текстового редактора PowerShell

Вы запустили скрипт, который читал текстовый файл и обнаружил, что в файле есть несколько неверных записей? В таких случаях может пригодиться текстовый редактор PowerShell. Вам не придется запускать внешний редактор. Вместо этого вы можете редактировать файл, не покидая PowerShell. Круто, правда?

Продолжайте читать, и вы узнаете, как установить и использовать три текстовых редактора (Nano, Vim и Emacs) для редактирования ваших текстовых файлов в PowerShell. В этом руководстве также будет рассмотрены преимущества каждого из них, чтобы помочь вам выбрать наиболее подходящий.

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

Предварительные требования

Это руководство будет практической демонстрацией. Если вы хотите следовать за нами, убедитесь, что у вас есть следующее:

  • A computer running on Windows 7 or higher. The examples in this tutorial will use Windows 10 version 21H1.
  • Windows PowerShell версии 3+ или PowerShell Core версии 6+. В этом руководстве будет использоваться Windows PowerShell версии 5.1.
  • Последняя версия Chocolatey (v0.11.2 на момент написания этого руководства).

Использование Nano в качестве текстового редактора PowerShell

Если вы новичок в редакторах текста на основе терминала или вам просто нужно быстро внести изменения в файл, Nano идеально подходит для вас. Нано – легкий, интуитивно понятный редактор, более подходящий для простых задач редактирования текста по сравнению с другими более продвинутыми редакторами в этом руководстве.

Установка Nano

Чтобы установить Nano, выполните следующие шаги.

1. Откройте PowerShell от имени администратора.

2. В PowerShell выполните следующую команду choco install, чтобы установить текстовый редактор Nano. Переключатель (-y) позволит пропустить запрос на подтверждение и продолжить установку пакета.

choco install nano -y

Процесс установки будет выглядеть примерно так, как на скриншоте ниже. Как видите на этом примере, установка Nano прошла успешно.

Installing Nano

3. После установки Nano выполните следующую команду, чтобы проверить успешность установки и отобразить текущую версию.

nano --version

Как видно ниже, команда выполнена успешно и отображена версия Nano на вашем компьютере.

Verifying the Nano version

Редактирование и сохранение файла

Теперь, когда у вас установлен Nano, пришло время опробовать его!

1. Чтобы создать новый файл или открыть существующий, выполните команду nano и следуйте за ней именем файла для создания или открытия. В примерах в этом руководстве вы будете создавать и редактировать сценарий Windows PowerShell, который использует расширение файла .ps1. Нижеприведенная команда создаст новый файл с именем myPowerShellScript.ps1 в текущем каталоге.

nano myPowerShellScript.ps1

Текстовый редактор Nano откроется внутри PowerShell. Как видно на изображении ниже, внизу написано [Новый файл], что указывает на то, что Nano открыл новый пустой файл.

The Nano editor screen

Чтобы просмотреть все доступные команды быстрых клавиш, нажмите CTRL+G на клавиатуре, чтобы отобразить справочную документацию. Команды, начинающиеся с ^, означают, что вам нужно нажать клавишу CTRL. С другой стороны, если команда начинается с M, вам нужно нажать клавишу ALT.

2. Затем начните писать свой сценарий, используя стрелки на клавиатуре для перемещения курсора. Например, введите команду Windows PowerShell Write-Host "Hello World!", как показано на следующем изображении. При выполнении этой команды будет выведен текст “Hello World!” в консоль.

Обратите внимание, что после изменения содержимого файла в правом верхнем углу редактора появляется слово Modified. После редактирования нажмите CTRL+O, чтобы сообщить Nano, что вы хотите сохранить файл.

Using the Write-Out shortcut

3. Nano запрашивает вас ввести имя файла для записи изменений. Нажмите Enter, чтобы подтвердить.

Saving the file

4. Наконец, чтобы выйти из Nano, нажмите CTRL+X.

Если вы попытаетесь выйти из редактора, когда есть несохраненные изменения, Nano спросит вас, хотите ли вы сохранить или игнорировать изменения. Если вы хотите сохранить, нажмите Y и укажите имя файла для записи, как вы делали на шаге 3. В противном случае нажмите N, чтобы отменить изменения.

Exiting Nano

5. Теперь запустите свой скрипт, выполнив следующую команду. Эта команда предполагает, что ваш файл находится в папке C:\.

& C:\myPowerShellScript.ps1

Скрипт выведет сообщение ‘Hello World!’ в терминал, как показано на следующем изображении.

Output of the script

Поиск и замена текста

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

Для поиска строки выполните следующие действия.

1. Сначала откройте текстовый файл в редакторе Nano, если он еще не открыт.

2. После того как вы открыли текстовый файл, нажмите CTRL+W на клавиатуре, чтобы вызвать команду Where Is.

3. Затем введите строку для поиска рядом с приглашением к поиску и нажмите Enter. В приведенном ниже примере будет выполнен поиск слова Hello.

Searching for a string

Если строка существует в файле, ваш курсор переместится к ней, как показано ниже.

Finding the string

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

1. Нажмите CTRL+\ на клавиатуре, чтобы открыть меню поиска и замены. Рядом с приглашением Search (to replace) введите строку, которую вы хотите заменить, и нажмите Enter.

Searching for the word ‘Hello’

2. Затем, в заменить на подсказке, введите новое слово и нажмите Enter. В примере ниже заменяемое слово будет Прощай.

Replacing the word

3. Наконец, выберите замену только текущего экземпляра или всех экземпляров совпадающего слова в файле. Варианты следующие:

  • Чтобы заменить один экземпляр, нажмите Y.
  • Чтобы заменить все экземпляры, нажмите A.
  • Чтобы пропустить этот экземпляр, нажмите N.
  • Чтобы отменить операцию замены, нажмите CTRL+C.

В этом примере нажмите Y, чтобы заменить текущий экземпляр.

Confirming the search and replace operation

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

Replace occurrence count

4. Нажмите CTRL+X на вашей клавиатуре, чтобы выйти из Nano, и нажмите Y, чтобы сохранить буфер. Повторите запуск вашего сценария. Новое сообщение ‘Прощай, Мир!’ будет выведено на вашем терминале.

The script output

Использование Vim как текстового редактора PowerShell

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

Однако дополнительные функции, которые предлагает Vim, идут в ущерб более крутому кривой обучения. Но не отчаивайтесь. Vim – отличный редактор для изучения.

Установка Vim

Теперь пришло время начать, установив Vim.

1. Откройте PowerShell в качестве администратора.

2. В терминале PowerShell выполните следующую команду для установки редактора Vim.

choco install vim -y

3. Чтобы проверить версию Vim, выполните следующую команду. vim --v

vim --version
Verifying the Vim version

Редактирование и сохранение файла

Теперь, когда у вас установлен Vim, пришло время попробовать редактирование файла. Прежде чем двигаться дальше, стоит знать, что в Vim существуют различные режимы. Каждый режим ведет себя по-разному и влияет на действия, которые вы можете выполнять в редакторе.

Три часто используемых режима:

  • Обычный – Режим по умолчанию сразу после открытия Vim. Этот режим позволяет вам перемещаться по текстовому файлу, но не добавлять новый текст.
  • Вставка – В этом режиме Vim позволяет редактировать файл. Чтобы войти в этот режим, нажмите i (без учета регистра) на клавиатуре. Чтобы выйти и вернуться в обычный режим, нажмите ESC.
  • Команда – В этом режиме Vim позволяет выполнять команды, такие как сохранение файла, выход из Vim или просмотр справочного документа, среди прочего.

Переход к редактированию файла в Vim, следуйте указанным ниже шагам.

1. Чтобы открыть файл в Vim, выполните команду vim, за которой следует имя файла для открытия. Команда ниже открывает файл myPowerShellScript.ps1.

vim myPowerShellScript.ps1

Редактор текста Vim откроется, как показано на следующем изображении. Обратите внимание, что команда PowerShell ‘Write-Host’ и сообщение ‘Hello World!’ отображаются разными цветами, так как Vim поддерживает раскраску синтаксиса.

The Vim opening view in normal mode

Если вам нужно просмотреть справочный документ Vim, введите :h и нажмите Enter. Нажатие символа : в нормальном режиме переключает Vim в командный режим, а h означает открытие справочного файла. Чтобы выйти из справочного документа, введите :q и нажмите Enter, чтобы вернуться в нормальный режим.

Затем перейдите в режим вставки, нажав i. Когда вы входите в режим вставки, внизу редактора появляется текст -- INSERT --, как показано на следующем изображении.

Vim in insert mode

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

4. После редактирования нажмите Esc, чтобы вернуться в нормальный режим.

5. Введите команду :wq и нажмите Enter, чтобы сохранить и закрыть файл. Команда w сохраняет файлы, а q выходит из Vim.

Saving the file and existing Vim

Поиск и замена текста

Следуйте указанным ниже шагам, чтобы искать строки в Vim.

1. Откройте файл, который хотите отредактировать в Vim.

2. В редакторе Vim для поиска строки выполните следующую команду, где <строка> – это строка, которую вы хотите найти.

:/<string>

Например, чтобы найти слово Hello, введите:

:/Hello

Vim подсветит совпадающие слова, как показано на следующем изображении.

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

Vim highlighting the matching words

3. Наконец, чтобы заменить каждое вхождение строки во всем файле, выполните нижеприведенную команду, где <old> – это текст, который нужно заменить, а <new> – заменяющий текст.

:%s/<old>/<new>/g

Например, команда ниже заменит слово Hello на слово Goodbye.

:%s/Hello/Goodbye/g
Performing a search and replace in Vim

В результате Vim заменит текст, как показано ниже.

Vim showing the search and replace results

4. Введите команду :wq и нажмите Enter, чтобы сохранить и закрыть файл. Повторно запустите скрипт. Вывод отобразит ваше новое сообщение.

The script output

Использование Emacs в качестве текстового редактора PowerShell

Как и Vim, Emacs предлагает больше возможностей, чем Nano. Кроме того, Emacs также является Интегрированной Средой Разработки (IDE). Некоторые из функций Emacs включают подсветку синтаксиса, редактирование нескольких файлов одновременно и автоматическую индентацию.

Еще одно преимущество Emacs перед другими редакторами в этом руководстве заключается в том, что Emacs не имеет режимов. Emacs также полностью настраиваем. Если вам чего-то не хватает в Emacs, вы можете добавить поддержку для этого сами с помощью Emacs Lisp.

Установка Emacs

Следуйте указанным ниже шагам, чтобы установить Emacs.

1. Откройте PowerShell от имени администратора, если еще этого не сделали.

2. В терминале PowerShell выполните следующую команду для установки Emacs с использованием Chocolatey. choco install emacs -y

choco install emacs -y

3. Выполните следующую команду, чтобы проверить версию установленного Emacs. emacs --version

choco install emacs -y

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

Displaying Emacs version

Редактирование и сохранение файла

Итак, вы установили Emacs. Что дальше? Погрузитесь и начните редактировать текстовый файл, чтобы увидеть Emacs в действии. Следуйте указанным ниже шагам, чтобы отредактировать и сохранить текстовый файл.

1. Чтобы открыть файл в Emacs, выполните команду emacs, за которой следует имя файла в PowerShell. Команда ниже открывает файл myPowerShellScript.ps1 для редактирования. Переключатель -nw указывает emacs открывать редактор в текущем окне терминала (PowerShell), а не в отдельном графическом интерфейсе. emacs -nw myPowerShellScript.ps1

emacs -nw myPowerShellScript.ps1

В верхней части редактора будут доступны несколько выпадающих меню. Чтобы просмотреть документацию по Emacs, щелкните меню Справка.

Opening a file in Emacs

2. Редактируйте файл по вашему усмотрению, и после завершения редактирования сохраните изменения, нажав последовательно CTRL+X и CTRL+S. Вы увидите подтверждение сохранения файла внизу редактора, как показано ниже.

Saving the file

3. Чтобы выйти из редактора, нажмите CTRL+X на клавиатуре, а затем CTRL+C.

Поиск и замена текста

Теперь, когда вы знаете основы Emacs, как выполнить операцию поиска и замены? Следуйте указанным ниже шагам.

1. Нажмите CTRL+S и введите текст для поиска рядом с приглашением I-search, чтобы найти текст. В приведенном ниже примере ищется слово Hello.

Searching for text

2. Чтобы запустить опцию поиска и замены, нажмите ALT+% на клавиатуре (то же самое, что и ALT+SHIFT+5).

3. Затем введите текст для поиска рядом с приглашением Заменить запрос: и нажмите Enter.

Searching for the text to replace

4. Затем введите текст замены рядом с приглашением и нажмите Enter.

Entering the replacement text

5. Наконец, на приглашении Заменить запрос <старый текст> на <новый текст>: нажмите !, чтобы подтвердить и заменить все вхождения текста.

Replacing all instances of the matching text

В результате Emacs заменил текст, как вы можете видеть ниже. Кроме того, внизу редактора Emacs показывается количество вхождений замененного текста.

Emacs replaced the search text

6. Выйдите из редактора, нажав CTRL+X на клавиатуре, а затем CTRL+C. Перезапустите скрипт. Вывод отобразит ваше новое сообщение.

The script output

Заключение

На протяжении этого руководства вы узнали основы использования трех текстовых редакторов PowerShell и преимущества каждого из них. В следующий раз, когда вам нужно будет отредактировать файл из терминала, не тратьте время на настройку внешнего текстового редактора. Просто откройте Nano, Vim или Emacs и внесите изменения всего в несколько нажатий клавиш!

Какой текстовый редактор PowerShell вам больше всего понравился? Знаете ли вы о других текстовых редакторах, которых не было в этом учебнике?

Source:
https://adamtheautomator.com/powershell-text-editor/