Có cách nào để có được keybindings trong powershell như bạn làm trong bash hoặc zsh với một lệnh như
set -o vi
Có cách nào để có được keybindings trong powershell như bạn làm trong bash hoặc zsh với một lệnh như
set -o vi
Câu trả lời:
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 vimrc
tệ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
Có 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).
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
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
Khi điều đó xảy ra, bạn có thể tải tô sáng cú pháp PowerShell vào VIM. Đó là những gì tôi sử dụng để phát triển kịch bản.
http://www.vim.org/scripts/script.php?script_id=1327
Mặc dù bản thân nó không nằm trong trình bao, nhưng nó rất tiện để xây dựng các tập lệnh dài hơn. Tôi có một cửa sổ trong VIM và có dấu nhắc PowerShell ở cửa sổ khác. Tôi thấy nó rất tiện dụng .
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ó.