Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

プレフィックスなしに割り当てているキーバインドはありますか #9

Open
niku opened this issue Feb 14, 2013 · 9 comments

Comments

@niku
Copy link
Member

niku commented Feb 14, 2013

C-xC-cを押さずに (C-x fC-c c iとせずに)
1 つの入力 ( 例 :C-;) でコマンドを呼び出せるように設定して
重宝しているものがあれば教えてください。

@syohex
Copy link
Member

syohex commented Feb 14, 2013

Gitリポジトリ内のファイル一覧からファイルを選択する helm-sourceについては、
C-;に割り当てていますが、その他は使っていません。そのために使えそうなキーの
大半が no-windowな環境では使えないためです(C-;は GUI版専用です。no-windowは
カーネル開発のサーバに入っての作業に利用しています)。

私はそのため smartrepを活用しています。
連続で押しそうな操作(移動等)については、元々のキーバインドをなるべく変えず smartrepを
使うようにしています。それだと大抵 no-windowな環境でも使えます。

例えば以下のような設定であれば, C-cを押したあと、f、bのを押すだけで、
org-shiftright, org-shiftleftを繰り返し実行することができます。

(smartrep-define-key
         org-mode-map "C-c" '(("f" . 'org-shiftright)
                              ("b" . 'org-shiftleft)))

ただ GUI専用で使うというのであれば、かなり自由にキーが割当てられるので、
C-;とか C-:とか積極的に使っていくのがよいと思います。

@niku
Copy link
Member Author

niku commented Feb 14, 2013

私の場合

  • M-x helm-M-x
  • M-y helm-show-kill-ring
    • キルリングを可視化して表示してくれる
  • C-; helm-for-files
    • 今開いているバッファ、最近使ったファイル、カレントディレクトリのファイルなどから、次に開くバッファを選択できる
  • C-o helm-imenu
    • 設定不要でアウトラインを表示できる
    • 主に org-mode でのアウトライン表示、ruby の rspec の spec 一覧表示 などに使っています
  • C-M-l magit-status
    • git を利用しており、こまめにコミットするため、ステータス表示を多用するので、呼び出しやすくしている

でした。

@niku
Copy link
Member Author

niku commented Feb 14, 2013

ターミナルでは、直接は C-; が使えないのでしたね。

私の場合は以下の URL を参考に、
ターミナルを利用している際にキーボードでC-;と打つと、
ターミナルへはC-x @ c ;が送られるようにして、
ターミナル上の Emacs でC-;を利用しています。

ターミナルエミュレータに"Ctrlキー+何か"で送信できる範囲
ターミナル上のEmacsで本来使えない"Ctrlキー+何か"を使う方法

@syohex
Copy link
Member

syohex commented Feb 14, 2013

C-M-がありならいくつかあります。あと設定ファイルを再確認してみたところ
それ以外にもいくつか設定していました。

  • C-M-s helm-occur (正規表現検索は C-u C-s, C-u C-rで代用できるので)
  • C-M-z helm-resume(もともと何も割当たっていない)
  • M-y helm-show-kill-ring(元々の機能が微妙なので置き換え)

あとは no-windowを考慮し、大体 2ストロークを活用しています。
特に no-windowでも問題なく使える M-gCtrl-qを活用しています。
Ctrl-qは以下のような感じで設定しています。

;; Ctrl-q map
(defvar my/ctrl-q-map (make-sparse-keymap)
  "My original keymap binded to C-q.")
(defalias 'my/ctrl-q-prefix my/ctrl-q-map)
(define-key global-map (kbd "C-q") 'my/ctrl-q-prefix)
(define-key my/ctrl-q-map (kbd "C-q") 'quoted-insert)
(define-key my/ctrl-q-map (kbd "C-a") 'text-scale-adjust)
;;; その他いろいろ割り当てている。

@kai2nenobu
Copy link
Member

  • C-t で other-window-or-split
    • ド定番ですが,ウィンドウ分割かウィンドウ移動します.前置引数をうけとれるように少し改造しています.
  • C-x 0C-x 5 と同じ機能を C-0C-5
    • ウィンドウの分割が簡単にできるようになります.C-x 4C-x 5 がワンストロークになるのも地味に便利.やはり端末では使えませんが.
  • M-digit で elscreen-goto
    • elscreen の対応する数字のスクリーンに移動します.
  • M-y に helm-show-kill-ring
    • syohex さんと同様です.

あとは key-chord.el で色々割り当ててます.一応プレフィックスなしといえば
そうですが,ワンストロークとは言わなさそう.

@wachikun
Copy link

ちょっと違うけど、補完しやすい関数名でラップするとかはやってます。
大文字の OV とか M-x O で呼び出せるとか。(2ストロークですけどね)

@takaxp
Copy link
Member

takaxp commented Feb 18, 2013

M-0 で画面左上に移動
M-1 でウィンドウを左に移動
M-2 で画面中央に移動
M-3 でウィンドウを右に移動

F2 で縦の長さを3段階に調節(cyclicに)
F1 で画面上部に移動
Shift+F1 で画面下部に移動

としています.左手で画面上の位置をほぼコントロールできます.

https://github.com/takaxp/frame-ctr/blob/master/frame-ctr.el
を利用しています.

http://pastelwill.jp/wiki/doku.php?id=emacs:init.el#frame-ctrel_キーボードでフレームの場所を移す
に設定例があります.

@shishi
Copy link
Member

shishi commented Feb 18, 2013

M-y や C-; は今まで挙げられた方と同じ helm-show-kill-ring や helm-for-files にあたってます。
他にも一番頻繁に使うのだとウィンドウ移動を C-z に当てています。

@k1LoW
Copy link
Member

k1LoW commented Feb 18, 2013

key-chord.elでいろいろ割り当てています。

hjの同時押しでanythingなど。キーボートのキーとキーの間も活用するイメージです。

C-tでshell-popを設定して、Macの旧Visor(TotalTerminal http://totalterminal.binaryage.com/ ) 的な使い方もしています

もう時代はhelmなんですね。。。移行コストが高すぎる。。。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

7 participants