Emacs: come scegliere buoni collegamenti di tasti personalizzati?


10

Sono un principiante Emacs e mi piacerebbe iniziare ad aggiungere alcune combinazioni di tasti personalizzate a livello mondiale per le attività comuni, come replace-string, replace-regexe così via che non li hanno per impostazione predefinita. Voglio fare delle buone scelte e vedo alcuni problemi:

  • Visualizza tutte le mie opzioni : come posso visualizzare l'intera gamma di tasti non associati a tutte le modalità che utilizzo regolarmente?

  • Compatibilità / convenzione - Esistono associazioni non ufficiali comuni o una chiave comune "spazio utente" con cui iniziare le associazioni personalizzate personali?

  • Altre questioni - Qualcos'altro che dovrei prendere in considerazione?

Risposte:


9

Prova a dare un'occhiata a questa domanda su SO: ci sono combinazioni di tasti emacs riservate ai comandi personalizzati?

Per quanto riguarda la visualizzazione di ciò che è disponibile, c'è la unboundlibreria (vedere la prima risposta alla domanda sopra).

Una convenzione (presa dalla mia risposta a quella domanda ) è:

Puoi ridefinire qualsiasi cosa, ma la convenzione è da usare C-c l (dove lc'è una lettera).

Come utente, puoi ridefinire qualsiasi chiave; ma di solito è meglio attenersi alle sequenze di tasti che sono C-c seguite da una lettera (maiuscole o minuscole). Queste chiavi sono "riservate agli utenti", quindi non entreranno in conflitto con alcuna estensione Emacs correttamente progettata. I tasti funzione F5tramite F9sono riservati anche agli utenti. Se ridefinisci qualche altra chiave, la tua definizione potrebbe essere sovrascritta da alcune estensioni o modalità principali che ridefiniscono la stessa chiave.

Ricorda solo che le combinazioni di tasti sono diverse in ciascuna delle varie modalità (maggiore e minore), quindi ciò che è disponibile in un buffer non è necessariamente disponibile in un altro. E rendi i tuoi collegamenti chiave al livello più localizzato possibile. Ad esempio, se la funzionalità fa qualcosa ad una riga di codice, non fare una chiave globale vincolante per esso, definire nelle keymaps appropriati ( c++-mode-map, ruby-mode-map, ecc).

Per quanto riguarda le tue attività specifiche, hai notato:

  • M-% aka query-replace
  • C-M-% aka query-replace-regexp

Inoltre, quando stai cercando ( C-so C-M-s(e le varianti inverse)), puoi digitare M-%(o C-M-%) per inserire direttamente query-replace( query-replace-regexp) con la stringa di ricerca come cosa da sostituire ... Abbastanza utile.

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.