Digamos que está en la carpeta / very / cool / y / deeply / nested /. Y desea abrir una nueva pestaña de terminal en la misma carpeta.
¿Cómo lo harías tú?
Yo uso Mac OS y Zsh.
Use Oh-My-Zsh y agregue el complemento 'osx' en su ~ / .zshrc como:
plugins=(osx)
Si usa la aplicación Terminal de OSX, también necesita agregar el terminalapp
complemento: crédito
plugins=(osx terminalapp)
Si usa iTerm, debe establecer una opción de configuración ( tenga en cuenta que es posible que no necesite los complementos zsh para que esto funcione ): crédito
Preferencias> Perfiles> Predeterminado> General> Directorio de trabajo> Reutilizar la opción de directorio de la sesión anterior
¡Eso es todo lo que necesitas hacer!
rails
ejecución, y trato de abrir una nueva ventana mediante el comando-n, termino de nuevo en mi directorio de inicio.Otra opción ahora disponible en Mac OS X Lion es usar la función incorporada. Utiliza 'secuencias de escape' para encontrar el directorio actual. Para mí funciona si uso estos comandos en mi .zshrc:
También es posible usar
PS1
(para Bash, de esta wiki ):donde
\e]2;
está la secuencia de escape para imprimir cosas en la barra de título. Se parece que Terminal.app está recibiendo su información a partir de ahí.Más información:
fuente
/etc/bashrc
verá que también admite un nuevo código de escape para informar a Terminal del directorio de trabajo utilizando unafile:
URL, que puede manejar todos los nombres de ruta válidos mediante codificación porcentual (los títulos de ventana / pestaña solo pueden contener un subconjunto de caracteres ASCII )\e]7;file://hostname/percent-encoded-pathname\a
chpwd () {print -Pn "\e]2; %~/ \a"}
?Esta es una versión muy simple que utilicé en bash y también funciona en zsh. Guarda la carpeta actual en un archivo, después de cada comando (no daña demasiado la OMI) y abre un nuevo terminal en la carpeta actual guardada.
agregue lo siguiente a .zshrc
fuente
gdirs parece una forma de casi hacerlo: nueva pestaña, luego gdirs para seleccionar el directorio profundo y listo. Mi primera idea fue hacer que la pila de directorios se compartiera entre todas las pestañas y hacer cd ~ 1 después de la nueva pestaña, pero no puedo encontrar cómo hacerlo, ya que parece que cada instancia de zsh mantiene la suya. El intercambio de historial se realiza a través de un archivo común, por lo que quizás eso también se pueda hacer aquí ...
fuente
Así es como lo haces en bash.
Este script de shell le dirá (silenciosamente, literalmente, usando Applescript) Terminal.app para abrir una nueva pestaña y luego cambiar al directorio actual:
... coloque el script de shell anterior en un directorio en su
$PATH
(es decir, / usr / local / bin) y asegúrese de que sea ejecutable:( fuente )
fuente
Si necesita abrir esta nueva pestaña ahora mismo, sin cambiar sus archivos de configuración o instalar nuevos complementos, ejecute esto:
Luego abra una nueva pestaña Terminal manualmente (con ⌘T), y en la nueva pestaña:
Advertencia : esto sobrescribirá el contenido del portapapeles del sistema.
Un método alternativo más largo que no sobrescribe el portapapeles:
Abre tu nueva pestaña.
fuente
Según el comentario anterior de Pieter, una vez que
plugins=(git osx)
se instalan los complementos, puede escribirtab
y se abrirá una nueva pestaña en su directorio actual.fuente
Si desea que el directorio cambie automáticamente cuando se abre una nueva pestaña, use el complemento dirpersist .
El complemento osx solo guarda el último directorio, pero debe ejecutar el comando
tab
para abrir una nueva pestaña, lo que no siempre es posible (si, por ejemplo, está ejecutando algo en su pestaña actual).fuente
Agregar terminlapp a .zshrc no funcionó para mí, así que busqué el complemento
~/.oh-my-zsh/plugins/terminalapp
y me dice:fuente
Nuevas pestañas ya se abren en la misma carpeta (Cmd + T). Para nuevas ventanas (Cmd + N) la solución de Pieter es la correcta:
fuente