Come seleziono una linea su OSX?


8

Sto modificando il testo. Un modo ingombrante per selezionare una linea sarebbe quello di andare all'inizio della linea (cmd <-) e quindi selezionare l'intera linea fino alla fine (Shift cmd ->). Posso fare di meglio?

Anche le scorciatoie per tagliare la linea e memorizzarla in un buffer sarebbero benvenute. (cmd D) non memorizza la riga in un buffer.


1
In quale programma stai modificando il testo?
ForeverWintr,

Principalmente in Eclipse in quel terminale, ma speravo di ottenere una soluzione generale per ogni applicazione, se possibile.
Dávid Natingga,

su una tastiera ful in os x home quindi shift-end selezionerà l'intera riga, ma probabilmente non hai una tastiera completa. Anche nella maggior parte delle app posiziona il cursore all'inizio della linea, quindi tieni premuto MAIUSC premendo la freccia giù funziona.
sdjuan,

Risposte:


10

Uso sempre quanto segue:

  • cmd - Left arrow per arrivare all'inizio della riga
  • shift + cmd + right arrow per segnare la linea
  • cmd - C(o cmd - X) per copiare (o tagliare) la linea contrassegnata negli appunti

Quindi posso andare dove mi piace e incollare la linea con cmd - v.

Ma poiché MacOS è fortemente fissato a un'interfaccia utente grafica, è possibile utilizzarlo senza mouse ma a volte - come nel tuo caso - comporta una pressione di un tasto maggiore di quella che si vorrebbe.


1
Quasi a destra: maiusc + cmd - freccia destra per contrassegnare la linea, NON MAIUSC + cmd - freccia giù.
Kevin Le - Khnle il

1
MAIUSC + CMD + freccia GIÙ segna la riga corrente tra cui il carattere di nuova riga, MAIUSC + CMD + freccia DESTRA contrassegna la riga escluso il carattere di nuova riga. Quindi abbiamo entrambi ragione;)
heiglandreas

5

La maggior parte delle app (Terminale, TextEdit, URL / barra di ricerca di Safari, ecc.) Che accettano l'inserimento di testo rispettano le associazioni di tasti standard (non sei sicuro di quale standard ... ANSI, ASCII?) Che includono

control+ a: inizio della riga

control+ e: fine riga

Quindi, control+ shift+ a or eper selezionare una linea a seconda della posizione.

Anche:

control+ shift+ k: uccidi fino alla fine della linea

control+ shift+ y: yank (dal buffer)

Un elenco completo può essere generato con il bindkeycomando in Terminale, anche se non tutti funzionano su tutte le app.


1
Le visualizzazioni di testo di OS X non usano readline, ma supportano semplicemente molte delle stesse combinazioni di tasti di readline in modalità emacs. Cu, C- @ e Cw non dovrebbero funzionare nelle viste di testo vanilla per impostazione predefinita, anche se è possibile definirle in DefaultKeyBinding.dict.
Lri,

Ho provato tutto, prima di pubblicare ... tranne che a un prompt dei comandi. doh.
Nevin Williams,

Questo è carino ma sto ancora cercando qualcosa che funzioni a livello globale.
Louis Waweru,

2

È possibile creare ~/Library/KeyBindings/e salvare un elenco di proprietà come questo come DefaultKeyBinding.dict:

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

Dopo la riapertura delle applicazioni, ad esempio ⌥L dovrebbe selezionare una riga nella maggior parte delle visualizzazioni di testo native. Tuttavia, non funziona in Eclipse, Terminal o Xcode. Per ulteriori informazioni, consultare l' articolo di Cocoa Text System o il mio sito Web .

Un'altra opzione è utilizzare KeyRemap4MacBook e salvare qualcosa di simile come 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>

Nella maggior parte delle applicazioni ⌃A si sposta all'inizio di una linea da scartare e ⌘ ← si sposta all'inizio di una linea avvolta, ma ⌃A non sembra funzionare in Eclipse.

Vedere l'origine per i valori del codice tasto e le impostazioni predefinite .


1

Ho trovato una soluzione che sembra funzionare su tutte le app Cocoa: i tasti home& si endcomportano come macchine non Apple (vai all'inizio / alla fine di una riga anziché a un intero documento).

Un file ~/Library/KeyBindings/DefaultKeyBinding.dictdeve contenere quanto segue:

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

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

Se il file o la directory non esistono, copia lo snippet di codice sopra nel tuo ... pannello di montaggio, apri Terminale e inserisci questi due comandi:

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

Potrebbe essere necessario riavviare l'app affinché si comporti come previsto.


1

Sono sorpreso che nessuno abbia menzionato questo

Maiusc + CMD + freccia sinistra (o freccia destra se sei all'inizio)


No, @heiglandreas ha menzionato (non esplicitamente, ma l'ha fatto) nella sua risposta. Vedi il secondo proiettile.
C0deDedalo

1

Uno dei vantaggi di macOS rispetto a (WIN / Linux) è la combinazione di tasti in stile emacs globale in quasi tutte le caselle di testo (un'eccezione è Microsoft Office per Mac che ridefinisce in modo fastidioso quei tasti di scelta rapida ...)

Per quanto riguarda questa domanda, utilizzo sempre C-aper raggiungere la fine della riga, C-S-eper selezionare fino alla fine della riga, quindi 'CMD-c` per copiare il file.

Se ti capita di avere una linea (che termina con una \ n) che attraversa molte linee letterali, normalmente farei quanto segue:

1) C-aper andare all'inizio della linea

2) C-nper iniziare la prossima riga letterale

3) C-btornare indietro di un personaggio

4) C-S-aper selezionare fino a capo della linea

5) CMD-cper copiare il contenuto

Potrebbe essere una soluzione complessa, ma dovrebbe funzionare nella maggior parte delle caselle di testo in macOS.


0

control+ shift+aef

(digita aef mentre tieni premuto Control e Shift)

Questo dà lo stesso risultato del triplo clic sulla riga corrente.

Nota che include l'EOL finale nella selezione. Se non è quello che vuoi, lascia fuori la f .

Come bonus, dopo f , premere ripetutamente n per selezionare più righe.

Testato in Xcode e TextEdit.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.