IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> 困于 WSL 的两个晚上 -> 正文阅读

[系统运维]困于 WSL 的两个晚上

记录一下,没准以后换设备能用上。

首先去 Microsoft?Store \text{Microsoft Store} Microsoft?Store 里下载 U b u n t u \rm Ubuntu Ubuntu Windows?Terminal \text{Windows Terminal} Windows?Terminal 。没有 Microsoft \text{Microsoft} Microsoft 账号的,可以立刻注册,很快而且免费。然后去 启用或关闭 Windows 功能 内选中 Hyper-V适用于 Linux 的 Windows 子系统

运行 Ubuntu \text{Ubuntu} Ubuntu,无论哪个版本。它会自动安装。搞定之后我们就获得了 wsl.exe,可以用 cmdpowershellwin+R 运行之,都可以进入 “虚拟机” 的终端操作界面。本机会被挂载到路径 /mnt 下,内有 /c/d 等就是本地磁盘。

记得更换软件源。这是国内 U b u n t u \rm Ubuntu Ubuntu 基本操作。比如清华源。然后你可以装 g++gdb 咯!

cmd 呼出 wsl 不太美观,所以才推荐下载 Windows?Terminal \text{Windows Terminal} Windows?Terminal 。不出意外它会自动装填两个配置文件(可用选项卡),图标分别是经典小企鹅,还有下载的 U b u n t u \rm Ubuntu Ubuntu 的图标。在设置里查看配置文件,其一的运行方案(即 命令行 子项)是 wsl.exe 另一个是 ubuntu*.exe 。保留前者。将其设为启动时默认配置文件(于左侧 启动 项中)。然后你就可以用鼠标右键菜单中 “在终端中打开”,直接用 “虚拟机” 进入本机文件夹了!

我很喜欢 noi?linux?2 \text{noi linux 2} noi?linux?2 系统配色,所以我要使用配色方案 Tango Dark,去下载字体然后安装(选中所有文件后右键菜单内有 “安装” 选项),将字体调为 Ubuntu Mono 。而且 v i m \rm vim vim 默认配色方案需设定为 ron 。对了,Tango Dark 背景颜色不太对,自己改成 #300A24 吧。

然后是光标的问题。用此文中所述方式,可以改变光标的形状(和闪烁)但是没法做到光标亮起时文字自动反色!这就导致方块型光标很影响文本可见性……我去查了 xterm \text{xterm} xterm 的控制序列,按照 Change pointer foreground color 所述写了转义序列,却完全没有效果!是不支持,还是说 pointer?foreground \text{pointer foreground} pointer?foreground 非我所愿?可我查遍 foreground,唯一可能的就是这个了……

而且,上面的光标配置方案是永久的(退出 v i m \rm vim vim 后仍起效)所以最好 autocmd 改回来。贴上完整的 vimrc 文件,记得它是在 /etc/vim/usr/share/vim 内(二者完全相同,感觉类似软链接):

" All system-wide defaults are set in $VIMRUNTIME/debian.vim and sourced by
" the call to :runtime you can find below.  If you wish to change any of those
" settings, you should do it in this file (/etc/vim/vimrc), since debian.vim
" will be overwritten everytime an upgrade of the vim packages is performed.
" It is recommended to make changes after sourcing debian.vim since it alters
" the value of the 'compatible' option.

runtime! debian.vim

" Vim will load $VIMRUNTIME/defaults.vim if the user does not have a vimrc.
" This happens after /etc/vim/vimrc(.local) are loaded, so it will override
" any settings in these files.
" If you don't want that to happen, uncomment the below line to prevent
" defaults.vim from being loaded.
" let g:skip_defaults_vim = 1

" Uncomment the next line to make Vim more Vi-compatible
" NOTE: debian.vim sets 'nocompatible'.  Setting 'compatible' changes numerous
" options, so any other options should be set AFTER setting 'compatible'.
"set compatible

" Vim5 and later versions support syntax highlighting. Uncommenting the next
" line enables syntax highlighting by default.
if has("syntax")
  syntax on
endif

" If using a dark background within the editing area and syntax highlighting
" turn on this option as well
"set background=dark

" Uncomment the following to have Vim jump to the last position when
" reopening a file
"au BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g'\"" | endif

" Uncomment the following to have Vim load indentation rules and plugins
" according to the detected filetype.
"filetype plugin indent on

" The following are commented out as they cause vim to behave a lot
" differently from regular Vi. They are highly recommended though.
"set showcmd		" Show (partial) command in status line.
"set showmatch		" Show matching brackets.
"set ignorecase		" Do case insensitive matching
"set smartcase		" Do smart case matching
"set incsearch		" Incremental search
"set autowrite		" Automatically save before commands like :next and :make
"set hidden		" Hide buffers when they are abandoned
"set mouse=a		" Enable mouse usage (all modes)

" set command for clipboard
vnoremap ;x :!/mnt/c/Windows/System32/clip.exe<CR>
vnoremap ;y :!/mnt/c/Windows/System32/clip.exe<CR>u
nnoremap ;p :read !/mnt/c/Windows/System32/paste.exe<CR>i<BS><ESC>l

" Source a global configuration file if available
if filereadable("/etc/vim/vimrc.local")
  source /etc/vim/vimrc.local
endif

function MatchCharacter(prev)
	if a:prev == '('
		return ')'
	elseif a:prev == '['
		return ']'
	elseif a:prev == '{'
		return '}'
	elseif (a:prev == '"') || (a:prev == "'")
		return a:prev
	else
		return "\<Nop>"
	endif
endfunction

inoremap ( ()<Left>
inoremap [ []<Left>
inoremap { {}<Left>
inoremap ' ''<Left>
inoremap " ""<Left>

inoremap <BS> <c-r>=AutoDelete()<CR>
function AutoDelete()
	let prev = getline('.')[col('.')-2]
	if getline('.')[col('.')-1] == MatchCharacter(prev)
		return "\<ESC>2s"
	else
		return "\<BS>"
	endif
endfunction

set showcmd
set number
set cindent
set autoindent
set tabstop=4
set shiftwidth=4
set softtabstop=4
set noexpandtab
set mouse=a
set foldenable
set foldmethod=manual
set cc=80
colorscheme ron

nnoremap <F9> :!clear<CR><CR>:w<CR>:!g++ % -o %:r.exe -std=c++11 -O2 -Wall -Wconversion -Wshadow<CR>
nnoremap <F10> :!clear<CR><CR>:!time ./%:r.exe<CR>
nnoremap <C-b> :!clear<CR><CR>:w<CR>:!g++ % -o %:r.exe -std=c++11 -Wall -Wconversion -Wshadow -fsanitize=undefined -g<CR>

inoremap <CR> <c-r>=BraceAutoNewline()<CR>
function BraceAutoNewline()
	if getline('.')[col('.')-2] == '{' && getline('.')[col('.')-1] == '}'
		return "\<CR>\<ESC>O"
	else
		return "\<CR>"
	endif
endfunction

if &term =~ "xterm"
	let &t_SI = "\<ESC>[5 q"
	let &t_SR = "\<ESC>[5 q"
	let &t_EI = "\<ESC>[5 q"
endif

autocmd VimLeave * :!echo -ne "\033[1 q"

如果还有什么奇怪的东西那就是 clip.exepaste.exe 。因为 wsl 没有 g e d i t \rm gedit gedit,最好能直接复制到系统剪贴板。可见此文,大体来说就是调用 Windows \text{Windows} Windows 自带程序 clip.exe 来实现剪切。不自带 paste.exe,可以下载,也可以就用 Shift+Insert,因为 L i n u x \rm Linux Linux 下这也是很好的选择。——不过我的笔记本没有小键盘……

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-05-08 08:30:52  更:2022-05-08 08:31:52 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 18:25:41-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码