Windows Powershell Vim Keybindings

Odpowiedzi:

11

Obecnie masz kilka opcji. Za pomocą domyślnej konsoli możesz po prostu uruchomić Vima w systemie Windows (możesz go już mieć, jeśli masz zainstalowany git lub inne narzędzia). Aby integracja była bardziej płynna, umieść to w swoim profilu PowerShell:

$VIMEXEPATH    = "c:\<location>\vim.exe"

Set-Alias vim  $VIMEXEPATH
Set-Alias vi   $VIMEXEPATH

Polecam również dodanie do vimrcpliku następującego pliku, aby wykonywał polecenia powłoki za pomocą samego programu PowerShell.

set shell=powershell
set shellcmdflag=-command

W przeciwnym razie jedynym ISE, który obsługuje obecnie tryb Vi, jest PSReadLine teraz dostępny w Galerii PS

Istnieją uwagi dotyczące użytkowania, ale w skrócie dla trybu VI musisz dodać następujący wiersz do swojego profilu ISE.

Set-PSReadlineOption -EditMode vi

Zauważ, że obsługa Vi została dodana w 1.2, ale 1.1 dostarczonym z Windows 10. Musisz użyć parametru -force, aby zaktualizować wersję wysyłkową (inaczej ręcznie zainstalowaną).

Lex
źródło
1
Obsługa trybu vi została dodana za pomocą PsReadline w PowerShell 5. Zobacz @ ciągi odpowiedzi poniżej ...
Lucas
Czy istnieje sposób zmiany kursora, abyś mógł zobaczyć, czy jesteś w trybie normalnym czy w trybie wstawiania?
bradgonesurfing
Nie sądzę, jednak inna wersja beta dla wersji 2 została wydana w drugim tygodniu. Więc możesz spróbować, a jeśli go nie ma, poprosiłbym opiekunów, by zmotywowali ich do wsparcia (i dalszego rozwoju w ogóle)
Lex
9

Moduł PSReadline zapewnia to.

Instalacja jest prosta, nie jestem pewien, jakie są wymagania, ale myślę, że przynajmniej Windows 10 dla tej metody pod warunkiem. Jeśli nie masz OneGet lub nie jesteś pewien, możesz postępować zgodnie z instrukcjami w PSReadline

Aby zainstalować PSReadline bez podnoszenia uprawnień

Install-Module PsReadline -Scope CurrentUser

Sprawdź, czy masz profil PowerShell

Test-Path $PROFILE

Jeśli go nie utworzysz

New-File -Type File $PROFILE

Otwórz $ PROFIL w ISE

ise $PROFILE

Dodaj tę linię

Set-PSReadlineOption -EditMode vi

Załaduj ponownie PROFIL $ lub po prostu uruchom ponownie PowerShell

& $PROFILE
smyczki
źródło
1
Jest to plik nowego typu
Alex
1

Nie przysięgałbym, że nie ma nieudokumentowanej funkcji programu PowerShell, która na to pozwala, ale o ile wiem, odpowiedź brzmi „nie”. Przynajmniej nigdy nie widziałem w dokumentacji Powershell niczego, co sugerowałoby, że jest to możliwe.

JR

John Rennie
źródło
0

Silnik PowerShell oferuje teraz haczyki, które sprawiają, że jest to stosunkowo proste, ale nie znam jeszcze nikogo, kto to zrobił.

Projekt PSReadln ma nowy tryb emacs, choć jest jeszcze w powijakach. Dodanie trybu vi w PSReadln byłoby oczywistą rzeczą do zrobienia, ale nie mam czasu na to poświęcać.

użytkownik253235
źródło