· windows powershell tips · 5 min read
Làm Powershell thân thiện hơn với Oh My Posh
Khi làm việc với termial của Linux, Mac, công việc rất dễ dàn với các Zsh và các plugin kèm theo như Oh My Zsh, Zsh Autosuggestion làm hiệu suất làm việc rất cao. Sau đó tôi chuyển sang với Powershell của Windows luôn cảm thấy thiếu thiếu gì đó không quen lắm. Sau thời gian tìm hiểu, tôi đã phát hiện ra Oh My Posh với khả năng tùy chỉnh giao diện giống như Oh My Zsh. Trong bài viết này, tôi sẽ hướng dẫn cách setup Oh My Posh trên Windows để có những trải nghiệm làm việc tốt hơn.
Vấn đề
PowerShell là một công cụ dòng lệnh trên điều hành Windows. Tuy nhiên, nó có một số hạn chế và vấn đề mà người dùng thường gặp phải. Dưới đây là một số vấn đề phổ biến của PowerShell
- Giao diện không hấp dẫn: Mặc định, giao diện PowerShell có thể trông nhàm chán và khó nhìn, đặc biệt là khi so sánh với các trình vỏ lệnh hiện đại khác như zsh trên macOS và Linux
- Thông tin hiện tại: PowerShell mặc định không cung cấp nhiều thông tin hữu ích trên dòng lệnh như trạng thái của Git repository, tên nhánh hiện tại, hoặc trạng của Python environment
- Tùy chỉnh khó khăn: việc tùy chỉnh giao diện của PowerShell có thể phức tạp và yêu cầu người dùng phải có kiến thức sâu về cấu hình
Lúc mình làm việc trên Linux/Mac với bash/zsh sang Powershell sẽ cảm thấy rất tù vì những lý do trên. Tuy nhiên, thật may mắn sau thời gian tìm kiếm, mình đã thấy Oh My Posh giống với Oh My Zsh với nhiều tùy chỉnh, thông tin và giao diện, tuy nhiên lúc cài đặt có hơi phức tạp so với Oh My Zsh nên mình viết bài này để hướng dẫn và rút ngắn thời gian tiếp cận với công cụ này.
Cách cài Oh My Posh
Trên trang chủ của Oh My Posh đã liệt kê nhiều phương pháp, trong bài viết này mình sẽ chỉ chia sẽ cách mình cài đặt trên máy của mình.
1. Cài đặt Oh My Posh
Để cài đặt, bạn chạy dưới quyền Administrator
Set-ExecutionPolicy Bypass -Scope Process -Force; Invoke-Expression ((New-Object System.Net.WebClient).DownloadString('https://ohmyposh.dev/install.ps1'))
Lúc này, bạn có thể chạy thử lệnh sau để kiểm tra kết quả:
oh-my-posh
Nếu kết quả giống như bên dưới nghĩa là bước đầu bạn đã thành công.
oh-my-posh is a cross platform tool to render your prompt.
It can use the same configuration everywhere to offer a consistent
experience, regardless of where you are. For a detailed guide
on getting started, have a look at the docs at https://ohmyposh.dev
Usage:
oh-my-posh [flags]
oh-my-posh [command]
Available Commands:
cache Interact with the oh-my-posh cache
completion Generate the autocompletion script for the specified shell
config Interact with the config
debug Print the prompt in debug mode
disable Disable a feature
enable Enable a feature
font Manage fonts
get Get a value from oh-my-posh
help Help about any command
init Initialize your shell and config
notice Print the upgrade notice when a new version is available.
print Print the prompt/context
prompt Set up the prompt for your shell (deprecated)
toggle Toggle a segment on/off
upgrade Upgrade when a new version is available.
version Print the version
2. Cài đặt theme
Để cài đặt theme cho Oh My Posh, bạn có thể lên link này để xem trước và chọn 1 theme để tải về. Trong bài viết này mình chọn theme atomic.
mkdir ~/.oh-my-posh/
wget https://github.com/JanDeDobbeleer/oh-my-posh/blob/main/themes/atomic.omp.json -OutFile ~/.oh-my-posh/atomic.omp.json
Lúc này, bạn có thể chạy thử lệnh sau test apply theme mới.
oh-my-posh init pwsh --config ~/.config/oh-my-posh/config.omp.json | Invoke-Expression
Tuy nhiên, bạn sẽ giao diện hiện tại bị lỗi font, do đó, bạn cần cài đặt font mới.
3. Cài đặt font cho Oh My Posh
Để cài đặt font cho Oh My Posh, bạn chạy lệnh sau:
oh-my-posh font install
Sau đó bạn lựa chọn font phù hợp. Sau khi đã tải được font phù hợp. Trên termial, bạn cần mở Settings -> Defaults -> Appearance -> Fontface để chọn giao diện hiện font vừa cài đặt.
4. Tạo profile cho Powershell
Ở bước hiện tại, khi bạn restart lại Powershell, toàn bộ themes trước đó sẽ biến mất. Để lưu lại các cài đặt đã có, chúng ta sẽ cần tạo một file profile giống như .zshrc, .bashrc trên Linux. Để tạo profile bạn cần làm như sau:
Cấp quyền trên powershell
Set-ExecutionPolicy -ExecutionPolicy Unrestricted
Tạo tập tin profile bằng notepad
New-Item -Path $PROFILE -Type File -Force # Lưu ý nếu bạn đã từng tạo profile thì không cần sử dụng lệnh này
notepad $PROFILE
Lúc này, notepad mở lên, bạn thêm những lệnh sau, sau đó lưu lại.
oh-my-posh init pwsh --config ~/.config/oh-my-posh/config.omp.json | Invoke-Expression
Lúc này, khi bạn restart lại Powershell, toàn bộ theme và cấu hình của bạn vẫn giữ nguyên.
5. Cài đặt PSReadLine để tự động đề xuất câu lệnh
Để cài đặt PSReadLine, bạn sử dụng lệnh sau
Install-Module -Name PowerShellGet -Force
Exit
Install-Module PSReadLine -AllowPrerelease -Force
Import-Module PSReadLine
Set-PSReadLineOption -EditMode Windows
Set-PSReadLineOption -PredictionSource History
Set-PSReadLineOption -PredictionViewStyle ListView
Set-PSReadLineOption -PredictionViewStyle InlineView
Lúc này, khi bạn đánh một lệnh gì đó, nếu lệnh đó đã đã từng được dùng trước đó, thì sẽ có text mờ bên dưới để nhắc lệnh.
Lúc này, bạn cũng sẽ phải cần cập nhật file profile bằng cách thêm các file sau:
Import-Module PSReadLine
Set-PSReadLineOption -EditMode Windows
Set-PSReadLineOption -PredictionSource History
Set-PSReadLineOption -PredictionViewStyle ListView
Set-PSReadLineOption -PredictionViewStyle InlineView
Kết Luận
Trong bài viết này mình đã hướng dẫn các bạn cài đặt Oh My Posh một số tips để sử dụng hiệu quả, hy vọng sẽ giúp ích được mọi người có trải nghiệm làm việc tốt hơn và hiệu quả hơn. Sau bài viết này, các bạn có thể tìm hiểu thêm về một số cách tùy chỉnh giao diện, thêm những thông tin hay dùng như npm, docker, aws.