Rimappa "Casa" e "Fine" all'inizio e alla fine della riga

298

La maggior parte del mio tempo di calcolo viene speso in Linux (con un tempo occasionale in Windows). Su queste piattaforme le chiavi Home e End salgono universalmente all'inizio o alla fine della riga corrente.

Mi sto gradualmente abituando a usare l'unico computer Apple nella mia vita, ma è comunque frustrante che questi tasti sembrano essere legati all'inizio e alla fine del documento e non sembra esserci alcuna chiave per le azioni basate sulla linea.

La mia domanda:

  1. Ci sono associazioni di tasti esistenti che mi mancano all'inizio e alla fine della riga? (Uso principalmente un terminale, Chrome e LibreOffice)
  2. C'è un modo per riassociare le funzioni di questi tasti alle funzioni che mi sono familiari? Sono disposto a rinunciare alle versioni basate su documenti che mi sembrano poco utili.

Anche due avvertimenti:

  1. Non sono l'unico utente sul sistema. Sarebbe bello se le mie impostazioni utente non rompessero l'esperienza di altre persone. Se questo non è possibile, penso che probabilmente ho la preferenza più strong!
  2. Uso più lingue e cambio tra i layout di tastiera, quindi ci si aspetta che tutte le soluzioni funzionino anche quando si passa da un layout di tastiera all'altro.
posta Caleb 18.06.2011 - 10:04
fonte

9 risposte

273

Le scorciatoie predefinite per spostarsi all'inizio o alla fine delle righe (avvolte) sono e . e o ^ A e ^ E si sposta all'inizio o alla fine di linee (o paragrafi) non tracciate. e si spostano indietro / avanti di parole, e tutti questi sono compatibili con il mantenimento di Sposta per selezionare durante le mosse corrispondenti.

Puoi rimappare a casa e terminare creando ~/Library/KeyBindings/ e salvando un elenco di proprietà come questo DefaultKeyBinding.dict :

{
    "\UF729"  = moveToBeginningOfLine:; // home
    "\UF72B"  = moveToEndOfLine:; // end
    "$\UF729" = moveToBeginningOfLineAndModifySelection:; // shift-home
    "$\UF72B" = moveToEndOfLineAndModifySelection:; // shift-end
}

La maggior parte delle combinazioni di tasti per la modifica del testo in OS X sono definite in /System/Library/Frameworks/AppKit.framework/Resources/StandardKeyBinding.dict .

L'applicazione delle modifiche richiede la riapertura delle applicazioni. DefaultKeyBinding.dict viene ignorato da alcune vecchie versioni di Xcode (funziona con l'ultima versione 6.3.1), dal Terminale e da molte applicazioni multipiattaforma.

Vedi Sistema di testo del cacao e mio sito web per ulteriori informazioni sulle combinazioni di tasti personalizzabili.

Le combinazioni di tasti del terminale possono essere personalizzate in Preferenze > Impostazioni > Tastiera. 3OH si sposta all'inizio di una riga e 3OF alla fine di una riga.

In Eclipse, i collegamenti dei tasti dovrebbero essere modificati in Preferenze > Generale > Keys. È necessario modificare i bind predefiniti per i comandi Inizio riga e Fine riga (sostituire ⌘ ← con ↖ e ⌘ → con ↘). Perché la selezione funzioni, modifica anche Seleziona inizio riga e Seleziona fine riga .

PS: potrebbe essere necessario disconnettersi e accedere nuovamente affinché la modifica ~/Library/KeyBindings/DefaultKeyBinding.dict abbia effetto.

    
risposta data 18.06.2011 - 11:08
fonte
105

Sono attualmente su Lion 10.7.4 e, per qualche strano motivo, la modifica di ~/Library/KeyBindings/DefaultKeyBinding.dict non ha funzionato per me.

Ho trovato che il KeyRemap4MacBook addon delle Preferenze di Sistema (che ora è chiamato Karabiner ) funziona molto bene, e puoi anche ri-mappare una varietà di chiavi con esso, senza dover modificare alcun file di testo. Per esempio. cambiando i tasti page up / page down in modo che il cursore segua anche la pagina su / giù.

Basta scaricare l'addon e, nel pannello Preferenze di sistema, accedere alla sezione For PC Users e controllare Use PC Style Home /End .

Nota, ho scelto (Change Home to Command+Left) invece di (Change Home to Control+A) , come se avessi scelto il primo, e se la linea fosse stata spostata, a casa mi porterei all'inizio della linea spostata, diverse righe sopra, invece di portarmi all'inizio della riga corrente.

    
risposta data 14.09.2012 - 05:40
fonte
41

Grazie a questo articolo , ho capito come per reindirizzare i tasti Home e Fine alle azioni basate su linee per utente che funzionano attraverso i layout di tastiera.

Devi creare un file dizionario con i keycode e i nuovi comandi su cui mappare, ma prima assicurati che la cartella in cui verrà posizionata esca aprendo un Terminale ed eseguendo:

$ mkdir -p ~/Library/KeyBindings

Quindi crea o modifica il file in ~/Library/KeyBindings/DefaultKeyBinding.dict . Se non esisteva prima, aggiungi l'intera sezione di seguito. Se esiste, basta aggiungere le quattro nuove righe all'interno del blocco.

{
    "\UF729"  = "moveToBeginningOfLine:";
    "\UF72B"  = "moveToEndOfLine:";
    "$\UF729" = "moveToBeginningOfLineAndModifySelection:";
    "$\UF72B" = "moveToEndOfLineAndModifySelection:";
}

Per attivare le impostazioni è necessario disconnettersi dal proprio utente e accedere di nuovo.

Si noti che questo copre sia l'azione normale di spostamento del cursore sia la combinazione Shift + Home / Fine per selezionare il movimento del cursore di durring.

    
risposta data 18.06.2011 - 11:05
fonte
11

Sto usando OS X Sierra e la soluzione ~/Library/KeyBindings/DefaultKeyBinding.dict suggerita da altri utenti ha funzionato parzialmente: alcune app come TextEdit ora hanno il comportamento desiderato, ma altre non lo fanno. Google Chrome e Slack sono due che non sembrano rispettare il file DefaultKeyBinding.dict .

Per correggere le app rimanenti, ho utilizzato BetterTouchTool per creare abbreviazioni da tastiera rapide specifiche per app vincolanti Home e End a OS Scorciatoie native di X Ctrl+A e Ctrl+E . BetterTouchTool non è gratuito, ma esiste un periodo di prova di 45 giorni.

Per fare ciò:

  1. Installa e avvia BetterTouchTool
  2. Vai a Gestures > Scheda tastiera
  3. In "Seleziona applicazione", fai clic su + e scegli l'app che desideri correggere.
  4. Fai clic su "Aggiungi nuovo collegamento", assegna la chiave Home nel campo "scorciatoia record" e imposta "Trigger altra scorciatoia da tastiera" su Ctrl + A. Ripeti per End e Ctrl + E.
  5. Quando hai finito il pannello dovrebbe apparire così:
  6. Sotto Impostazioni avanzate di BetterTouchTool, permetti di eseguirlo all'avvio.

Nota: non uscire dall'app BetterTouchTool, altrimenti interromperà l'intercettazione delle pressioni dei tasti. Chiudi la finestra e dovrebbe continuare a funzionare in background.

    
risposta data 31.01.2017 - 17:01
fonte
9

Sto utilizzando il fantastico KeyRemap4MacBook con le impostazioni personalizzate di seguito.

Corregge Home / End nella maggior parte delle applicazioni e non rovina iTerm2.

Da link

<?xml version="1.0"?>
<!-- ~/Library/Application Support/KeyRemap4MacBook/private.xml -->
<!-- Custom keyboard mappings for MBP using https://pqrs.org/macosx/keyremap4macbook/ -->
<root>
    <item>
        <name>Lari's PC Style Home/End</name>
        <appendix>(Change Home to Command+Left)</appendix>
        <appendix>(Change End to Command+Right)</appendix>
        <appendix></appendix>
        <appendix>{{ PC_STYLE_BINDINGS_IGNORE_APPS_DESCRIPTION }}</appendix>
        <identifier>lari.remap.pclikehomeend</identifier>
        <block>
            <only>DREAMWEAVER</only>
            <autogen>__KeyToKey__ FROMKEYCODE_HOME, KeyCode::HOME, ModifierFlag::SHIFT_L</autogen>
            <autogen>__KeyToKey__ FROMKEYCODE_END,  KeyCode::END,  ModifierFlag::SHIFT_L</autogen>
        </block>
        <block>
            <only>BLUEFISH,WORD,EXCEL,POWERPOINT</only>
            <autogen>__KeyToKey__ FROMKEYCODE_HOME, KeyCode::HOME</autogen>
            <autogen>__KeyToKey__ FROMKEYCODE_END,  KeyCode::END</autogen>
        </block>
        <!--
        <block>
            <only>EMACS, TERMINAL, X11, ECLIPSE</only>
            <autogen>__KeyToKey__ FROMKEYCODE_HOME, KeyCode::A, ModifierFlag::CONTROL_L</autogen>
            <autogen>__KeyToKey__ FROMKEYCODE_END,  KeyCode::E, ModifierFlag::CONTROL_L</autogen>
        </block>
         -->
        <block>
            <not>{{ PC_STYLE_BINDINGS_IGNORE_APPS }}</not>
            <autogen>__KeyToKey__ FROMKEYCODE_HOME, MODIFIERFLAG_EITHER_LEFT_OR_RIGHT_COMMAND, KeyCode::CURSOR_UP,    ModifierFlag::COMMAND_L</autogen>
            <autogen>__KeyToKey__ FROMKEYCODE_HOME, MODIFIERFLAG_EITHER_LEFT_OR_RIGHT_CONTROL, KeyCode::CURSOR_UP,    ModifierFlag::COMMAND_L</autogen>
            <autogen>__KeyToKey__ FROMKEYCODE_END,  MODIFIERFLAG_EITHER_LEFT_OR_RIGHT_COMMAND, KeyCode::CURSOR_DOWN,  ModifierFlag::COMMAND_L</autogen>
            <autogen>__KeyToKey__ FROMKEYCODE_END,  MODIFIERFLAG_EITHER_LEFT_OR_RIGHT_CONTROL, KeyCode::CURSOR_DOWN,  ModifierFlag::COMMAND_L</autogen>
            <autogen>__KeyToKey__ FROMKEYCODE_HOME,             KeyCode::CURSOR_LEFT,  ModifierFlag::COMMAND_L</autogen>
            <autogen>__KeyToKey__ FROMKEYCODE_END,              KeyCode::CURSOR_RIGHT, ModifierFlag::COMMAND_L</autogen>
        </block>
    </item>
</root>
    
risposta data 31.01.2014 - 11:06
fonte
7

Ho trovato il seguente utile per iterm2 e zsh con le virgolette da qui :

Open iTerm > Preference. Go to profiles tab > Keys. Then click on the + button on the bottom of the keys list, press Home (or Fn+left arrow on the apple cordless keyboard), under Action select Send Escape Sequence, and then type [1~

Ripeti per End key con [~4 per la sequenza di escape key.

If you're using zsh, also do this:

1) Place the following in your ~/.zshrc file

bindkey "^[[1~" beginning-of-line
bindkey "^[[4~" end-of-line

2) Run source ~/.zshrc in any open terminals.

    
risposta data 30.10.2016 - 05:14
fonte
6

Imho lo strumento migliore per apportare modifiche alla tastiera è infatti Karabiner (vecchio nome KeyRemap4MacBook). Open source ( link ) ma disponibile anche come applicazione ( link ). Ho cercato per molto tempo e non ho mai trovato niente di meglio.

    
risposta data 12.01.2016 - 13:35
fonte
3

Ho realizzato ciò usando Karabiner Elements .

Devi aggiornare la sezione delle regole di ~/.config/karabiner/karabiner.json con l'array JSON dal codice sottostante. Facendo così rimappare le chiavi di casa e di arrivo per lavorare come funzionano su pc / windows.

{
  "rules": [
    {
      "description": "change home key to command + left_arrow",
      "manipulators": [
        {
          "from": {
            "key_code": "home"
          },
          "to": [
            {
              "key_code": "left_arrow",
              "modifiers": [
                "left_command"
              ]
            }
          ],
          "type": "basic"
        }
      ]
    },
    {
      "description": "change home key to command + left_arrow while presing shift (selection)",
      "manipulators": [
        {
          "from": {
            "key_code": "home",
            "modifiers": {
              "mandatory": [
                "left_shift"
              ]
            }
          },
          "to": [
            {
              "key_code": "left_arrow",
              "modifiers": [
                "left_command",
                "left_shift"
              ]
            }
          ],
          "type": "basic"
        }
      ]
    },
    {
      "description": "change end key to command + right_arrow",
      "manipulators": [
        {
          "from": {
            "key_code": "end"
          },
          "to": [
            {
              "key_code": "right_arrow",
              "modifiers": [
                "left_command"
              ]
            }
          ],
          "type": "basic"
        }
      ]
    },
    {
      "description": "change end key to command + right_arrow while presing shift (selection)",
      "manipulators": [
        {
          "from": {
            "key_code": "end",
            "modifiers": {
              "mandatory": [
                "left_shift"
              ]
            }
          },
          "to": [
            {
              "key_code": "right_arrow",
              "modifiers": [
                "left_command",
                "left_shift"
              ]
            }
          ],
          "type": "basic"
        }
      ]
    }
  ]
}

vedi anche: github gist

    
risposta data 30.10.2018 - 01:28
fonte
-2

Puoi anche rimappare i tasti della tastiera e personalizzare il mouse e il trackpad in tutti i modi più interessanti, con il BetterTouchTool gratuito disponibile al link . Un'ottima soluzione per personalizzare il funzionamento dei tuoi dispositivi di input!

    
risposta data 11.06.2015 - 19:09
fonte

Leggi altre domande sui tag