Windows混合Linux使用
需求分析
对于由于Linux图形化界面太难用或者软件适配性或者总之是不想用Linux,只是馋Linux Terminal的我来说,确实需要使用Windows而且在Windows下尽量还原Linux的Terminal体验,总之现在配出来的效果确实还可以,基本满足我的需求甚至超越了原来Linux下的体验。
界面展示
软件介绍
Far manager + git bash + ConEmu + gvim
- Far manager - 毛子软件,首先来说对中文的适配并不友好,不过经过调整还是可以很好的使用,其实我并不知道为什么这么好用的东西在国内知名度会这么低
- Git bash - 提供一些简单的Linux命令,只是为了不去学cmd指令
- ConEmu - 终端集成、很nb
- gvim - 会用vim当然是附加条件,即使不会也可以很方便的用其他文本编辑器替代,只是 vim 显然更契合终端
- 此处并没有选择 wsl 是因为 Far manager 的终端内置的无法更改,我查了很多资料,唯一有一篇提到了 linux commands 但是其提供的方法好像并不适用,因为 Windows 并不能在 cmd 直接执行 wsl 的 commands,此处给出链接
全面安装配置
-
将系统编码转换为 utf-8,此步骤并不必要,如果你是新装机或者完全正版正规软件的使用者的话建议转换,如果是已经安装且需要使用一些很旧的垃圾软件(比如按键精灵)就算了,因为并不是对所有软件稳定生效的。在Windows时区设置中更改。
-
安装Far manager,官方网站https://www.farmanager.com/,打开可能会出现错位等现象
-
安装ConEmu,官方网站https://conemu.github.io/
-
安装Git,Git bash是git的附带软件,官方网站https://git-scm.com/
-
将Git的usr/bin目录加进环境变量,里面包含了一些简单的bash commands能在cmd下直接使用,如果安装时没有改动默认设置的话将会是
-
安装vim,官方网站https://www.vim.org/download.php下载msi的安装版本安装即可
-
配置vim环境变量,如果安装时没有改动默认设置的话将会是
-
配置ConEmu为管理员权限打开
-
启动ConEmu,选择 Far 终端打开
-
鼠标移动到Far manager标题栏显示出标题对其进行配置Options中是各种基础配置
-
我的配置
-
关联Vim编辑,如果想用别的编辑器需要将可执行文件放入环境变量
-
Command中有个File associations是文件关联,点开按键盘上的Insert键即可进行增加配置,表示的是对文件按回车键会发生的事情,比如我的C++编译指令,我的C++编译器使用的是mingw,我就不放链接了,sourceforge真的太恶心人了,可以直接使用Codeblocks\devc++里面的添加到环境变量即可
基本使用
- 左右两个窗口,tab键左右切换
- 下方一条是终端口,支持Command history
- F4 启用编辑器编辑文件,配置成vim就是vim,windows的vim配置文件在 %USERPROFILE%/_vimrc 默认没有该文件需要手动创建,基本配置和Linux下没什么区别(当然其实还是有很多区别的,就简单使用来说set就行了)
- shift+F4 创建新文件并编辑,如果已有会打开编辑
- F8 删除文件
- enter 使用文件关联程序打开文件,没有单独配置的会使用系统默认关联
- 右ctrl+shift+num 创建快捷切换目录,就是快捷拨号,创建后 右ctrl+num 即可打开该目录
- F5 左右窗口互相 copy,我相信用过 mt 文件管理器的人都会很熟悉这个模式而且真的非常方便好用
- alt+F2 切换盘符,当然直接 cd 也是可以的
- ctrl+o 切换全面终端,在terminal IO的时候会用到
- F7 mkdir
- 总之快捷键直接看文档就有
- 还有很多plugin不过我除了内置的一个都没装
如果是笔记本自带键盘还要关掉Fn键不然太麻烦了(另外一提关掉Fn并不是真的禁用Fn,而是原来你的Fn+Fi效果和Fi替换,所以非常方便),具体方法是在BIOS中的Hotkey Mode改成Disable即可(联想玩家)
自此你的桌面所有图标都可以退休了,另外再一提
把任务栏移到右侧并自动隐藏,没关搜索功能的话win+q可以打开搜索,自此鼠标也半退休了
另外配上我的_vimrc文件
set nu
set backspace=2
set nobackup
set shiftwidth=4
set noswapfile
syntax on
set cindent
set tabstop=4
map <C-A> ggVG"+y
map <F5> :call Run()<CR>
func! Run()
exec "w"
exec "!g++ -Wall % -o %<"
exec "!./%<"
exec "del %<"
endfunc
:inoremap ( ()<ESC>i
:inoremap ) <c-r>=ClosePair(')')<CR>
:inoremap { {<CR>}<ESC>O
:inoremap } <c-r>=ClosePair('}')<CR>
:inoremap [ []<ESC>i
:inoremap ] <c-r>=ClosePair(']')<CR>
:inoremap " ""<ESC>i
:inoremap ' ''<ESC>i
function! ClosePair(char)
if getline('.')[col('.') - 1] == a:char
return "\<Right>"
else
return a:char
endif
endfunction