Pregunta

Siento que a menudo el nombre de archivos de tal manera que mi sistema emite constantemente mientras programo debido a que la implementación del tabulador es ambigua. Antes de hacer una gran cantidad de programación Unix, tendía a nombrar los archivos relacionados con el mismo prefijo para indicar su relación. Ahora tengo que volver a pensar en mi acercamiento a la carpeta y estructuras de archivos y nombres para programar de manera más eficaz.

¿Qué heurísticas o reglas que se aplican cuando qué programación para simplificar la implementación del tabulador? ¿Usted utiliza ninguna herramienta para hacer más suave la implementación del tabulador (por ejemplo, emacs carámbanos )?

EDIT: Wow, gracias por las fantásticas ideas. Creo que cada posible punto débil de la mina se representó en las respuestas. Acepté la que parece ser la mejor mejora de la productividad, aunque todos son vale la pena leer.

¿Fue útil?

Solución

He trabajado generalmente en proyectos en los archivos relacionados están todos en el mismo directorio , y los nombres de los archivos mismos están especializados para indicar su contenido.

Por supuesto, esto plantea la pregunta, ¿por qué haces ficha completa los nombres de archivo? Si usted está hojeando código fuente, hay TAGS , CEDET , y una plétora de otras utilidades que le permitirá pasar por alto el nombre del archivo y saltar directamente a la función de la variable / que realmente después.

Todo depende de lo que realmente está tratando de hacer, y encontrar un archivo en particular es por lo general el medio para un fin diferente.

Otros consejos

En general,

setterm -blength 0

inhabilitará pitido del terminal. GNU pantalla y algunos terminales gráficas tienen sus propios ajustes de notificación de bip.

Específicamente para Bash y otra readline -utilizando el software, el comportamiento de la implementación del tabulador se puede cambiar el uso de archivos $INPUTRC, /etc/inputrc y configuración ~/.inputrc. Por ejemplo,

bell-style none     # never ring the bell
bell-style visible  # use visual bell, if available

show-all-if-ambiguous on  # list all completions instead of ringing the bell

He de reconocer que me nombres de mis archivos sin tener en cuenta la implementación del tabulador y en lugar de ajustar mi impulso para golpear pestaña hasta que sepa que he escrito suficientes caracteres no conseguir tabuladores tonta.

Directorios de archivos con elementos comunes suelen ser una buena idea, pero puede que no siempre sea posible. En esos casos, un enfoque sencillo que funciona bien es poner el carácter común en el sufijo, en lugar del prefijo. Por ejemplo, nombro mis pruebas unitarias con '_test.py' como sufijo. Hacerlo al revés (por ejemplo test_foo.py) sería muñón del tabulador para cada archivo de prueba.

Puede ampliar esta idea para el caso general para aplanar las jerarquías. Por ejemplo, si usted tiene la Person->Employee->Programmer jerarquía de clases, podría evitar la duplicación de la estructura de directorios del código llamando a la programmer_employee_person_test.py prueba. Una vez más, los componentes más generales del identificador vienen más adelante en el nombre.

tiendo a ir con lo que tiene sentido para la organización del código, no tabulador - esto puede variar dependiendo del código en cuestión, por lo que es difícil dar una respuesta directa, pero el uso de sub-directorios apropiados sí hace vida más fácil. Estoy de acuerdo con Don.

En su lugar, navego fuentes utilizando herramientas como find . -name {expr} (nombres de archivo), grep -r {expr} * (defs de función, Protos y uso) y combinaciones de los mismos. Es posible escribir scripts de shell a no buscar / reemplazar las operaciones usando sed i 's/find/replace' en toda su árbol de fuentes con eficacia. Tengo una pequeña carpeta en mi ~ / en el camino que ofrece un par de secuencias de comandos útiles como éste.

combino con este IDE como Eclipse para la edición, o VIM, dependiendo de lo que estoy haciendo. Me gustan los dos por igual, de verdad, como yo uso tanto para diferentes propósitos.

En cuanto a Emacs, lo he intentado, no me gusta. Es demasiado grande y complicado y tengo mejores cosas que hacer que aprender a usarlo (bueno dejemos de allí antes de empezar un "uso programadores reales ..." discusión). Así que no puedo comentar sobre la herramienta de Emacs que ha enlazado a. Supongo que probarlo y ver si ayuda.

menú completo en lugar de completa Se puede utilizar:

bind '"\C-i": menu-complete'
echo '"\C-i": menu-complete' >>~/.inputrc

Estoy de acuerdo con las otras respuestas aquí: No, en general, los archivos de nombre para facilitar la terminación o para expresar relaciones (excepto lo que implica simplemente describiendo lo que un archivo está a favor o hace)

.

Wrt finalización : Sí, puede ayudar a usar algo como carámbanos . Hay muchas maneras diferentes en las que la terminación flexible puede ayudar - incluyendo para buscar dentro de los archivos de proyecto. Véase, por ejemplo, Búsqueda carámbanos .

Ser capaz de proporcionar múltiples patrones, partido simples ( " finalización progresiva") ayuda también - eso es mucho más fácil que subir con una sola expresión regular, compleja. Del mismo modo, siendo capaz de excluir coincidencias para ciertos patrones ( " socavando la no elefante ") es útil. Por último, para el nombre de archivo a juego que a veces puede ayudar a ser capaz de igualar componentes de directorio también.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top