You can obtain the major mode by using following snippet:
(buffer-local-value 'major-mode (current-buffer))
You can obtain the major mode by using following snippet:
(buffer-local-value 'major-mode (current-buffer))
Emacsのデフォルトパッケージbsに同梱されているコマンド、bs-cycle-nextとbs-cycle-prevを使う。
(global-set-key (kbd "C-<tab>") 'bs-cycle-next) (global-set-key (kbd "C-S-<tab>") 'bs-cycle-previous)
同様の機能はiflipbというパッケージによっても提供されている。
emacs.rubikitch.com
iflipbはOS提供のAlt-TAB(MacだとCommand-TAB)と同様の挙動であり、こちらが好みの方はどうぞ。
関数の本体はどこかにあった設定を参考にさせていただいた。
my-dictが表題に沿った関数。my-dict2は自分で検索語句を入力する関数。
(defun my-dict () (interactive) (let ((url (concat "dict://" (read-from-minibuffer "Search: " (current-word)))) (browse-url-browser-function 'browse-url-default-browser)) (browse-url url))) (defun my-dict2 (key) (interactive "MSearch: ") (let ((url (concat "dict://" key)) (browse-url-browser-function 'browse-url-default-browser)) (browse-url url))) (global-set-key (kbd "C-: C-d") 'my-dict) (global-set-key (kbd "C-: C-s") 'my-dict2)
表題について、以下のElispを見つけたので紹介する。
frame-movementというパッケージである。
github.com
本パッケージにより、'frame-movement/select-next-frame' (次のフレームに移動)と 'frame-movement/select-prev-frame'(前のフレームに移動)という2つのコマンドが提供される。私はsmartrepと組み合わせて以下のように設定してみた。
(smartrep-define-key global-map "C-x 5" '(("C-o" . 'other-frame) ("C-n" . 'frame-movement/select-next-frame) ("C-p" . 'frame-movement/select-prev-frame)))
PyQt5のスライダーを使って、簡易版リアルタイムボイスチェンジャーのピッチとフォルマントを調整できるようにしたということ。スライダーのウィンドウを閉じれば終了する。
当初はTkinterを使う予定だったが、どうにもうまくいかなかったので、PyQt5にした。現状、UIまわりは雑だが、とりあえず動いたので良しとする。
gist.github.com
表題の通り。
前回の記事でキー入力を監視できるようになったので、特定のキーが押されたらピッチの上下('u' と 'd')、などの機能を追加したということ。
以前の記事で紹介したPyWorldによるスクリプトは、実行を終了するときはCommand + Cなどの強制終了が必要だったが、あまりスマートなやり方ではなかった。
tam5917.hatenablog.com
そこで、キー入力を監視して、特定のキー(ESC or 'q')が押下されたらスクリプトを終了するように改良した、という話。
実行環境はMac 10.13.6。Python 3.7.3。PyAudio, PyWorld, Numpyは導入済み。
キー入力監視にはライブラリpynput を用いる。
pip3 install pynput
改良したスクリプト(real_time_vc_keylog.py)は以下。
gist.github.com
MacOSのターミナルで上記のスクリプトを実行する際の注意点として、
というわけで、以下のコマンドラインで実行すると、音声を変換しつつ、キー入力を監視し続ける。冒頭に述べたとおり、ESC or 'q' で 終了になる。
sudo python3 real_time_vc_keylog.py 2> /dev/null
グローバル変数を使うので、これもまたスマートではないが、とりあえず動作したので良しとする。
本スクリプトで実装したキー入力の監視機能は以下を参考にしました。ありがとうございました。
PyAudioとpyworldの連携ができますた^^ · GitHub