Bagaimana cara memilih saluran di OSX?

8

Saya sedang mengedit teks. Cara rumit untuk memilih garis adalah pergi ke awal garis (cmd <-) dan kemudian pilih seluruh garis ke ujung (Shift cmd ->). Bisakah saya berbuat lebih baik?

Juga pintasan untuk memotong garis dan menyimpannya dalam buffer akan disambut. (cmd D) tidak menyimpan garis dalam buffer.

Dávid Natingga
sumber
1
Program apa yang Anda edit teks?
ForeverWintr
Sebagian besar di Eclipse di terminal saat itu, tetapi saya berharap untuk mendapatkan solusi umum untuk setiap aplikasi jika memungkinkan.
Dávid Natingga
pada keyboard ful di os x home maka shift-end akan memilih seluruh baris, tetapi Anda mungkin tidak memiliki keyboard lengkap. Juga di sebagian besar aplikasi memposisikan kursor di awal baris kemudian menahan shift menekan panah bawah berfungsi.
sdjuan

Jawaban:

10

Saya selalu menggunakan yang berikut ini:

  • cmd - Left arrow untuk sampai ke awal baris
  • shift + cmd + right arrow untuk menandai garis
  • cmd - C(atau cmd - X) untuk menyalin (atau memotong) garis yang ditandai ke clipboard

Lalu aku bisa pergi ke mana pun aku suka dan menempelkan garis dengan cmd - v.

Tetapi karena MacOS sangat terpaku pada Graphical UserInterface, menggunakannya tanpa mouse dimungkinkan tetapi terkadang - seperti dalam kasus Anda - melibatkan satu penekanan tombol lebih dari yang diinginkan.

heiglandreas
sumber
1
Hampir benar: geser + cmd - panah kanan untuk menandai garis, BUKAN shift + cmd - panah ke bawah.
Kevin Le - Khnle 3-15
1
shift + cmd + panah bawah menandai garis saat ini termasuk char baris baru, shift + cmd + panah kanan menandai garis tidak termasuk char baris baru. Jadi kami berdua benar;)
heiglandreas
5

Sebagian besar aplikasi (Terminal, TextEdit, URL / bar pencarian Safari, dll) yang menerima input teks menghormati ikatan kunci standar (tidak yakin apa standar ... ANSI, ASCII?) Yang mencakup

control+ a: awal baris

control+ e: ujung baris

Jadi, control+ shift+ a or euntuk memilih garis tergantung pada posisi Anda.

Juga:

control+ shift+ k: bunuh sampai akhir

control+ shift+ y: yank (dari buffer)

Daftar lengkap dapat dibuat dengan bindkeyperintah di Terminal, meskipun tidak semuanya bekerja di semua aplikasi.

Nevin Williams
sumber
1
Tampilan teks OS X tidak menggunakan readline, itu hanya terjadi untuk mendukung banyak dari keybindings yang sama seperti readline dalam mode emacs. Cu, C- @, dan Cw seharusnya tidak berfungsi dalam tampilan teks vanilla secara default, meskipun Anda dapat mendefinisikannya di DefaultKeyBinding.dict.
Lri
Saya menguji semuanya, sebelum memposting ... kecuali saya melakukannya di command prompt. doh.
Nevin Williams
Ini bagus tapi saya masih mencari sesuatu yang berfungsi secara global.
Louis Waweru
2

Anda dapat membuat ~/Library/KeyBindings/dan menyimpan daftar properti seperti ini sebagai DefaultKeyBinding.dict:

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

Setelah membuka kembali aplikasi, misalnya ⌥L harus memilih garis di sebagian besar tampilan teks asli. Itu tidak bekerja di Eclipse, Terminal, atau Xcode. Untuk informasi lebih lanjut, lihat artikel Cocoa Text System atau situs web saya .

Opsi lain adalah menggunakan KeyRemap4MacBook dan menyimpan sesuatu seperti ini sebagai 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>

Dalam sebagian besar aplikasi ⌃A bergerak ke awal garis yang tidak terbuka dan ⌘ ← bergerak ke awal garis yang dibungkus, tetapi ⌃A tampaknya tidak berfungsi di Eclipse.

Lihat sumber untuk nilai kode kunci dan pengaturan yang telah ditentukan .

Lri
sumber
1

Saya menemukan solusi yang tampaknya bekerja di semua Kakao apps: memiliki home& endkunci berperilaku seperti mesin non-Apple (pergi ke awal / akhir baris bukannya seluruh dokumen).

File ~/Library/KeyBindings/DefaultKeyBinding.dictharus berisi yang berikut ini:

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

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

Jika file atau direktori tidak ada, salin cuplikan kode di atas ke ... papan tulis Anda, buka Terminal dan masukkan dua perintah ini:

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

Restart aplikasi mungkin diperlukan untuk berperilaku seperti yang diharapkan.

Louis Waweru
sumber
1

Saya terkejut bahwa tidak ada yang menyebutkan yang ini

Shift + CMD + panah kiri (atau panah kanan jika Anda berada di awal)

Sharadh Deshpande
sumber
Tidak, @heiglandreas menyebutkan (tidak secara eksplisit, tetapi dia melakukannya) dalam jawabannya. Lihat peluru kedua.
C0deDaedalus
1

Salah satu kelebihan macOS over (WIN / Linux) adalah global keybindings gaya emacs di hampir setiap kotak teks (pengecualian adalah Microsoft Office untuk Mac yang mendefinisikan-ulang keybindings itu dengan mengganggu ...)

Mengenai pertanyaan ini, saya selalu menggunakan C-auntuk mencapai head of line, C-S-euntuk memilih sampai akhir baris, lalu 'CMD-c` untuk menyalin.

Jika Anda memiliki garis (yang diakhiri dengan \ n) yang melintasi banyak garis literal, saya biasanya akan melakukan hal berikut:

1) C-auntuk memulai garis

2) C-nuntuk memulai garis literal berikutnya

3) C-buntuk kembali satu karakter

4) C-S-auntuk memilih sampai head of line

5) CMD-cuntuk menyalin konten

Mungkin menjadi solusi yang kompleks, tetapi harus berfungsi di sebagian besar kotak teks di macOS.

phye
sumber
0

control+ shift+aef

(ketik aef sambil menahan Control dan Shift)

Ini memberikan hasil yang sama dengan mengklik tiga kali pada baris saat ini.

Perhatikan ini termasuk EOL yang tertinggal dalam seleksi. Jika bukan itu yang Anda inginkan, tinggalkan f .

Sebagai bonus, setelah f , tekan n berulang kali untuk memilih beberapa baris.

Diuji dalam Xcode dan TextEdit.

jedwidz
sumber