106

私は Mac ユーザーで、Emacs を学ぶことにしました。手の負担を軽減し、精度を向上させるには、とキーを交換する必要があることを読みました。Leopardでこれを行うにはどうすればよいですか?CTRLCAPS LOCK

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

更新:現在、コントロール キーははるかに簡単に押すことができますが、メタ キーも十分に頻繁に使用されるため、私の MacBook と Apple キーボードでの位置にも注意が必要です。実際、コントロール キーの方が打ちやすいことがわかったので、コントロール キーをメタ キーとして機能するように再マッピングしました。より良い/より標準的なソリューションを持っている人はいますか?

4

13 に答える 13

166

CTRL と CAPS LOCK の入れ替え

  1. システム環境設定に入る
  2. キーボードとマウスの環境設定ペインに入る
  3. [キーボード] タブで、[修飾キー... ] をクリックします。
  4. Caps LockControlのアクションを入れ替えます。

代替テキスト

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

  1. メニュー バーで、[ターミナル] をクリックします。
  2. [設定...] をクリックします。
  3. [設定] タブで、[キーボード] タブに移動します。
  4. Use option as meta keyというラベルの付いたボックスにチェックを入れます

代替テキスト

それでおしまい!あなたは Emacs マスターへの道を順調に進んでいるはずです!

于 2008-10-02T15:14:23.507 に答える
48

参考までに、テキストを移動するためのキー バインドを次に示します。

⌥</kbd> + ←</kbd> - move left one word
⌥</kbd> + →</kbd> - move right one word
⌥</kbd> + delete - back delete one word
Shift + ⌥</kbd> + delete - foward delete one word
⌥</kbd> + ↑</kbd> - move up one paragraph
⌥</kbd> + ↓</kbd> - move down one paragraph
⌘</kbd> + ←</kbd> - move to start of current line
⌘</kbd> + →</kbd> - move to end of current line
Shift + any of the above extend selection by appropriate amount

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

Shift+ マウスでテキストを選択 - 選択範囲に追加 (連続)
⌘</kbd> + Select text with mouse - add to selection (non-contiguous)
⌥</kbd> + Drag - select rectangular area (non-contiguous)
⌘</kbd> + ⌥</kbd> + drag - add rectangular area to selection
Drag selection - move text
⌥</kbd> + drag selection - copy text

Ctrl+ A- 現在の段落の先頭に移動
Ctrl+ B- 1 文字左に移動
Ctrl+ D- 前方削除
Ctrl+ E- 現在の段落の末尾に移動
Ctrl+ F- 1 文字右に移動
Ctrl+ H- 削除
Ctrl+ K- 現在の段落の残りを削除
Ctrl+ -Lウィンドウを現在の中央に移動行
Ctrl+ N- 1 行下に移動+ -カーソルの後に新しい行を挿入
Ctrl+ - 1 行上に移動+ -周囲の 2 文字を転置 (スワップ) + - 末尾に移動し、1 文字左に移動+ - 以前に で削除したテキストを貼り付けO
CtrlP
CtrlT
CtrlV
CtrlYCtrl-K

一度に文字ではなく単語を移動するには、+または+に追加Optionします。CtrlFCtrlB

于 2009-01-11T23:45:53.000 に答える
11

私はカイル・クロニンによって提供された答えが本当に好きです、しかし私は一つのことを付け加えたいです-これが機能するために適切なキーボードを選択することを確認してください。ラップトップに外部キーボードを接続している場合は、追加のドロップダウンボックスがあり、両方のキーボード(または少なくとも外部キーボード)に対してこれを行う必要があります。以下のスクリーンショットは、「キーボードの選択」ダイアログボックスを示しています。MacBookのGoldTouch外部キーボードの言い方である「JointMacKeyboard」を選択しました。デフォルトは内蔵キーボードです。
スクリーンショットを表示

私がそれを理解したら-これは私にとって素晴らしい働きをします!

于 2010-12-04T17:12:48.463 に答える
11

他の答えは非常に完全でしたが、さらに、キャップスロックキーを交換するのではなく、2番目のコントロールキーに設定したことにも言及します.

また、Mac OS X のテキスト入力フィールドの大部分は、すでに emacs キーストローク (^A 行頭、^E 行末、^P、^N、^K、^Y など) を受け入れていることに気付くでしょう。

幸運を

于 2008-10-02T16:05:16.317 に答える
9

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

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

  • ページアップ: Ctl-v
  • ページダウン: Esc-v

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

ページダウン

「ページダウン」オプションをダブルクリックして編集します。Action「send string to shell」に変更し、文字列として\026を入力します。それを保存。

ページアップ

「ページアップ」ボタンをダブルクリックして編集します。アクション「send string to shell」に変更し、文字列として\033vを入力します。それを保存。

于 2008-11-11T20:01:53.587 に答える
7

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

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

于 2008-11-11T22:53:11.277 に答える
4

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

  • 左右のシフト キーを ( と ) にすると、すばやく入力できます。
  • fn キーまたは別のキーを「スーパー」に再マッピングします。
  • Caps Lock を制御できるようにしますが、別のキーを使用する必要があります。それ自体が逃げです。

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

于 2014-02-06T21:36:42.263 に答える
4

個人的には、システム設定でコマンドのように動作するように caps lock をセットアップし、emacs の init.el ファイルに次のように設定しました。

(setq mac コマンド修飾子 'ctrl)

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

于 2010-04-29T15:39:23.837 に答える
3

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

(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])
于 2013-10-27T04:50:23.097 に答える
2

(人間工学に基づいたキーボードではありませんが、キーの移動と感触が本当に気に入っています。また、コントロールキー、Caps Lock が入れ替わっています)。

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

于 2008-10-20T16:22:58.370 に答える
0

ここでは、ターミナルの外部で使用するためのかなり包括的なバインディングのセットを作成しました。

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

代わりに、私はMicrosoft Natural Ergonomic Keyboard 4000を7年以上使用しています。非常に太く、適切な位置にあるCtrlキーとAltキーがあり、ドライバーをダウンロードした後、「スタート」キーと「アプリケーション」キーがMacに簡単に再マッピングされます。 Cmdキー。これも太く、簡単に押すことができます。

emacsの人間工学的な懸念を回避するために、Shiftを使用するのと同じ方法でCtrl、Alt、およびCmdを使用するように自分自身をトレーニングしました。(つまり、Caps Lockをそのままにしておきます。)

于 2013-03-10T21:54:36.847 に答える