📑
WindowsのNeovimで任意のPowerShellを起動する
はじめに
最近Windowsを使い始めたのですが,:terminal
にてデフォルトで開かれるシェルがターミナルのそれとは異なっていました.
Neovimにてシェルを指定することで解決したので,共有します.
Not for me だった解決策
:terminal powershell
にてPowerShellを指定できるようですが,私の場合これによって開かれたのは"Dveloper PowerShell for VS 2022"であり,ターミナルで使用していた"Windows PowerShell"とは別物でした.
"Windows PowerShell"の方はエイリアスやEmacsキーバインドなどの設定を行なっていたため,操作感に満足いきませんでした.
事前準備
ターミナルにて以下のコマンドを実行することで,今使っているPowerShellの実行ファイルのアドレスがわかります.
(Get-Process -Id $PID).Path
私の場合はC:\Program Files\PowerShell\7\pwsh.exe
でした.
ここで,:terminal "C:\Program Files\PowerShell\7\pwsh.exe"
にて指定したシェルにてターミナルを開くことができるはずです.
応用
毎回上記のコマンドを打つのは大変なので,設定ファイルに以下のコードを追記しておくと便利です.
:PS
で指定したPowerShellを使えるようにする
init.lua
-- PowerShell
vim.api.nvim_create_user_command('PS', function()
vim.cmd('terminal "C:\\Program Files\\PowerShell\\7\\pwsh.exe"')
end, {})
他OSとの設定の共存
私は次の記事を参考に:T
にてターミナルを起動するようにしており,他OSでも設定ファイルを共有しているため,以下の設定を利用しています.
init.lua
vim.api.nvim_create_user_command('T', function(opts)
vim.cmd('split')
vim.cmd('wincmd j')
vim.cmd('resize 20')
if opts.args == '' and vim.fn.has('win64') == 1 then
vim.cmd('terminal "C:\\Program Files\\PowerShell\\7\\pwsh.exe"')
else
vim.cmd('terminal ' .. opts.args)
end
end, { nargs = '*' })
最後に
初めての書いた記事だったため拙い部分も多いかと思いますが,未来の自分とどなたかの役に立てば幸いです.
Discussion