Windows Powershell Vim Keybindings

Réponses:

11

Ces jours-ci, vous avez quelques options. Avec la console par défaut, vous pouvez simplement exécuter Vim sur Windows (vous l'avez peut-être déjà si vous avez installé git ou d'autres outils). Pour rendre l'intégration plus transparente, placez-la dans votre profil PowerShell:

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

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

Je recommanderais également d'ajouter ce qui suit à votre vimrcfichier pour qu'il exécute les commandes shell avec PowerShell lui-même.

set shell=powershell
set shellcmdflag=-command

Sinon, le seul ISE qui prend en charge un mode Vi en ce moment est PSReadLine maintenant disponible sur la galerie PS

Il existe des notes d'utilisation, mais en bref pour le mode VI, vous devez ajouter la ligne suivante à votre profil ISE.

Set-PSReadlineOption -EditMode vi

Notez que la prise en charge de Vi a été ajoutée dans les versions 1.2 mais 1.1 livrées avec Windows 10. Vous devrez utiliser le paramètre -force pour mettre à jour la version d'expédition (également installée manuellement).

Lex
la source
1
La prise en charge du mode vi a été ajoutée via PsReadline dans PowerShell 5. Voir la réponse @strings ci-dessous ...
Lucas
Existe-t-il un moyen de faire changer le curseur pour que vous puissiez voir si vous êtes en mode normal ou d'insertion?
bradgonesurfing
Je ne pense pas, mais une autre version bêta de la version 2 est sortie l'autre semaine. Vous pouvez donc essayer cela, et si ce n'est pas le cas, j'essaierais de demander aux responsables de les motiver à les soutenir (et à poursuivre le développement en général)
Lex
9

Le module PSReadline fournit cela.

L'installation est simple, je ne sais pas quelles sont les exigences, mais je pense qu'au moins Windows 10 pour cette méthode est fourni. Si vous n'avez pas OneGet ou si vous n'êtes pas sûr de pouvoir suivre les instructions sur PSReadline

Pour installer PSReadline sans augmenter les privilèges

Install-Module PsReadline -Scope CurrentUser

Vérifiez que vous avez un profil PowerShell

Test-Path $PROFILE

Si vous n'en créez pas

New-File -Type File $PROFILE

Ouvrir $ PROFILE dans ISE

ise $PROFILE

Ajoutez cette ligne

Set-PSReadlineOption -EditMode vi

Rechargez $ PROFILE ou redémarrez simplement PowerShell

& $PROFILE
cordes
la source
1
Il s'agit d'un fichier de type nouvel élément
Alex
1

Je ne jurerais pas qu'il n'y a pas de fonctionnalité non documentée de Powershell qui le permette, mais pour autant que je sache, la réponse est non. Au moins, je n'ai jamais rien vu dans la documentation de Powershell suggérant que c'est possible.

JR

John Rennie
la source
0

En l'occurrence, vous pouvez charger la mise en évidence de la syntaxe PowerShell dans VIM. C'est ce que j'utilise pour le développement de scripts.

http://www.vim.org/scripts/script.php?script_id=1327

Bien qu'il ne soit pas dans le shell lui-même, il est pratique pour créer des scripts plus longs. J'ai une fenêtre dans VIM et une invite PowerShell dans une autre. Je le trouve très pratique .

sysadmin1138
la source
0

Le moteur PowerShell offre maintenant les crochets pour rendre cela relativement simple, mais je ne connais personne qui l'ait encore fait.

Le projet PSReadln a un mode emacs émergent, bien qu'il en soit à ses balbutiements. L'ajout d'un mode vi dans PSReadln serait la chose évidente à faire mais je n'ai pas le temps de m'y consacrer.

user253235
la source