Як вибрати рядок на OSX?


8

Я редагую текст. Скрутним способом вибору рядка було б перейти до початку рядка (cmd <-), а потім виділити всю лінію до кінця (Shift cmd ->). Чи можу я зробити краще?

Також будуть вітатися ярлики для вирізання лінії та її зберігання в буфері. (cmd D) не зберігає рядок у буфері.


1
У якій програмі ви редагуєте текст?
ForeverWintr

Переважно в Eclipse в тодішньому терміналі, але я сподівався отримати загальне рішення для кожної програми, якщо це можливо.
Dávid Natingga

на повній клавіатурі в ОС x x home, тоді Shift-End вибере весь рядок, але ви, мабуть, не маєте повної клавіатури. Також у більшості додатків, що позиціонують курсор на початку рядка, а потім утримує натискання на натиснуту стрілку вниз.
sdjuan

Відповіді:


10

Я завжди використовую таке:

  • cmd - Left arrow щоб дістатися до початку рядка
  • shift + cmd + right arrow позначити лінію
  • cmd - C(або cmd - X) скопіювати (або вирізати) позначений рядок у буфер обміну

Тоді я можу піти куди мені подобається і вставити рядок cmd - v.

Але оскільки MacOS сильно закріплений за графічним користувальницьким інтерфейсом, його використання без миші можливо, але іноді - як у вашому випадку - передбачається одна натискання клавіші більше, ніж хотілося б.


1
Майже праворуч: shift + cmd - стрілка праворуч для позначення лінії, НЕ зсув + cmd - стрілка вниз.
Кевін Ле - Кнле

1
shift + cmd + стрілка вниз позначає поточний рядок, що не містить символу нового рядка, shift + cmd + стрілка праворуч позначає рядок, виключаючи новий рядок. Отже, ми обидва праві;)
heiglandreas

5

Більшість програм (Terminal, TextEdit, URL-адреса / рядок пошуку Safari тощо), які приймають стандартні прив'язки клавіш до тексту (не впевнені, які стандартні ... ANSI, ASCII?), Які включають

control+ a: початок рядка

control+ e: кінець рядка

Отже, control+ shift+, a or eщоб вибрати рядок залежно від вашої позиції.

Також:

control+ shift+ k: вбити до кінця рядка

control+ shift+ y: yank (з буфера)

Повний список можна створити за допомогою bindkeyкоманди в терміналі, хоча вони не всі працюють у всіх додатках.


1
У текстових представленнях OS X не використовується лінія зчитування, вони просто підтримують багато тих же клавішних зв'язків, що і читання в режимі emacs. Cu, C- @ і Cw не повинні працювати у переглядах тексту ванілі за замовчуванням, навіть якщо ви можете визначити їх у DefaultKeyBinding.dict.
Lri

Я протестував все, перш ніж розміщувати ... крім того, як це робив у командному рядку. дох.
Невін Вільямс

Це приємно, але я все одно шукаю щось, що працює в глобальному масштабі.
Louis Waweru

2

Ви можете створити ~/Library/KeyBindings/і зберегти список властивостей на зразок цього DefaultKeyBinding.dict:

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

Наприклад, після повторного відкриття програми, наприклад, ⌥L повинен вибрати рядок у більшості власних переглядів тексту. Однак він не працює в Eclipse, Terminal або Xcode. Для отримання додаткової інформації дивіться статтю Текстова система какао чи мій веб-сайт .

Інший варіант - використовувати 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>

У більшості програм applicationsA переходить до початку розгорнутої лінії і ⌘ ← переходить до початку загорнутої лінії, але butA, схоже, не працює в Eclipse.

Перегляньте джерело значень основних кодів та попередньо визначених налаштувань .


1

Я знайшов рішення, яке, здається, працює в усіх додатках какао: чи клавіші home& endповодитимуться як машини, що не належать до Apple (перейдіть на початок / кінець рядка замість цілого документа).

Файл ~/Library/KeyBindings/DefaultKeyBinding.dictповинен містити наступне:

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

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

Якщо файл або каталог не існує, скопіюйте описаний вище фрагмент коду на свою ... картону, відкрийте термінал і введіть ці дві команди:

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

Перезапуск програми може знадобитися, щоб вона поводилася так, як очікувалося.


1

Я здивований, що про це ніхто не згадував

Shift + CMD + стрілка вліво (або стрілка праворуч, якщо ви на початку)


Ні, @heiglandreas згадував (не чітко, але він це зробив) у своїй відповіді. Дивіться другу кулю.
C0deDaedalus

1

Однією з переваг macOS над (WIN / Linux) є глобальні клавіші стилів emacs майже в кожному текстовому полі (виняток - Microsoft Office для Mac, який наново розраховує ці вкладення клавіш ...)

Що стосується цього питання, я завжди використовую C-aдля того, щоб дістатися до початку рядка, C-S-eщоб вибрати до кінця рядка, а потім "CMD-c" для копіювання.

Якщо у вас трапляється рядок (який закінчується \ n), який перетинає багато буквальних ліній, я б зазвичай робив наступне:

1) C-aперейти до початку рядка

2) C-nперейти до початку наступного буквального рядка

3) C-bповернутися на один символ

4) C-S-aвибрати до початку рядка

5) CMD-cскопіювати вміст

Це може бути складним рішенням, але воно має працювати в більшості текстових полів у macOS.


0

control+ shift+aef

(введіть aef , утримуючи клавішу Control і Shift)

Це дає такий же результат, як і потрійне клацання поточного рядка.

Зверніть увагу, це включає в себе вибір EOL у виборі. Якщо це не те, що ви хочете, залиште f .

Як бонус після f натисніть n кілька разів, щоб вибрати кілька рядків.

Тестується в Xcode та TextEdit.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.