Windows Powershell Vim Keybindings


Câu trả lời:


11

Những ngày này bạn có một vài lựa chọn. Với bảng điều khiển mặc định, bạn chỉ có thể chạy Vim trên Windows (bạn có thể đã có nó nếu bạn đã cài đặt git hoặc các công cụ khác). Để làm cho việc tích hợp trở nên liền mạch hơn, hãy đặt nó trong hồ sơ PowerShell của bạn:

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

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

Tôi cũng khuyên bạn nên thêm các mục sau vào vimrctệp của mình để nó thực thi các lệnh shell với chính PowerShell.

set shell=powershell
set shellcmdflag=-command

Mặt khác, ISE duy nhất hỗ trợ chế độ Vi ngay bây giờ là PSReadLine hiện có sẵn trên Thư viện PS

ghi chú sử dụng nhưng tóm tắt cho chế độ VI, bạn cần thêm dòng sau vào hồ sơ ISE của mình.

Set-PSReadlineOption -EditMode vi

Lưu ý rằng hỗ trợ Vi đã được thêm vào 1.2 nhưng 1.1 được cung cấp cùng với Windows 10. Bạn sẽ cần sử dụng tham số -force để cập nhật phiên bản vận chuyển (còn gọi là cài đặt thủ công).


1
Hỗ trợ cho chế độ vi đã được thêm thông qua PsReadline trong PowerShell 5. Xem câu trả lời @strings bên dưới ...
Lucas

Có cách nào để thay đổi con trỏ để bạn có thể xem bạn đang ở chế độ bình thường hay chế độ chèn không?
bradgonesurfing

Tôi không nghĩ vậy, tuy nhiên một phiên bản beta khác cho phiên bản 2 đã phát hành vào tuần khác. Vì vậy, bạn có thể thử điều đó và nếu không có, tôi sẽ thử hỏi những người bảo trì, điều đó có thể thúc đẩy họ hỗ trợ nó (và tiếp tục phát triển nói chung)
Lex

9

Mô-đun PSReadline cung cấp điều này.

Để cài đặt rất đơn giản không chắc chắn các yêu cầu là gì nhưng tôi nghĩ ít nhất windows 10 cho phương thức này được cung cấp. Nếu bạn không có OneGet hoặc không chắc chắn, bạn có thể làm theo hướng dẫn tại PSReadline

Để cài đặt PSReadline mà không cần nâng cao đặc quyền

Install-Module PsReadline -Scope CurrentUser

Kiểm tra xem bạn có hồ sơ quyền hạn không

Test-Path $PROFILE

Nếu bạn không tạo

New-File -Type File $PROFILE

Mở $ HỒ SƠ trong ISE

ise $PROFILE

Thêm dòng này

Set-PSReadlineOption -EditMode vi

Tải lại $ PROFILE hoặc chỉ khởi động lại powershell

& $PROFILE

1
Đó là tập tin mới
Alex

1

Tôi sẽ không thề rằng không có một tính năng không có giấy tờ nào của Powershell cho phép điều này, nhưng theo như tôi biết thì câu trả lời là không. Ít nhất tôi chưa bao giờ thấy bất cứ điều gì trong tài liệu Powershell để đề xuất điều đó là có thể.

JR



0

Công cụ powershell hiện cung cấp các móc để thực hiện việc này tương đối đơn giản nhưng tôi không biết bất kỳ ai đã làm nó.

Dự án PSReadln có chế độ emacs mới nổi, mặc dù nó đang ở giai đoạn sơ khai. Thêm chế độ vi trong PSReadln sẽ là điều hiển nhiên phải làm nhưng tôi không có thời gian để dành cho nó.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.