Gnome-Terminal
vte.sh 不會將我的 gnome-terminal 目錄保留在新選項卡中
在 gnome-terminal 中打開新選項卡時,我曾經保留我的工作目錄並希望恢復此功能。我的研究指出我
/etc/profile.d/vte.sh
在我的~/.zshrc
(我使用 Z shell)中進行採購,但這並沒有改變問題,我的新標籤仍然在~
.如何恢復此功能?如有必要,這可能是一個骯髒的黑客。
我的版本
~$ uname -a Linux konradslaptop2 3.17.2-1-ARCH #1 SMP PREEMPT Thu Oct 30 20:49:39 CET 2014 x86_64 GNU/Linux ~$ gnome-terminal --version GNOME-Terminal 3.14.2 ~$ zsh --version zsh 5.0.7 (x86_64-unknown-linux-gnu)
我的 ~/.zshrc (最小範例)
. /etc/profile.d/vte.sh # auto generated by .zsh installation if (( ${+terminfo[smkx]} )) && (( ${+terminfo[rmkx]} )); then function zle-line-init () { printf '%s' "${terminfo[smkx]}" } function zle-line-finish () { printf '%s' "${terminfo[rmkx]}" } zle -N zle-line-init zle -N zle-line-finish fi
一個非常簡單的解決方法是在您的文件中包含一個函式,該函式
~/.zshrc
會記住工作目錄並在打開 zsh 時更改為該目錄:cd $(<>/dev/shm/$USER-pwd) __cd(){ \cd "$@" pwd >/dev/shm/$USER-pwd } alias cd=__cd
我們使用*/dev/shm而不是/tmp來避免磁碟寫入,儘管/tmp可能已經是您系統上的tmpfs*。
\cd
用來躲避叉子炸彈。如果您希望此功能僅用於 gnome-terminal,您可以包含一個 if 語句來檢查您目前的終端或活動視窗。此外,如果您擔心其他使用者可能會發現您的上一個目錄是什麼,您可以修改
$USER-pwd
with的權限chmod
:if xprop -id $(xprop -root 32x ' $0' _NET_ACTIVE_WINDOW | awk '{print $NF}') WM_CLASS | grep -q gnome-terminal; then cd $(<>/dev/shm/$USER-pwd) chmod 600 /dev/shm/$USER-pwd __cd(){ \cd "$@" pwd >/dev/shm/$USER-pwd } alias cd=__cd fi