如题, 和在 Ubuntu 系统上使用有没有什么较大的差异?
没用过spacemacs。用自己的配置在wsl上试过,操作系统配置上有些区别,emacs本身感觉没什么差异。
还不如直接emacs for windows, 我安装了WSL,只有基本功能,其他很多功能都用不了的,不能当做完全的linux.
vcxsrv开xserver,基本上gui程序也都没有问题,但是涉及到硬件都有问题,比如没声音,显卡驱动,网速慢等等,但基本的emacs应该没问题。
我试了下, 中文输入有问题啊,你怎么解决的呢?
跟linux上一样用的fcitx下的rime输入法,在wsl中启动fcitx就好了。麻烦的是快捷键,设置autohotkey在vcxsrv窗口下屏蔽win10本身的输入法切换,而切换rime;在wsl外面还是win10本身的输入法切换。以前没折腾过autohotkey,感觉还行,不是太麻烦。
能不能贴一下你的详细配置呢? 昨天鼓捣了一天还是没能解决中文输入的问题,而且在 spacemacs 下的 SPC 键好像失效了, 按下 SPC 就会弹出感觉像 fcitx 的输入法名称窗口.
主要是平时很多东西还是在 Linux 下要方便很多, 但是在 Windows 上又有很多软件是要用的,比如 QQ, PD, Office 等… 现在的电脑开启虚拟机就会比较卡,想要都满足要求还是比较麻烦的
比较乱,凑合看吧。
Autohotkey
在vcxsrv窗口里面取消系统本身快捷键的占用。
#Return::Run, bash
#e::Run, ::{20d04fe0-3aea-1069-a2d8-08002b30309d}, , Max
#+e::Run, *RunAs "tc", , Max
<#Tab::AltTab
; RunOrActivateOrMinimizeProgram
EnvGet, userProfile, USERPROFILE
RunOrActivateOrMinimizeProgram(Program, WorkingDir="", WindowSize="")
{
SplitPath Program, ExeFile
Process, Exist, %ExeFile%
PID = %ErrorLevel%
if (PID = 0)
{
Run, %Program%, %WorkingDir%, %WindowSize%
}
else
{
SetTitleMatchMode,2
DetectHiddenWindows, Off
IfWinActive, ahk_pid %PID%
WinMinimize, ahk_pid %PID%
Else
IfWinExist, ahk_pid %PID%
WinActivate, ahk_pid %PID%
Return
}
}
#x::RunOrActivateOrMinimizeProgram("C:\Program Files\VcXsrv\vcxsrv.exe", UserProfile)
#+f::RunOrActivateOrMinimizeProgram("C:\Program Files (x86)\Mozilla Firefox\firefox.exe", UserProfile)
#IfWinActive ahk_class VcXsrv/x
{
!Tab::ControlSend, , !{Tab}, VcXsrv Server - Display xxx-PC:0.0
#Tab::ControlSend, , #{Tab}, VcXsrv Server - Display xxx-PC:0.0
#Return::ControlSend, , #{Return}, VcXsrv Server - Display xxx-PC:0.0
#+Return::ControlSend, , #+{Return}, VcXsrv Server - Display xxx-PC:0.0
#^Return::ControlSend, , #^{Return}, VcXsrv Server - Display xxx-PC:0.0
^Space::ControlSend, , ^{Space}, VcXsrv Server - Display xxx-PC:0.0
#a::ControlSend, , #a, VcXsrv Server - Display xxx-PC:0.0
#s::ControlSend, , #s, VcXsrv Server - Display xxx-PC:0.0
#d::ControlSend, , #d, VcXsrv Server - Display xxx-PC:0.0
#f::ControlSend, , #f, VcXsrv Server - Display xxx-PC:0.0
#g::ControlSend, , #g, VcXsrv Server - Display xxx-PC:0.0
#h::ControlSend, , #h, VcXsrv Server - Display xxx-PC:0.0
#j::ControlSend, , #j, VcXsrv Server - Display xxx-PC:0.0
#k::ControlSend, , #k, VcXsrv Server - Display xxx-PC:0.0
#l::ControlSend, , #l, VcXsrv Server - Display xxx-PC:0.0
#q::ControlSend, , #q, VcXsrv Server - Display xxx-PC:0.0
#w::ControlSend, , #w, VcXsrv Server - Display xxx-PC:0.0
#t::ControlSend, , #t, VcXsrv Server - Display xxx-PC:0.0
#y::ControlSend, , #y, VcXsrv Server - Display xxx-PC:0.0
#u::ControlSend, , #u, VcXsrv Server - Display xxx-PC:0.0
#i::ControlSend, , #i, VcXsrv Server - Display xxx-PC:0.0
#o::ControlSend, , #o, VcXsrv Server - Display xxx-PC:0.0
#p::ControlSend, , #p, VcXsrv Server - Display xxx-PC:0.0
#+p::ControlSend, , #+p, VcXsrv Server - Display xxx-PC:0.0
#^p::ControlSend, , #^p, VcXsrv Server - Display xxx-PC:0.0
#z::ControlSend, , #z, VcXsrv Server - Display xxx-PC:0.0
#c::ControlSend, , #c, VcXsrv Server - Display xxx-PC:0.0
#v::ControlSend, , #v, VcXsrv Server - Display xxx-PC:0.0
#b::ControlSend, , #b, VcXsrv Server - Display xxx-PC:0.0
#n::ControlSend, , #n, VcXsrv Server - Display xxx-PC:0.0
#m::ControlSend, , #m, VcXsrv Server - Display xxx-PC:0.0
#+m::ControlSend, , #+m, VcXsrv Server - Display xxx-PC:0.0
#^m::ControlSend, , #^m, VcXsrv Server - Display xxx-PC:0.0
#0::ControlSend, , #0, VcXsrv Server - Display xxx-PC:0.0
#1::ControlSend, , #1, VcXsrv Server - Display xxx-PC:0.0
#2::ControlSend, , #2, VcXsrv Server - Display xxx-PC:0.0
#3::ControlSend, , #3, VcXsrv Server - Display xxx-PC:0.0
#4::ControlSend, , #4, VcXsrv Server - Display xxx-PC:0.0
#5::ControlSend, , #5, VcXsrv Server - Display xxx-PC:0.0
#6::ControlSend, , #6, VcXsrv Server - Display xxx-PC:0.0
#7::ControlSend, , #7, VcXsrv Server - Display xxx-PC:0.0
#8::ControlSend, , #8, VcXsrv Server - Display xxx-PC:0.0
#9::ControlSend, , #9, VcXsrv Server - Display xxx-PC:0.0
#-::ControlSend, , #-, VcXsrv Server - Display xxx-PC:0.0
#=::ControlSend, , #=, VcXsrv Server - Display xxx-PC:0.0
}
locales
发行版用的是debian,ubuntu上改locales还是有点不一样。
- 在/var/lib/locales/supported.d/local下添加中文相关locales。
- sudo locale-gen
- 在/etc/default/locale下添加LANG=zh_CN.UTF-8。
.bashrc
把linux系统里面.xinitrc里面的配置放在了.bashrc。
export DISPLAY=localhost:0.0
export PATH="/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:$PATH"
export MANPATH="/usr/local/man:$MANPATH"
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
PATH="$HOME/bin:$PATH"
fi
if [ -d "$HOME/.local/bin" ] ; then
PATH="$HOME/.local/bin:$PATH"
fi
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS="@im=fcitx"
# Launch Zsh
if [ -t 1 ]; then
exec zsh
fi
start.sh
启动bash之后运行这个脚本进入桌面。 用的是dwm窗口管理器,发现conky关于硬件的信息都获得不了,索性都注销了,懒得折腾了。
conky | while true; read line; do xsetroot -name "$line"; done &
fcitx &
dunst &
exec dwm
默认的14.04版本存在一些问题,升级到16.04之后大多数都自动解决了。
非常感谢,
好方法. 目前也是考虑结合docker+vcxsrv来跑emacs,没想清楚中文输入怎么解决. 原来可以Autohotkey. 真棒