首先,按Win + S搜索启用或关闭Windows功能(Turn Windows features on or off),打开虚拟机平台和WSL,并重启Windows。
重启后,进入Windows设置,检查更新。
更新完成后,进入Power Shell,执行:
wsl --set-default-version 2
这样可以将默认WSL版本设置为WSL2。
到清华大学TUNA开源镜像站下载Arch Linux:
Index of /archlinux/iso/latest/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror
下载archlinux-bootstrap-xxxx.xx.xx-x86_64.tar.gz,注意是tar.gz文件。
在GitHub下载LxRunOffline,Releases · DDoSolitary/LxRunOffline,选mingw或msvc版本均可。
在你想要安装Linux的位置创建一个目录,我这里选择D:\Arch。
将刚才下载好的tar.gz放进D:\Arch
将LxRunOffline解压好也放进D:\Arch
在D:\Arch文件夹空白位置,右击,打开Power Shell。
在Power Shell中,输入:
.\LxRunOffline i -n Arch -f archlinux-bootstrap-2022.05.01-x86_64.tar.gz -d D:\Arch -r root.x86_64
-n后面跟一个系统名称,可自取。
-f后面跟上你下载的Arch Linux压缩包,注意日期。
-d后面跟上你的安装目录。
在Power Shell中,输入:
wsl --set-version Arch 2
Arch是你起的系统名,将Arch设为WSL2。
wsl -d Arch
rm /etc/resolv.conf
exit
wsl --shutdown Arch
wsl -d Arch
cd /etc/
explorer.exe .
打开pacman.conf,在文件末尾添加:
[archlinuxcn]
Server = https://mirrors.tuna.tsinghua.edu.cn/archlinuxcn/$arch
pacman -Syy
pacman-key --init
pacman-key --populate
pacman -S archlinuxcn-keyring
pacman -S base base-devel vim git wget curl
在Arch Linux中
passwd
useradd -m -G wheel -s /bin/bash 用户名
passwd 用户名
vim /etc/sudoers
将wheel ALL=(ALL) ALL
取消注释,保存并退出。
id -u 用户名
记录下账号id
exit
.\LxRunOffline su -n Arch -v 账户id
-n后面跟WSL虚拟机的名字,我的是Arch。
这样,下一次登录会自动进入刚创建的用户。
vim /etc/locale.gen
将en_US.UTF8 UTF-8和zh_CN.UTF8 UTF-8取消注释,如果需要其他语言,请一并取消注释。
locale-gen
locale
locale -a
vim /etc/locale.conf
添加如下内容
# /etc/locale.conf
LANG=en_US.UTF-8
重启Arch Linux,即可完成配置
Locale 决定了地域、货币、时区日期的格式、字符排列方式和其他本地化标准。
编辑 /etc/locale.gen,去掉en_US.UTF-8 所在行以及 zh_CN.UTF-8 所在行的注释符号(#)。
然后使用如下命令生成 locale。
locale-gen
echo 'LANG=en_US.UTF-8' > /etc/locale.conf
在 ~/.bashrc
里单独设置中文 locale,即添加下面两行到文件的最开头
export LANG=zh_CN.UTF-8
export LANGUAGE=zh_CN:en_US
sudo pacman -S neovim
sudo pacman -S gcc gdb
sudo pacman -S python
wget https://bootstrap.pypa.io/get-pip.py
sudo python get-pip.py
pip install neovim
sudo pacman -S nodejs npm
npm install neovim
alias vi='vim'
alias vim='nvim'
cd ~
mkdir .config && cd .config
mkdir nvim && cd nvim
mkdir lua && cd lua
mkdir user && cd user
mkdir conf dap lsp
编辑init.lua,编写加载程序:
require "user.options"
保存并退出。
local options = {
cmdheight = 1,
showmode = true, --右下角显示模式
conceallevel = 0,
termguicolors = true, --如果安装第三方主题,必须设置为true
mouse = 'a', --允许鼠标
fileencoding = 'utf-8', --utf8编码
ignorecase = true, --查找时忽略大小写
smartcase = true, --智能大小写
smartindent = true, --智能锁进
cindent = true,
autoindent = true, --自动缩进
tabstop = 4, --Tab宽度
shiftwidth = 4, --每次Shift调整的缩进
number = true, --行号
relativenumber = true, --相对行号
showtabline = 2,
wrap = false, --不自动换行
cursorline = true, --高亮当前行
cursorcolumn = false, --不高亮当前列
showcmd = true, --右下角显示命令
}
--这里只列举基础的配置,更多选项可以在Vim中:set all查询
--应用上面配置
vim.opt.shortmess:append 'c'
for k, v in pairs(options) do
vim.opt[k] = v
end
vim.cmd "set whichwrap+=<,>,[,],h,l"
--WSL与Windows同步剪贴板
vim.cmd([[
let g:clipboard = {
\ 'name': 'win32yank-wsl',
\ 'copy': {
\ '+': 'win32yank.exe -i --crlf',
\ '*': 'win32yank.exe -i --crlf',
\ },
\ 'paste': {
\ '+': 'win32yank.exe -o --lf',
\ '*': 'win32yank.exe -o --lf',
\ },
\ 'cache_enabled': 0,
\ }
]])
由于我的键盘可以更改键位,所以我选择不进行按键映射,如果需要设置按键映射,可以进入南风璇的文章
现代Neovim配置-(2)-按键映射 - 知乎 (zhihu.com)
在Neovim中,推荐使用基于Lua的Packer作为插件管理器。
1.安装Packer
git clone --depth 1 https://github.com/wbthomason/packer.nvim\
~/.local/share/nvim/site/pack/packer/start/packer.nvim
在~/.config/nvim/lua/user下创建plugins.lua。
编辑~/.config/nvim/init.lua,追加:require 'user.plugins'
编辑plugins.lua,添加:
return require('packer').startup(function()
use 'wbthomason/packer.nvim'
end)
在function()和end之间添加你需要的插件:
比如安装One Dark主题:
return require('packer').startup(function()
use 'wbthomason/packer.nvim'
use "navarasu/onedark.nvim"
end)
保存并退出,重新进入Neovim,执行命令::PackerSync
打开plugins.lua,将想要卸载的插件注释掉或删除掉。
退出并重新打开Neovim,执行::PackerClean
我们不希望在安装插件的时候反复重启Neovim,可以在plugins.lua文件头部追加:
vim.cmd [[
augroup packer_user_config
autocmd!
autocmd BufWritePost plugins.lua source | PackerSync
augroup end
]]
这样每次保存plugins.lua文件时,Packer会自动同步插件,无需重启Neovim。
在plugins.lua中添加:
packer.init {
display = {
open_fn = function()
return require('packer.util').float { border = 'rounded' }
end,
}
}
安装Neofetch并使用它在终端中显示系统信息
sudo pacman -S netofetch
neofetch