Roy*_*son 4 vim windows-subsystem-for-linux
我在 Linux 的 Windows 子系统中使用 Vim。Windows 命令提示符有一个错误,导致背景颜色渲染不正确。
解决方法是set t_ut=. 我认为只有在 Windows 控制台内使用 Vim 时才应用它才有意义,而不是在所有情况下都应用此修复。
不幸的是,我不确定如何检测 Windows 控制台是否正在使用,因为我位于 Linux 的 Windows 子系统中。
通常,人们通过检测终端类型来解决此类问题,但似乎 Microsoft Terminal 会报告xterm-256color它确实不支持这一点。
可以使用如下函数来检测是否正在运行 WSL:
function! IsWSL()
if has("unix")
let lines = readfile("/proc/version")
if lines[0] =~ "Microsoft"
return 1
endif
endif
return 0
endfunction
Run Code Online (Sandbox Code Playgroud)
这与 Microsoft 建议检测 WSL 的方式一致。
我使用以下代码来实现 Roadowl 的评论。
let uname = substitute(system('uname'),'\n','','')
if uname == 'Linux'
if system('$PATH')=~ '/mnt/c/WINDOWS'
" We are in Windows Subsystem
endif
endif
Run Code Online (Sandbox Code Playgroud)
更新:我结合了 roadowl 和 bk2204 的答案:
let uname = substitute(system('uname'),'\n','','')
if uname == 'Linux'
let lines = readfile("/proc/version")
if lines[0] =~ "Microsoft"
return 1
endif
endif
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1333 次 |
| 最近记录: |