OSXで行を選択するにはどうすればよいですか?


8

テキストを編集しています。行を選択する面倒な方法は、行の先頭に移動して(cmd <-)、行全体を最後まで選択する(Shift cmd->)ことです。もっと上手にできる?

また、ラインをカットしてバッファに格納するためのショートカットも歓迎されます。(cmd D)行をバッファに保存しません。


1
どのプログラムでテキストを編集していますか?
ForeverWintr 2013

主にEclipseの当時のターミナルですが、可能であればすべてのアプリケーションの一般的なソリューションを入手したいと思っていました。
デヴィッド・Natingga

os x homeのフルキーボードでは、shift-endで行全体が選択されますが、おそらくフルキーボードはありません。また、ほとんどのアプリでは、カーソルを行の先頭に置き、Shiftキーを押しながら下矢印を押すと機能します。
sdjuan 2013

回答:


10

私は常に以下を使用します:

  • cmd - Left arrow 行頭に移動する
  • shift + cmd + right arrow 線を引く
  • cmd - C(またはcmd - X)マークした行をクリップボードにコピー(またはカット)します

次に、好きな場所に移動して、で行を貼り付けcmd - vます。

しかし、MacOSはグラフィカルユーザーインターフェイスに強く固定されているため、マウスなしでそれを使用することは可能ですが、場合によっては-あなたの場合のように-必要なキーを複数回押す必要があります。


1
ほぼ右:Shift + cmd-矢印で行をマークし、shift + cmd-下矢印ではありません。
Kevin Le-Khnle

1
shift + cmd +下矢印は、改行文字を含む現在の行をマークし、shift + cmd +右矢印は、改行文字を除く行をマークします。だから私たちはどちらも正しいです;)
heiglandreas 2015

5

テキスト入力を受け入れるほとんどのアプリ(ターミナル、テキストエディット、SafariのURL /検索バーなど)には、標準のキーバインディング(どの標準... ANSI、ASCII?)

control+ a行の始め

control+ e行の終わり

だから、control+ shift+ a or eあなたの位置に応じて、行を選択します。

また:

control+ shift+ k行末まで殺す

control+ shift+ yヤンク(バッファから)

完全なリストはbindkeyターミナルのコマンドで生成できますが、すべてのアプリで機能するわけではありません。


1
OS Xのテキストビューはreadlineを使用しません。たまたま、emacsモードのreadlineと同じキー割り当ての多くをサポートします。Cu、C- @、およびCwは、DefaultKeyBinding.dictで定義できますが、デフォルトのバニラテキストビューでは機能しません。
Lri 2013

投稿する前にすべてをテストしましたが、コマンドプロンプトで実行しました。どー。
Nevin Williams

これは素晴らしいことですが、私はまだグローバルに機能するものを探しています。
Louis Waweru 2014

2

次の~/Library/KeyBindings/ようなプロパティリストを作成して保存できますDefaultKeyBinding.dict

{
    "~l" = selectParagraph:;
    "~z" = (selectParagraph:, delete:);
    "~x" = (selectParagraph:, cut:);
    "~c" = (selectParagraph:, copy:);
}

たとえば、アプリケーションを再度開いた後、⌥Lはほとんどのネイティブテキストビューで行を選択する必要があります。ただし、Eclipse、ターミナル、またはXcodeでは機能しません。詳細については、Cocoa Text Systemの記事または私のWebサイトを参照してください

別のオプションは、KeyRemap4MacBookを使用して、次のようなものをprivate.xmlとして保存することです

<?xml version="1.0"?>
<root>
<item>
<name>test</name>
<identifier>test</identifier>
<not>TERMINAL</not>
<not>EMACS</not>
<not>VIRTUALMACHINE</not>
<not>ECLIPSE</not>
<autogen>__KeyToKey__ KeyCode::L, VK_OPTION | ModifierFlag::NONE, KeyCode::A, ModifierFlag::CONTROL_L, KeyCode::E, ModifierFlag::CONTROL_L | ModifierFlag::SHIFT_L, KeyCode::CURSOR_RIGHT, ModifierFlag::SHIFT_L</autogen>
</item>
<item>
<name>test2</name>
<identifier>test2</identifier>
<only>ECLIPSE</only>
<autogen>__KeyToKey__ KeyCode::L, VK_OPTION | ModifierFlag::NONE, KeyCode::CURSOR_LEFT, ModifierFlag::COMMAND_L, KeyCode::CURSOR_RIGHT, ModifierFlag::COMMAND_L | ModifierFlag::SHIFT_L, KeyCode::CURSOR_RIGHT, ModifierFlag::SHIFT_L</autogen>
</item>
</root>

ほとんどのアプリケーションでは、⌃Aはラップされていない行の先頭に移動し、⌘←はラップされた行の先頭に移動しますが、⌃AはEclipseでは機能しないようです。

キーコード値事前定義された設定については、ソースを参照してください。


1

私が見つかりました。解決策:アプリのすべてのココア渡って動作しているようだhomeendキーは、アップル以外のマシンのように振る舞う(全体ではなく、文書の行の先頭/末尾に移動します)。

ファイルに~/Library/KeyBindings/DefaultKeyBinding.dictは次のものが含まれている必要があります。

{
    /* home */
    "\UF729"  = "moveToBeginningOfLine:";
    "$\UF729" = "moveToBeginningOfLineAndModifySelection:";

    /* end */
    "\UF72B"  = "moveToEndOfLine:";
    "$\UF72B" = "moveToEndOfLineAndModifySelection:";
}

ファイルまたはディレクトリが存在しない場合は、上記のコードスニペットをペーストボードにコピーし、ターミナルを開いて次の2つのコマンドを入力します。

mkdir ~/Library/KeyBindings
pbpaste > ~/Library/KeyBindings/DefaultKeyBinding.dict

アプリが期待どおりに動作するには、アプリの再起動が必要になる場合があります。


1

これについて誰も言及しなかったことに驚いています

Shift + CMD +左矢印(または最初にいる場合は右矢印)


いいえ、@ heiglandreasは彼の回答でそれを(明示的にではなく、しかし彼に)言及しました。2番目の箇条書きを参照してください。
C0deDaedalus

1

(WIN / Linux)よりもmacOSが優れている点の1つは、ほとんどすべてのテキストボックスにグローバルemacsスタイルのキーバインディングがあることです(例外として、Microsoft Office for Macはこれらのキーバインディングを煩わしく再定義しています...)

この質問に関して、私は常に行頭にC-a到達するために使用し、行末C-S-eまで選択し、次に「CMD-c」を使用してコピーします。

多くのリテラル行と交差する行(\ nで終わる行)がある場合、通常は次のようにします。

1)C-a行頭に移動する

2)C-n次のリテラル行の先頭に移動する

3)C-b1文字戻る

4)C-S-a行頭まで選択する

5)CMD-cコンテンツをコピーする

複雑なソリューションかもしれませんが、macOSのほとんどのテキストボックスで動作するはずです。


0

control+ shift+aef

CtrlキーとShift キーを押しながらaefと入力します)

これは、現在の行をトリプルクリックした場合と同じ結果になります。

これには、選択の末尾のEOLが含まれることに注意してください。それがあなたの望みでない場合は、fを省略してください

おまけとして、fの後でnを繰り返し押して、複数の行を選択します。

XcodeとTextEditでテストされています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.