5

Я разработчик, который "родился и вырос" в системах Linux и BSD, и я привык иметь передовые инструменты для консоли (например, оболочки типа posix, такие как bash). В моей карьере произошел поворот, который означает, что я большую часть времени работаю в среде Windows, а возможности консоли по сравнению с ней очень плохие. Традиционная консольная среда Windows - полная шутка, и даже большинство сторонних попыток улучшить ситуацию не намного лучше. PowerShell - это огромный шаг в правильном направлении, но сами консольные приложения все еще отстают от того места, где Unix существует уже 20 лет.

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

6 ответов6

9

Не совсем то, что вы просите, но рассматривали ли вы Cygwin? Вы будете чувствовать себя как дома.

Вы также можете запустить PowerShell как оболочку в Emacs.

3

Это не emacs, но у vim есть консольная версия.

Не использовал его на Windows, поэтому не могу комментировать его удобство использования.

Vim (консольная версия)

Кроме того, они делают CMD немного более приятным.

Console2
PowerCmd

1

После всего этого времени я наконец нашел решение, которое мне нравится: ConEmu + Clink. И не только ConEmu, но и конфигурация Итана Брауна ConEmu:

Это можно установить через Chocolatey. Я настоятельно рекомендую эту конфигурацию; ConEmu великолепен, но его настройка на что-то, что выглядит красиво, является рутиной. Вот как вы устанавливаете

PS> choco install EthanBrown.ConEmuConfig

Кроме того, обратите внимание, что я также использую Clink , который предоставляет GNU readline-подобную возможность редактирования строк, которая мне очень нравится. Клинк доступен так:

PS> choco install Clink

Установщик Clink отредактирует ваш $profile чтобы вы добавили его в работающий хост-процесс.

0

Лучшее, что вы можете получить, это установить ConEmu и кликнуть или пойти по маршруту Cygwin.

КСТАТИ. Мне нравится, как вы называете cmd.exe шуткой, и он более 20 лет отстает от Linux - я чувствую то же самое и на самом деле думаю о переходе на Linux для отличного опыта работы с консолью и сценариями, плюс все мои любимые IDE и инструменты уже есть (WebStorm PyCharm, Vim, python, nodejs, Firefox и т.д.) Единственные вещи, которые я буду скучать, это Total Commander и AutoHotKey.

0

Есть PowerGui.

У меня сложилось впечатление, что альтернативы встроенному PowerShell ISE не так много.

С VBScript люди писали мне каждую неделю с новым редактором, но с PowerShell - никаких предложений.

0

Вы можете динамически регулировать размер окна, манипулируя $ host.ui.rawui.Свойство WindowSize.

Используйте такую функцию в своем профиле

Function Set-WindowSize { 
Param([int]$x=$host.ui.rawui.windowsize.width, [int]$y=$host.ui.rawui.windowsize.heigth)

$size=New-Object System.Management.Automation.Host.Size($x,$y)
$host.ui.rawui.WindowSize=$size
}

Затем вызовите функцию:

Set-WindowSize 100 50

Прямо из консоли можно многое сделать, например, создавать функции на лету:

PS C:\> Function Try-Me {
>> write-host "Hello $env:username"
>> get-date
>> }
>>
PS C:\> try-me
Hello Jeff

Monday, November 09, 2009 1:08:13 PM

Командлеты PowerShell также могут делать намного больше. То, что раньше использовало 20-строчный сценарий, теперь можно выполнить с помощью однострочного выражения PowerShell. Наконец, поскольку PowerShell - это объектно-ориентированная оболочка, вы получите гораздо больше от сценариев IDE, таких как PrimalScript, чем от простого редактирования текста в консоли.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .