背景
刚安装好neovim和nvchad之后,有个问题是使用Ctrl + h
等命令出发的shell使用的是cmd.exe,如下图:
但是个人偏向于使用powershell,因此,想把这个默认配置进行修改。先展示下成品:
设置
在设置之前,我们首先需要知道配置哪些插件或者内容才能修改这个部分。首先谷歌了一下,找到以下几个链接:
- (1) Use Powershell 7 as default - NVTerm : neovim (reddit.com)
- NvChad/nvterm: NvChad's Official Terminal Plugin (github.com)
从这两个链接可以知道,需要配置的部分有两个:
- nvterm的一些配置;
- vim.o.shell相关的设置;
根据nvchad的官方文档,个性化配置的目录位于:$HOME\AppData\Local\nvim\lua\custom
中的相关文件中。如果是全局配置则设置init.lua
,如果是插件配置则位于chadrc.lua
中。
根据上面的链接2,我们检查下nvterm的配置说明:
发现,其设定shell
为vim.o.shell
,因此,比较明确的是,修改vim.o.shell
即可。
根据链接1,查询shell-powershell
的帮助,如下:
按照上面进行尝试,把上面的指令依次输入到nvim的指令栏中:
执行成功。
将上面指令修改为lua指令,如下:
local isWindows = function ()
local arch = os.getenv("os")
if string.match(arch, "Windows") then
return true
end
return false
end
if isWindows() then
local cmd = "pwsh.exe"
local avaiable = vim.fn.executable(cmd)
vim.o.shell = avaiable and cmd or "powershell.exe"
vim.o.shellcmdflag = "-NoLogo -ExecutionPolicy RemoteSigned -Command [Console]::InputEncoding=[Console]::OutputEncoding=[System.Text.UTF8Encoding]::new();$PSDefaultParameterValues['Out-File:Encoding']='utf8';"
vim.o.shellredir = '2>&1 | %%{ "$_" } | Out-File %s; exit $LastExitCode'
vim.o.shellpipe = '2>&1 | %%{ "$_" } | Tee-Object %s; exit $LastExitCode'
vim.o.shellquote = nil
vim.o.shellxquote = nil
end
将上面的代码复制到$HOME\AppData\Local\nvim\lua\custom\init.lua
中即可。
评论区