Windows终端(用的是powershell)中的vim输入全部是乱码

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Windows终端(用的是powershell)中的vim输入全部是乱码相关的知识,希望对你有一定的参考价值。

我在powershell中用vim编辑文档时输入的中文全是乱码
求好心人帮忙
系统是中文的,VIM也是中文的,是编码问题

刚安上vim的时候,乱码问题确实困扰我很长时间,尤其是在windows的命令行下面,试用了网上的N多方式,命令行下始终乱码,最后忘了是从哪个网站上看的,用了下面的代码,全部搞定,无论windows下还是ubuntu下。
请从下面一行复制:=========================================
" Platform
function! MySys()
if has("win16") || has("win32") || has("win64") || has("win95")
return "windows"
elseif has("unix")
return "linux"
endif
endfunction

"处理文本中显示乱码
set encoding=utf-8
set fileencodings=ucs-bom,utf-8,cp936,big5,euc-jp,euc-kr,latin1
if MySys() == "windows"
set termencoding=chinese
set fileencoding=chinese
elseif MySys() == "linux"
let &termencoding=&encoding
set fileencodings=utf-8,gbk,ucs-bom,cp936
endif

"防止特殊符号无法正常显示。
if exists("&ambiwidth")
set ambiwidth=double
endif

"使用中文菜单,并使用 UTF-8 编码。
"如果没有这句的话,在非 UTF-8 的系统,如 Windows 下,用了 UTF-8 的 encoding 后
"菜单会乱码。
set langmenu=zh_CN.UTF-8

"使用中文提示信息,并使用 UTF-8 编码。
"如果没有这句的话,在非 UTF-8 的系统,用了 UTF-8 的 encoding 后
"系统提示会乱码。
language messages zh_CN.UTF-8

" 解决菜单乱码,先指定语言。>>>自己根据相关版本添加<<<
"导入删除菜单脚本,删除乱码的菜单
source $VIMRUNTIME/delmenu.vim
"导入正常的菜单脚本
source $VIMRUNTIME/menu.vim
到上面一行结束。================================================
希望对你有用!
参考技术A 我感觉应该是vim的问题,与PowerShell关系不大。在Windows下面去使用VIM,这个我倒蛮感兴趣的,呵呵。 参考技术B 是不是你的系统没有安装中文语言呢?

Windows powershell 自学指南1

参考MIT课程MIT-Missing-Semester(CS小白入门可学)。

原课程演示用的是Linux系统的操作指令,与我所用不同。

 

Windows powershell 下载安装略。Microsoft Store 搜索Windows Termianal下载。

Note1:如果需要help指令,以管理员身份运行Windows powershell ,然后输入指令:Update-help

然后会出现提示:

Update-help : 无法更新带有 UI 区域性 zh-CN 的模块“ConfigDefender, PSReadline”帮助: 在 HelpInfo XML 文件中检索不到 U
I 区域性 zh-CN。确保模块清单中的 HelpInfoUri 属性有效或检查网络连接是否正常,然后重试该命令。
所在位置 行:1 字符: 1
+ Update-help
+ ~~~~~~~~~~~
    + CategoryInfo          : ResourceUnavailable: (:) [Update-Help], Exception
    + FullyQualifiedErrorId : UnableToRetrieveHelpInfoXml,Microsoft.PowerShell.Commands.UpdateHelpCommand

解决方案:修改操作系统的语言集为英文

或者使用如下代码替代:

Update-Help -ErrorAction SilentlyContinue

以下所有代码在Windows PowerShell下运行(不是Command Prompt)

输入:date  输出为:

2022年3月30日 22:17:18

 输入:echo hello   输出为: hello

Windows PowerShell默认进入的路径是系统盘的目录:比如我的是C:\\Users\\dell>

输入 :dir 输出为C:\\Users\\dell>路径中的文件夹目录比如我的是:

 目录: C:\\Users\\dell


Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d-----         2021/5/12     21:02                .astropy
d-----         2021/5/21     16:47                .cache
d-----         2021/5/21     20:39                .matplotlib
d-----         2021/6/20     20:26                .texlive2021
d-----         2021/5/24     18:52                .vscode
d-r---          2022/3/1     19:37                3D Objects
d-----          2021/2/2     14:54                ansel
d-r---         2021/1/29     22:34                Contacts
d-----        2021/11/28     16:13                copytranslator
d-r---         2022/3/30     11:06                Desktop
d-r---          2022/1/9     12:12                Documents
d-r---         2022/3/30     11:00                Downloads
d-r---          2021/2/4     16:59                Favorites
d-----          2021/2/8     16:48                Flash Center
d-r---         2021/10/9     16:36                Links
d-r---         2021/1/29     22:34                Music
d-----         2022/3/23     11:03                mytest
d-r---          2021/8/5     22:49                OneDrive
d-r---         2022/2/18     21:56                Pictures
d-r---         2021/1/29     22:34                Saved Games
d-r---         2021/1/29     22:36                Searches
d-----         2021/11/3     20:33                source
d-----         2021/10/9     16:35                UIDowner
d-r---         2022/3/30     10:43                Videos
-a----         2021/7/18     19:13            672 .condarc
-a----         2021/8/23     16:06            161 BullseyeCoverageError.txt
-a----         2021/5/11     17:19        1937346 get-pip.py
-a----         2022/3/23     10:43              0 test1

 

要查看当前所在路径,输入:pwd 输出:

Path
----
C:\\Users\\dell

要查看环境变量,输入:Get-ChildItem env: 输出:

Name                           Value
----                           -----
ALLUSERSPROFILE                C:\\ProgramData
APPDATA                        C:\\Users\\dell\\AppData\\Roaming
CommonProgramFiles             C:\\Program Files\\Common Files
CommonProgramFiles(x86)        C:\\Program Files (x86)\\Common Files
CommonProgramW6432             C:\\Program Files\\Common Files
COMPUTERNAME                   DESKTOP-HURPF4U
ComSpec                        C:\\Windows\\system32\\cmd.exe
DriverData                     C:\\Windows\\System32\\Drivers\\DriverData
HOMEDRIVE                      C:
HOMEPATH                       \\Users\\dell
LOCALAPPDATA                   C:\\Users\\dell\\AppData\\Local
LOGONSERVER                    \\\\DESKTOP-HURPF4U
NUMBER_OF_PROCESSORS           12
OneDrive                       C:\\Users\\dell\\OneDrive
OS                             Windows_NT
Path                           C:\\Windows\\system32;C:\\Windows;C:\\Windows\\System32\\Wbem;C:\\Windows\\System32\\WindowsPo...
PATHEXT                        .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC;.CPL
PROCESSOR_ARCHITECTURE         AMD64
PROCESSOR_IDENTIFIER           Intel64 Family 6 Model 165 Stepping 2, GenuineIntel
PROCESSOR_LEVEL                6
PROCESSOR_REVISION             a502
ProgramData                    C:\\ProgramData
ProgramFiles                   C:\\Program Files
ProgramFiles(x86)              C:\\Program Files (x86)
ProgramW6432                   C:\\Program Files
PSModulePath                   C:\\Users\\dell\\Documents\\WindowsPowerShell\\Modules;C:\\Program Files\\WindowsPowerShell\\...
PUBLIC                         C:\\Users\\Public
PyCharm Community Edition      D:\\pycharm\\PyCharm Community Edition 2021.1.1\\bin;
SystemDrive                    C:
SystemRoot                     C:\\Windows
TEMP                           C:\\Users\\dell\\AppData\\Local\\Temp
TMP                            C:\\Users\\dell\\AppData\\Local\\Temp
USERDOMAIN                     DESKTOP-HURPF4U
USERDOMAIN_ROAMINGPROFILE      DESKTOP-HURPF4U
USERNAME                       dell
USERPROFILE                    C:\\Users\\dell
windir                         C:\\Windows
WSLENV                         WT_SESSION::WT_PROFILE_ID
WT_PROFILE_ID                  61c54bbd-c2c6-5271-96e7-009a87ff44bf
WT_SESSION                     d7061c74-806b-4c75-8a42-bfcf23353b2d
ZES_ENABLE_SYSMAN              1

 

 

要查找文件或者程序的位置(比如搜索matlab程序的路径),输入:gcm MATLAB 输出:

CommandType     Name                                               Version    Source
-----------     ----                                               -------    ------
Application     matlab.exe                                         1.0.0.1    E:\\MATLAB\\bin\\matlab.exe

gcm在当前目录和上述环境变量中搜索

 

要返回上一级路径,现在是C:\\Users\\dell,我们想返回C:\\Users

输入: cd..(2个点)  那么路径变成C:\\Users

此时输入:pwd 查看当前路径,输出:

Path
----
C:\\Users

 

要更改路径,比如进入D盘,输入:D:或者(cd D:)这路径变为:D:\\>

要进入某个文件夹,比如我D盘里有个文件夹叫skr,输入:cd skr 这时路径变为:D:\\skr>

返回默认路径,输入:cd ~ 这时路径变为: C:\\Users\\dell>

查看某条指令的帮助 输入 :help 某条指令 比如  help cd 输出:

名称
    Set-Location

摘要
    Sets the current working location to a specified location.


语法
    Set-Location -LiteralPath <System.String> [-PassThru] [-UseTransaction] [<CommonParameters>]

    Set-Location [[-Path] <System.String>] [-PassThru] [-UseTransaction] [<CommonParameters>]

    Set-Location [-PassThru] [-StackName <System.String>] [-UseTransaction] [<CommonParameters>]


说明
    The `Set-Location` cmdlet sets the working location to a specified location. That location could be a directory, a
    subdirectory, a registry location, or any provider path.

    You can also use the StackName parameter to make a named location stack the current location stack. For more inform
    ation about location stacks, see the Notes.


相关链接
    Online Version: https://docs.microsoft.com/powershell/module/microsoft.powershell.management/set-location?view=powe
    rshell-5.1&WT.mc_id=ps-gethelp
    Get-Location
    Pop-Location

 

需要清空当前并返回首行,输入:clear

在某个路径中新建一个文件夹,比如在D盘里建立一个名叫skr2的文件夹(路径)(确保D盘里事先没有skr2)

先进入D盘路径 输入: D:

再输入: ni skr2 -type dir 输出:

   
    目录: D:\\


Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d-----         2022/3/30     22:44                skr2

 

比如在skr2里新建一个demo.txt文档

进入skr2 路径 cd skr2

再输入:ni demo.txt -type file 输出:
    目录: D:\\skr2


Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a----         2022/3/30     22:48              0 demo.txt

在demo.txt文档里写入内容

输入: sc demo.txt "say hello to my little friends"

则demo.txt 的文档的第一行为:say hello to my little friends

sc指令会覆盖之前的内容

比如想再上述文档中追加新的内容

输入: ac demo.txt hello

则demo.txt 的文档的第二行为:hello

输出文档内容,输入:type demo.txt 输出:

say hello to my little friends
hello

 

移动demo.txt到demo1.txt (确保事先没有demo1.txt文件)输入: mv demo.txt demo1.txt

复制demo1.txt到demo2.txt (确保事先没有demo2.txt文件)输入: cp demo1.txt demo2.txt

删除demo.txt 输入:rm demo.txt

将所有的demo文件删除后才可以将路径skr2删除

返回D盘路径,输入:cd ..

然后输入:rm skr2
可以将skr2文件夹删除。

以上是关于Windows终端(用的是powershell)中的vim输入全部是乱码的主要内容,如果未能解决你的问题,请参考以下文章

将Pycharm中Terminal使用Powershell作为终端

所有 powershell 终端的 Windows 高级审核设置

windows terminal美化

windows powershell 怎么使用啊,是干啥用的

Win7 Windows powershell

windows 下使用ConEmu美化的终端代替Powershell