2019Jun6 Spacemacs on WSL を使い易く _|メニュー|_ _@ダイアログ@_ _{キーワード}_ _[キーボード]_ > ### += test --scroll-x ### > ~~~test > test()test()test()test()test()test()test()test()test()test()test()test()test()test()test()test()test()test()test()test()test()test()test()test()test()test()test() > ~~~ # ヘッダー壱 ## ヘッダー弐 ### ヘッダー参 #### ヘッダー四 ##### ヘッダー伍 ###### ヘッダー六 > &>|コラムなど用| > > かくかく > しかじか > > &>|コラムなど用| > > かくかく > しかじか > > &>|コラムなど用| > > かくかく > しかじか > > &> PRESS ANY KEY [前回のエントリー][ 001 ]で導入した Spacemacs on WSL が(非常に遅い以外[ 002 ])良い感じなので、少しだけブラッシュアップを図ります。 <http://tokunakimochi.blog.jp/archives/1073947210.html> ### WSL 側で IME を自動で ON `~/.zprofile` に以下の内容を追記します。X サーバが未起動だとトラぶる[ 003 ]様なのでチェックを入れています。 顔文字テスト (-_-;) 顔文字テスト (-_-;) 顔文字テスト ### += ~/.zprofile ### ~~~zsh if [[ $(/mnt/c/Windows/System32/tasklist.exe | grep vcxsrv | wc -l) ]]; then (fcitx-autostart > /dev/null 2>&1 &) fi ~~~ ### Windows から Spacemacs を直接起動 [VBScript][ 004 ] を活用すると、拡張子 `.vbs` で作成したスクリプトファイルをダブルクリックするなどして、Spacemacs が(WSL のターミナルを経由せずに)一発で起動可能になります。以下がコードです。上の zsh 同様、X サーバの起動チェックを最初にしています。日本語を含んでいるので、`Shift-JIS` で保存します。 ### += 任意の名前.vbs ### ~~~vbs Option Explicit Dim argArr: Set argArr = WScript.Arguments Dim xServerName: xServerName = "vcxsrv.exe" Dim oService: Set oService = CreateObject("WbemScripting.SWbemLocator").ConnectServer Dim colProcesses: Set colProcesses = oService.ExecQuery("SELECT * FROM Win32_Process WHERE Name = '" & xServerName & "'") Set oService = Nothing If colProcesses.Count = 0 Then MsgBox "先に X サーバを立ち上げてください。" & vbCrLf & "想定プロセス名は " & xServerName & " です。" Set colProcesses = Nothing WScript.Quit(1) End If Set colProcesses = Nothing Dim oShell: Set oShell = CreateObject("WScript.Shell") Dim strArgs: strArgs = "wsl zsh -c 'emacs'" If argArr.Count = 1 Then oShell.CurrentDirectory = argArr(0) End If oShell.Run strArgs, 0, false Set oShell = Nothing ~~~ ### Windows Explorer の右クリックメニューに登録 エクスプローラで開いているフォルダをカレントディレクトリとして起動するメニューをコンテキストメニューに登録します。ただし、*{レジストリ エディター (regedit)}* でレジストリを直接いじります。具体的には `HKEY_CURRENT_USER\Software\Classes\Directory\Background` 以下にキーを3階層追加します。以下は例です。 > `HKEY_CURRENT_USER\Software\Classes\Directory\Background\shell\wsl-emacs\command` > > -- 追加するキーの例 `\` は階層を表しています。なぜ「例」かと言うと、作成するレジストリキーの中に命名の自由を認められたキーがあるからです。以下の表で確認してください。 | 新規キー名 | 命名規則 | 編集の必要性 | |:--------------------------------------:|:------------------------:|:------------------:| | ...\\Background\\**shell** | 規定値。変更不可 | 無し | | ...\\shell\\**wsl-emacs** | 任意の文字列 | あり | | ...\\wsl-emacs\\**command** | 規定値。変更不可 | あり | レジストリ エディターで新規キーを作成するには、左ペインで親キーを右クリック > *|新規(N)|* > *|キー(K)|* と手繰ります。また、表にある編集とは、キーにデータを付加することです。これは、右ペインの *{(既定)}* を右クリック > *|修正(M)...|* をクリックして、出現したダイアログの *{値のデータ(V):}* を編集します。以下にそれぞれの例を示します。 > ### += 値のデータ(V): ### > ~~~txt > Spacemacsをここで開く > ~~~ > > -- wsl-emacs キーの (既定) の「文字列の編集」の例 > ### += 値のデータ(V): ### > ~~~cmd > wscript.exe "C:\usr\bin\spacemacs.vbs" "%V" > ~~~ > > -- command キーの (既定) の「文字列の編集」の例 前者はコンテキストメニューに実際に表示される文字列です。後者は上で作成したスクリプトファイルの実際の絶対パスに置き換えてください。これで、エクスプローラからカレントディレクトリを指定して Spacemacs を起動することができるようになりました。 #### 参考サイト * WSL 側で IME を自動で ON * [WSLでMozcで日本語入力](http://utimukat55.blogspot.com/2018/11/wslmozc.html "気づいたらガジェ獣") * Windows から Spacemacs を直接起動 * [Question: how to create a windows shortcut for a Graphic linux app?](https://github.com/Microsoft/WSL/issues/3404#issuecomment-408094942 "Issue #3404 · microsoft/WSL · GitHub") * [Some notes on "Configuring a pretty and usable terminal emulator for WSL"](https://gist.github.com/GregRos/7e9c67f150c9dc80843bdf85028f1789 "GitHub") * [[VBScript] 指定した名前のプロセスが存在するか調べる](https://yozda.exblog.jp/15574326/ "( どーもボキです > Z_ ̄∂") * Windows Explorer の右クリックメニューに登録 * [任意のフォルダを右クリックして、Cygtermで開く](http://d.hatena.ne.jp/kkotaro0111/20120521/1337595346 "UTAGEWORKS") * [[Shift]+右クリックメニューに「コマンドウィンドウをここで開く」を復活させる方法](https://www.atmarkit.co.jp/ait/articles/1709/15/news025.html "Tech TIPS - @IT") * [コンテキストメニューに任意のアプリケーションを追加する](https://laboradian.com/add-item-to-context-menu/ "ラボラジアン") * [右クリックからmintty(bash)を開く](http://espresso3389.hatenablog.com/entry/20111001/1317466533 "espresso3389の日記") ![crystaldiskinfo][ crystaldiskinfo ] [ crystaldiskinfo ]: https://cldup.com/ZAGF7klv5F.png "#dl {lbox:[]}" [ 001 ]: http://tokunakimochi.blog.jp/archives/1073947210.html [ 002 ]: #f "{WSL 2 が発表された}(https://devblogs.microsoft.com/commandline/announcing-wsl-2/ 'Announcing WSL 2 | Windows Command Line Tools For Developers')ので気長に待ちましょう" [ 003 ]: #f "単純に fcitx-autostart を呼ぶと X サーバなしではシェルが立ち上がってこない" [ 004 ]: https://msdn.microsoft.com/ja-jp/library/cc392489.aspx "Microsoft Visual Basic Scripting Edition" タグ :SpacemacsEmacsFcitxVBScriptWSLWSL1
2019Mar31 Spacemacs on Windows Subsystem for Linux ### 動機 以前から興味のあった WSL の導入ですが、[NTEmacs @ ウィキ][ 01 ]のトップページの言及 > 今の所、Windows で emacs を使うには WSL's emacs on VcXsrv がベストな選択だと思っています。 > (中略) > WSL 上で emacs を使う場合の不便な点は概ね解消されていると思います。 > > -- [NTEmacs @ ウィキ - 【お知らせ】][ 01 ] と、[coLinux][ 02 ] の導入に逡巡している間に開発休止してしまったという苦い記憶から重い腰を上げてみました、、 環境は * システムの種類 * 64 ビット オペレーティング システム、x64 ベース プロセッサ * エディション * Windows 10 Home * バージョン * 1809 * ローカル アカウント * [Scoop][ 03 ]、[Cmder][ 04 ] インストール済み * モニター * BenQ X2200W * 22インチ * 1680 × 1050 ドット (-。-;) [ 05 ] です [ 01 ]: https://www49.atwiki.jp/ntemacs/ "NTEmacs @ ウィキ - アットウィキ" [ 02 ]: http://www.colinux.org/ "Cooperative Linux" [ 03 ]: https://scoop.sh/ "A command-line installer for Windows" [ 04 ]: http://cmder.net/ "Portable console emulator for Windows" [ 05 ]: #f "2008年1月30日発売{らしい}(https://pc.watch.impress.co.jp/docs/2008/0123/benq.htm 'PC Watch')です。。。" 続きを読む タグ :SpacemacsUbuntuVcXsrvMozcurxvtHomebrewEmacsWSLWSL1