質問

私はMacユーザーであり、Emacsを学ぶことにしました。私は読んで、手の負担を軽減し、 CTRL キーと CAPS LOCK キーを交換する必要があります。 Leopardでこれを行うにはどうすればよいですか。

また、ターミナルでは、 ESC キーを使用してメタを呼び出す必要があります。代わりにメタを呼び出すためにalt / optionキーを取得する方法はありますか?

更新:コントロールキーの方がずっと簡単にヒットしますが、メタキーも頻繁に使用されるので、MacBookやApple Keyboardでの位置も注目に値します。実際、コントロールキーの方が実際にヒットしやすいため、コントロールキーをリマップしてメタキーとして機能するようにしました。誰もがより良い/より標準的なソリューションを持っていますか?

役に立ちましたか?

解決

CTRLとCAPS LOCKの入れ替え

  1. システム環境設定
  2. に移動します
  3. キーボードを入力&em;マウス設定ペイン
  4. キーボードタブで、修飾キー...
  5. をクリックします
  6. Caps Lock Control のアクションを入れ替えます。

alt text

ALT / OPTIONをMETAとして使用する

  1. メニューバーで、ターミナル
  2. をクリックします
  3. [設定] ...
  4. をクリックします
  5. [設定]タブで、[キーボード]タブに移動します
  6. オプションをメタキーとして使用
  7. というラベルの付いたボックスをオンにします

alt text

それだけです! Emacsマスターになるための準備は万端です!

他のヒント

参照用に、テキストを移動するためのキーバインディングを以下に示します。

⌥ + ← -左に1単語移動
⌥ + → -1単語右に移動
⌥ + delete -戻る1つの単語を削除
Shift + ⌥ + delete -単語を1つ削除します
⌥ + ↑ -1段落上に移動
⌥ + ↓ -1段落下に移動
⌘ + ← -現在の行の先頭に移動
⌘ + → -現在の行の末尾に移動
Shift +上記のいずれかが適切な量だけ選択範囲を広げます

クリックしてドラッグ-テキストを選択
ダブルクリックしてドラッグ-テキストを選択し、単語の終わりに折り返します
トリプルクリックしてからドラッグ-テキストを選択し、段落の端まで折り返します

Shift +マウスでテキストを選択-選択に追加(連続)
⌘ +マウスでテキストを選択-選択範囲に追加(非連続)
⌥ +ドラッグ-長方形の領域を選択します(不連続)
⌘ + ⌥ +ドラッグ-選択範囲に長方形の領域を追加
選択範囲をドラッグ-テキストを移動
⌥ +選択範囲をドラッグ-テキストをコピー

Ctrl + A -現在の段落の先頭に移動
Ctrl + B -左に1文字移動
Ctrl + D -削除を転送
Ctrl + E -現在の段落の終わりに移動
Ctrl + F -右に1文字移動
Ctrl + H -削除
Ctrl + K -現在の段落の残りを削除
Ctrl + N -1行下に移動
Ctrl + O -カーソルの後に新しい行を挿入
Ctrl + P -1行上に移動
Ctrl + T -2つの周囲の文字を転置(スワップ)
Ctrl + V -最後に移動してから1文字左
Ctrl + Y -以前に Ctrl - K

で削除したテキストを貼り付けます

他の答えは非常に完全でしたが、さらにキャップロックを設定しただけでした それらを交換する代わりに、2番目のコントロールキーにキーを押します。

また、Mac OS Xのテキスト入力フィールドの大部分は すでにemacsキーストロークを受け入れます(^ A行の始まり、^ E行の終わり、^ P、^ N、^ K、^ Yなど)

幸運

Kyle Croninが提供する答えは本当に気に入っていますが、1つ追加したいことがあります。これを機能させるには、適切なキーボードを選択してください。外付けキーボードをラップトップに接続している場合、追加のドロップダウンボックスがあり、両方のキーボード(または少なくとも外付けキーボード)でこれを行う必要があります。以下のスクリーンショットは、「キーボードの選択」を示しています。ダイアログボックス-[Macキーボードのジョイント]を選択しました。これは、MacBookのGoldTouch外部キーボードの言い方です-デフォルトは組み込みキーボードです。
「キーボードの選択」ダイアログを示すスクリーンショット

一度それを考え出した-これは私にとって素晴らしい作品です!

ssh接続を介して、またはローカルコンピューターにないマシンを介してemacsを使用する場合、ページアップ/ページダウンボタンはターミナルバッファーをスクロールします-私の経験では、あまり役に立ちません。

適切なコマンドをemacsに送信するために、ページダウンおよびページアップボタンを設定できます。 emacsでは、次のようにemacsバッファーをスクロールできます。

  • Page Up:Ctl-v
  • Page Down:Esc-v

したがって、端末からこれらのコマンドをemacsに送信するには、上記の手順に従ってMetaのAltキーを変更します。ただし、「use option to meta」を設定する代わりに、オプション、「ページダウン」を見つけます。および「ページアップ」オプション。

Page Down

「ページダウン」をダブルクリックします。編集するオプション。 アクション"文字列をシェルに送信するに変更し、文字列として \ 026 を入力します。保存します。

Page Up

「ページアップ」をダブルクリックします編集するボタン。 アクション"文字列をシェルに送信" に変更し、文字列として \ 033v を入力します。保存します。

端末からEmacsを使用することに完全に賛成かどうかはわかりませんが、別のオプションとしてCarbon Emacs(私のお気に入り)とAquamacs(非常にMacに似たもの)を使用することができます。 Carbon Emacsはメタにコマンドキーを使用します。これは、最初にエスケープキーを押してからコントロールキーシーケンスを押す代わりに、ControlキーとCommandキーを押すだけでControl-Metaコマンドを実行できるため便利です。

また、あなたがまじめなEmacsユーザーなら、プログラミングに適したキーボード(それ自体で完全に再プログラム可能なキーボード)を入手することを徹底的にお勧めします。私はKinesisを使用しています。少しお金がかかりますが、非常に耐久性があり、非常に優れています。

個人的には、システム環境設定のコマンドのように動作するようにキャップをロックし、次にemacsのinit.elファイルで次のようにします:

(setq mac-command-modifier 'ctrl)

これにより、ほとんどのosxアプリケーションでコマンドとして、またemacsでコントロールとしてcaps lockを使用できます。十分に機能します。

あなたの喜びはまだ始まったばかりです。その他のトリックは次のとおりです。

  • 左右のシフトキーを使用して、高速入力用にも(および)にします。
  • fnキーまたは別のキーを「スーパー」に再マッピングします。
  • Caps Lockを制御できるようにするが、別のキーを使用する場合のみ。それ自体はエスケープです。

http://stevelosh.com/の優れた記事を読む詳細については、blog / 2012/10 / a-modern-space-cadet / を参照してください。

このスレッドは5年前に開始されたもので、 ns-win.el やビルド-with-ns については言及されていません。 2013年10月現在、Emacs Trunkで利用可能なキーバインドはすべて(箱から出して)あります。もちろん、独自のキーバインドを作成することもできます。個人的には、Windows XPでOSX上のParallelsを介して、またOSXでネイティブに使用できるすべてのキーバインディングを持つ init.el があります。ユーザーは自分のキーボードショートカットを定義できるため、コマンドキーを含まないキーボードを使用して 場合を除き、システム環境設定でキーボードを再マッピングする必要はありません(Apple USキーボードを使用)。 。しかし、トラックポイントが組み込まれたIBMクリックキーキーボードを隠しておきますか?もちろん違います。 :)私はIBMクリック感のあるキーボードを次の人生に持ち込んでいます。手に負担がかかるのは、コントロールを叩くのではなく、キャップロックではなく、手首/腕/肘の位置が不適切なためです。練習によって精度が向上し、上司が肩越しに自分がどのように進んでいるかを確認します。つまり、生産性を高めるための少しのプレッシャーです:)

(define-key global-map [?\s-,] 'customize)
(define-key global-map [?\s-'] 'next-multiframe-window)
(define-key global-map [?\s-`] 'other-frame)
(define-key global-map [?\s-~] 'ns-prev-frame)
(define-key global-map [?\s--] 'center-line)
(define-key global-map [?\s-:] 'ispell)
(define-key global-map [?\s-?] 'info)
(define-key global-map [?\s-^] 'kill-some-buffers)
(define-key global-map [?\s-&] 'kill-this-buffer)
(define-key global-map [?\s-C] 'ns-popup-color-panel)
(define-key global-map [?\s-D] 'dired)
(define-key global-map [?\s-E] 'edit-abbrevs)
(define-key global-map [?\s-L] 'shell-command)
(define-key global-map [?\s-M] 'manual-entry)
(define-key global-map [?\s-S] 'ns-write-file-using-panel)
(define-key global-map [?\s-a] 'mark-whole-buffer)
(define-key global-map [?\s-c] 'ns-copy-including-secondary)
(define-key global-map [?\s-d] 'isearch-repeat-backward)
(define-key global-map [?\s-e] 'isearch-yank-kill)
(define-key global-map [?\s-f] 'isearch-forward)
(define-key global-map [?\s-g] 'isearch-repeat-forward)
(define-key global-map [?\s-h] 'ns-do-hide-emacs)
(define-key global-map [?\s-H] 'ns-do-hide-others)
(define-key global-map [?\s-j] 'exchange-point-and-mark)
(define-key global-map [?\s-k] 'kill-this-buffer)
(define-key global-map [?\s-l] 'goto-line)
(define-key global-map [?\s-m] 'iconify-frame)
(define-key global-map [?\s-n] 'make-frame)
(define-key global-map [?\s-o] 'ns-open-file-using-panel)
(define-key global-map [?\s-p] 'ns-print-buffer)
(define-key global-map [?\s-q] 'save-buffers-kill-emacs)
(define-key global-map [?\s-s] 'save-buffer)
(define-key global-map [?\s-t] 'ns-popup-font-panel)
(define-key global-map [?\s-u] 'revert-buffer)
(define-key global-map [?\s-v] 'yank)
(define-key global-map [?\s-w] 'delete-frame)
(define-key global-map [?\s-x] 'kill-region)
(define-key global-map [?\s-y] 'ns-paste-secondary)
(define-key global-map [?\s-z] 'undo)
(define-key global-map [?\s-|] 'shell-command-on-region)
(define-key global-map [s-kp-bar] 'shell-command-on-region)
;; (as in Terminal.app)
(define-key global-map [s-right] 'ns-next-frame)
(define-key global-map [s-left] 'ns-prev-frame)

(define-key global-map [home] 'beginning-of-buffer)
(define-key global-map [end] 'end-of-buffer)
(define-key global-map [kp-home] 'beginning-of-buffer)
(define-key global-map [kp-end] 'end-of-buffer)
(define-key global-map [kp-prior] 'scroll-down-command)
(define-key global-map [kp-next] 'scroll-up-command)

;; Allow shift-clicks to work similarly to under Nextstep.
(define-key global-map [S-mouse-1] 'mouse-save-then-kill)
(global-unset-key [S-down-mouse-1])

(人間工学に基づいたキーボードではありませんが、キーの移動と感触が非常に好きで、Controlキー、Caps Lockが交換されています)。

http://matias.ca/osxkeyboard/index.php

かなり包括的なバインディングセットを作成しましたこちらを使用して外部

個人的に、正しいコントロールキーがないため、Macラップトップキーボードを使用できません。

代わりに、 Microsoft Natural Ergonomic Keyboard 4000 を使用しています。 7年以上:非常に太く、適切に配置されたCtrlキーとAltキーがあり、ドライバーのダウンロード" Start"および「アプリケーション」キーはMac Cmdキーに簡単に再マップされます。これも太くて簡単に押されます。

Emacsの人間工学的懸念を避けるため、Ctrl、Alt、およびCmdをShiftと同じように使用するようにトレーニングしました。実際のキーを入力するのとは反対の手でそれらを押します。 (つまり、Caps Lockはそのままにします。)

システム設定でcaps lockをコントロールに設定し、init.elにコマンドをメタに設定し、オプションをスーパーに設定するには、次のようにします。

(custom-set-variables
 '(ns-alternate-modifier (quote super))
 '(ns-command-modifier (quote meta)))

2つのソフトウェアを推奨したい Seil およびカラビナー。 Seilをインストールし、ソフトウェアの指示に従うだけで、目的を達成できるはずです。私の経験から、カラビナはより強力です。レイアウトが通常のものと異なる日本語キーボードがあります。私はいくつかのスニペットを持っています。同じ構文を使用して" private.xml"を編集できます。ファイルを追加してください。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top