まさかの日記

最近まともな文章しか書けなくなってきました

カテゴリ:技術系もろもろ > Windows

これ以前結構調べたのですがその時は見つけきれず、なぜか今回はサクッと見つけることができた。


アクティブなAutoHotkeyスクリプトを停止するにはどうすればよいですか?
https://jpn.projectbackpack.org/393257-how-do-i-stop-an-ONTYZI


Windows の操作を Emacs のキーバインドで行うための設定 (AutoHotKey版) - NTEmacs @ ウィキ - atwiki(アットウィキ)
https://w.atwiki.jp/ntemacs/pages/20.html

その他若干修正して今使っているものを全量貼っておきます。

;;
;; An autohotkey script that provides gtk-emacs-key-theme like keybinding on Windows
;; forked from https://github.com/usi3/emacs.ahk
;;
#InstallKeybdHook
#UseHook

; The following line is a contribution of NTEmacs wiki http://www49.atwiki.jp/ntemacs/pages/20.html
SetKeyDelay 0

; Applications you want to disable emacs-like keybindings
; (Please comment out applications you don't use)
is_target()
{
IfWinActive,ahk_class ConsoleWindowClass ; Cygwin
Return 1
IfWinActive,ahk_class MEADOW ; Meadow
Return 1
IfWinActive,ahk_class cygwin/x X rl-xterm-XTerm-0
Return 1
IfWinActive,ahk_class MozillaUIWindowClass ; keysnail on Firefox
Return 1
; Avoid VMwareUnity with AutoHotkey
IfWinActive,ahk_class VMwareUnityHostWndClass
Return 1
IfWinActive,ahk_class Vim ; GVIM
Return 1
; IfWinActive,ahk_class SWT_Window0 ; Eclipse
; Return 1
; IfWinActive,ahk_class Xming X
; Return 1
; IfWinActive,ahk_class SunAwtFrame
; Return 1
; IfWinActive,ahk_class Emacs ; NTEmacs
; Return 1
; IfWinActive,ahk_class XEmacs ; XEmacs on Cygwin
; Return 1
Return 0
}

;
; b
; move cursor backward
;
^b::
If is_target()
Send %A_ThisHotkey%
Else
Send {Left}
Return

;
; b
; move cursor backward selecting chars
;
+^b::
If is_target()
Send %A_ThisHotkey%
Else
Send +{Left}
Return

;
; f
; move cursor forward
;
^f::
If is_target()
Send %A_ThisHotkey%
Else
Send {Right}
Return

;
; f
; move cursor forward selecting chars
;
+^f::
If is_target()
Send %A_ThisHotkey%
Else
Send +{Right}
Return

;
; p
; move cursor up
;
^p::
If is_target()
Send %A_ThisHotkey%
Else
Send {Up}
Return

;
; p
; move cursor up selecting chars
;
+^p::
If is_target()
Send %A_ThisHotkey%
Else
Send +{Up}
Return

;
; n
; move cursor down
;
^n::
If is_target()
Send %A_ThisHotkey%
Else
Send {Down}
Return

;
; n
; move cursor down selecting chars
;
+^n::
If is_target()
Send %A_ThisHotkey%
Else
Send +{Down}
Return

;
; d
; delete following char
;
^d::
If is_target()
Send %A_ThisHotkey%
Else
Send {Del}
Return

;
; h
; delete previous char(Backspace)
;
^h::
If is_target()
Send %A_ThisHotkey%
Else
Send {BS}
Return

;
; a
; move cursor beginning of current line
;
^a::
If is_target()
Send %A_ThisHotkey%
Else
Send {Home}
Return

;
; a
; move cursor beginning of current line selecting chars
;
+^a::
If is_target()
Send %A_ThisHotkey%
Else
Send +{Home}
Return

;
; e
; move cursor end of current line
;
^e::
If is_target()
Send %A_ThisHotkey%
Else
Send {End}
Return

;
; e
; move cursor end of current line selecting chars
;
+^e::
If is_target()
Send %A_ThisHotkey%
Else
Send +{End}
Return

;
; b
; move cursor one word backward
;
!b::
If is_target()
Send %A_ThisHotkey%
Else
Send ^{Left}
Return

;
; b
; move cursor one word backward selecting chars
;
+!b::
If is_target()
Send %A_ThisHotkey%
Else
Send +^{Left}
Return


;
; c
; copy string
;
^c::
if is_target()
Send %A_ThisHotkey%
Else
; kill_ring_save()
Send %A_ThisHotkey%
}
Return
;
; f
; move cursor one word forward
;
!f::
If is_target()
Send %A_ThisHotkey%
Else
Send ^{Right}
Return

;
; f
; move cursor one word forward selecting chars
;
+!f::
If is_target()
Send %A_ThisHotkey%
Else
Send +^{Right}
Return

;
; w
; cut
;
^w::
If is_target()
Send %A_ThisHotkey%
Else
Send ^x
Return

;
; y
; paste
;
^y::
If is_target()
Send %A_ThisHotkey%
Else
Send ^v
Return

;
; k
; delete chars from cursor to end of line
;
^k::
If is_target()
Send %A_ThisHotkey%
Else
Send {ShiftDown}{END}{SHIFTUP}
Sleep 50
Send {Del}
;Send ^x
Return

;
; u
; delete chars from cursor to beginning of line
;
^u::
If is_target()
Send %A_ThisHotkey%
Else
{
Send {ShiftDown}{HOME}{SHIFTUP}
Sleep 50
Send {Del}
;Send ^x
}
Return

;
; m
; new line(enter)
;
^m::
If is_target()
Send %A_ThisHotkey%
Else
Send {Enter}
Return

;
; r
; find
;
^r::
If is_target()
Send %A_ThisHotkey%
Else
Send ^f
Return

;
; \
; select all
;
^\::
If is_target()
Send %A_ThisHotkey%
Else
Send ^a
Return

以下備忘。


この方法ではだめだった

■Parallels DesktopでJIS配列キーボードを認識させる方法【macOSの場合】 | Web漂流伝-R - 人として生きる – https://hyoryuden.com/macintosh/mac-hard/parallels-keyboard/


ていうかこれ普通のWindows10の場合と同じ話で、、、

言語の設定

「日本語」のオプション

「ハードウエアキーボードレイアウト」 で106を選択。

みたいな話だった。

で、これができると普通に、106キーボード(HHKB BT)で「かな」で日本語IMEオン、「英数」でオフ、が普通に動いている。Karabinarが効いてるのか、どうなのかはよくわからない。

configで設定すると、最小化したときにガベージコレクタ的なものが動いてメモリ占有量が減らせます、みたいなのは既出だけど、じゃあ勝手に最小化してくれればいいんじゃ?とか思って探したら、良さそうなのがあった。


Lifehacker Code: Swept Away (Windows)
Windows only: Swept Away is a simple system tray utility that automatically minimizes applications that you aren't using.

In short, I'm kind of a desktop window packrat - that is to say, I hate closing windows that I know I'll be using later. However, I don't like all of the distraction and clutter a desktop full of open windows leaves me with. Sure I could minimize every window but the ones I'm using, but I don't. Now, rather than having to think about it, Swept Away keeps my desktop clean for me.



とりあえず使ってみたけど、何の前触れもなくウインドウが最小されるのが少し気持ち悪い。慣れればたいしたこと無いのかもしれないが。

Windows上でXKeymacsと併用したときに、Ctrl+SPACE -> Ctrl+n で複数行選択していくと、一行ごとにATOKとIMEとが切り替わってしまうという謎の動作が起きている。このため評価期間終了と共ににアンインストールした。

操作感としてはWindows標準のものより軽快感があり快適。上記の問題が無ければ購入を検討する可能性あり。

昼飯を食べながらおもむろにインストローリング開始。



まずはMeadowげと
Meadow/Emacs memo: 設定済み Meadow を使ってみよう
そんな人のために,とりあえず設定済みのものを提供しようというものです.



さらに、Cygwin(久々)
よくわからんのでDevel全体をInstallした。
考えすぎると頭がかゆくなる Meadow + cygwin + gauche でwindowsにおける快適なscheme実行環境を構築
gaucheのコンパイルのためにmakeが必要になるのでcygwinのインストーラでdevel -> makeをチェックしておくこと。



Windows上ではSLIBというものを使うらしい。他のOSじゃ要らないのに。
SLIB
Obtain slib-3b1-1.exe (1.1.MB) and run.


2008/3/17追記 「他のOSじゃ要らない」は嘘でした。すいません。
404 Blog Not Found:scheme - traceとslib
な、なんだってー!?そう。slibはgoshをはじめ、scheme implementationとは別売り、もとい別配布なのであった。FreeBSDのportsをまさぐると、slib-gaucheというportsが別にある。なーんだ。






ここが非常に参考になる。
考えすぎると頭がかゆくなる Meadow + cygwin + gauche でwindowsにおける快適なscheme実行環境を構築
ここを参考に、まずslibを落としてきてC:\cygwin\share\slibにインストール(slibを解凍して出来たフォルダをC:\cygwin\shareに突っ込むだけ)。


上記記事は一部間違い。突っ込み先は、正確には「c:\cygwin\usr\share」ですね。
デフォルトでは、SLIB自体はProgram Files下に作成される。



とかいってたら本家にこんな記述が
Gauche - A Scheme Interpreter
これは、Windows/MinGW用にGaucheをコンパイルしたバイナリのアーカイブです。 MinGW DLLも含まれているので、適当なディレクトリでunzipするだけで使えるはずです。 まだ実験段階であることに注意してください。システム系関数はほぼ動きませんし、 他にも動かないところが結構あると思います。それを承知の上で使って下さい。


これってどうなんだろ。Cygwin上であれば問題ないかな。というわけで続行。


.emacsの設定。
とりあえずこれを全部貼り付ける。
Karetta|Gaucheプログラミング(立読み版)|Emacsの設定
EmacsにはSchemeのコードを編集するためのメジャーモードである scheme-mode と、Emacsのバッファ内でSchemeインタプリタを実行するための cmuschemeとが含まれています。以下は .emacs の一例です。



さらにこれを貼り付け。というかgoshのパスを変更するだけ。
考えすぎると頭がかゆくなる Meadow + cygwin + gauche でwindowsにおける快適なscheme実行環境を構築
(setq gosh-program-name "C:/cygwin/usr/local/bin/gosh -i")



Windowsの環境変数PATHにC:\Cygwin\binを通してMeadowさんを再起動して、C-cS(Sは大文字)を入力すると起動〜


さらに、dot.emacs.jaっていうのがあるので、それをベースにして上記.emacs の設定とマージ。


ついでに、XKeymacsを使って「無変換」キーをALTキーに、「CapsLockキー」をCtrlキーにするとさらに快適(これはもともとそうなってるけど)




関連記事:
まさかの日記:[Gauche][Lisp]プログラミングGauche本 & バリケンのLisp日記

このページのトップヘ