Estoy usando «sort-lines» para ordenar incluir s en archivos C / C ++ antes de guardar. El problema que surge es que los encabezados con "símbolos se ordenan más alto que los que tienen <símbolos. Pero quiero lo contrario.
¿Cómo cambio el orden para que el <personaje tenga mayor prioridad que el "símbolo?

sort-subrdirectamente. O ... como truco, podrías aconsejarsort-linesque antes del orden intercambies"y los<personajes y luego después del tipo los vuelvas a intercambiar. :-)Respuestas:
Puedes usar
sort-regexp-fields. Marque la región y haga:M-x sort-regexp-fieldsRET#include .\(.*\)RET\1RETEl grupo de expresiones regulares capturará todo después
#include "o#include <y lo ordenará en lugar de la línea completa.Para su información, creo que la razón de la clasificación que está viendo es porque
"es más alta que<en ASCII.fuente
<, los"símbolos. Pero llegué a la conclusión de que los encabezados ordenados de esta manera se ven un poco desordenados, es por eso que solo quiero cambiar el orden de los personajes.Mientras tanto, escribí un código para implementar el hack que mencionó @glucas. Tal vez solo se adapte al propósito de ordenar encabezados en C, pero espero que alguien lo encuentre útil.
La función
swap-<-and-quote-includestransforma cada texto como<foo>a"foo", y cada"foo"a<foo>dentro del rango dado beg , final .Y aquí está el código para buscar y ordenar encabezados:
La función
c-sort-includesbusca el primer párrafo de «#include» s, y lo ordena. Lo agreguébefore-save-hookcon un código para ejecutarlo solo para los modos C y C ++. Contras conocidas: α) solo se ordenará el primer párrafo con inclusiones. Esto se debe a que la búsqueda hasta el final de un archivo puede ser costosa, por ejemplo, en mi trabajo con el que encontré un.carchivo recientemente , ¿te lo puedes imaginar? - ≈16000 líneas! La solución correcta sería un modo menor, que rastrearía dónde residen los bloques de encabezado en el archivo. β) En Emacs anteriores, a partir de ≈2015 años, la función podía bloquearse; era un error que luego se solucionó.fuente