En vi, puedo obtener una terminal de shell con :shcomando. Y luego, puedo volver a vi por exitshell.
Pero, si estuve usando el terminal de shell durante mucho tiempo, y olvidé si exitcerrará algo o me devolverá el vi.
¿Hay alguna forma de verificar si volveré a vi? jobso fgno está funcionando
external-command
hailinzeng
fuente
fuente

Respuestas:
En una cáscara regular:
Después de usar
:shellAsí que parece que Vim establece las
VIMRUNTIME,VIMyMYVIMRClas variables de entorno. De ellos, meVIMparece el más confiable (es posible que no tenga un vimrc o incluso vim runtime).También puede establecer sus propias variables de entorno:
Esto es especialmente útil para comunicar información sobre el búfer que está editando; por ejemplo:
Aparecerá como algo así como:
fuente
Tengo mi símbolo del sistema configurado para agregar un símbolo rojo "+" que indica si estoy en un vim ": sh" en lugar de una sesión de shell normal. La piedra angular es que "$$" es el pid del proceso actual, entonces:
Una vez que tenga esto, puede alinearlo fácilmente y construir algo como lo que describí para usar en su ".bashrc" o similar.
Nota : El método de variable de entorno ($ VIM) descrito en otra parte parece mejor que esto, pero lo dejaré, ya que funciona para identificar si usted es un proceso hijo de algo (no solo vim).
fuente
:shinicia: MYVIMRC, VIM y VIMRUNTIME. Todo lo que tiene que hacer para saber que se está ejecutando en un sub-shell de Vim es probar la presencia de cualquiera de ellos.Ejecutar
ps, o mejor,ps -fH. Ex:La ventaja de usar
ps -fHover overpses que te permite ver si estás en un sub-shellvimo si lo ponesvimen segundo plano. En ese caso,ps -fHse vería así:fuente