Se si utilizza tmux ea volte si avvia inizialmente MacVim tramite il programma mvim
da riga di comando, allora si potrebbe essere verificato il problema che mi ha spinto a scrivere il reattach-to-user-namespace
command.
La mia ipotesi è che l'accesso appunti lavorato in occasioni precedenti, perché ti è capitato di aver lanciato MacVim attraverso un metodo GUI “normale” (ad esempio il dock, Finder, Spotlight, etc.). Gli Appunti in seguito sono diventati inaccessibili dopo aver chiuso l'istanza precedente di MacVim e riavviato tramite (ad esempio) mvim
dall'interno di una sessione tmux.
Il problema di fondo è che i programmi lanciati in determinati contesti (cioè all'interno di una sessione di tmux) finiscono con un ambiente che nega loro l'accesso a determinati servizi (ad esempio la X cartone OS).
iniziale è l'avvio qui. Nuove finestre iniziato da mvim
-in- tmux (anche senza il programma wrapper sopra-linked) dovrebbero avere accesso agli appunti finché MacVim è stato precedentemente avviato “tramite la GUI” (forse ci sono ancora un po 'MacVim windows open, o forse hai MacVim configurato per continuare a funzionare anche quando non ci sono finestre aperte). Di conseguenza, per riottenere l'accesso agli Appunti occorrerà chiudere tutte le finestre esistenti MacVim, chiudere l'applicazione, quindi riavviarla in un modo che abbia accesso agli Appunti (ad esempio tramite la GUI o "all'interno" del wrapper) .
Una volta ottenuto il suddetto programma-linked involucro installato (è disponibile tramite MacPorts e Homebrew anche), è possibile utilizzare un comando come reattach-to-user-namespace mvim
per garantire che se finisce per iniziare un nuovo MacVim esempio, allora quella nuova istanza avrà accesso agli appunti. Potresti usare un alias, una funzione di shell o uno script per essere sicuro di "avvolgere" sempre mvim
.
Diversi altri comandi beneficiano anche di “wrapping” (pbpaste
, pbcopy
, nohup
, launchctl
(a seconda di quale sottocomando che si sta utilizzando)), quindi si consiglia di “avvolgere” il tuo guscio intero al posto dei singoli comandi. Il bit dell'ambiente di processo che il "wrapper" modifica è ereditato dai processi figli, quindi "il wrapping" della shell influirà sulla maggior parte dei comandi da esso eseguiti.Se si utilizza tmux, si potrebbe configurare il default-command
automaticamente “avvolgere” predefinito tmux conchiglie:
set-option -g default-command "reattach-to-user-namespace -l zsh"
fonte
2013-05-21 03:49:27
si fa di solito iniziare * MacVim * attraverso l'interfaccia grafica (ad esempio, il molo, * Finder *, Spotlight, qualche applicazione di avvio) o tramite la riga di comando? Se di solito usi la riga di comando (ad es. 'Mvim'), ripristini l'accesso agli Appunti se esci (non solo chiudi tutte le finestre, ad esempio Comando-Q), quindi riavvia" tramite la GUI "? C'è qualcosa di speciale nell'ambiente da cui si avvia * MacVim *? Per esempio. 'mvim' dall'interno di un pannello * tmux * che non ha usato qualcosa come il mio [programma 'riattaccare-a-user-namespace'] (https://github.com/ChrisJohnsen/tmux-MacOSX-pasteboard). –
@ChrisJohnsen Questo è probabilmente il problema. Prenderò uno sguardo presto. Grazie! –
@ChrisJohnsen Grazie! 'riattaccare-a-user-namespace' è eccellente. Hai salvato un sacco di nerd come me. –