Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 设置文本编辑器(如Vim、SpaceMac)以使用docker容器,而无需在主机上安装工具_Bash_Macos_Vim_Docker_Spacemacs - Fatal编程技术网

Bash 设置文本编辑器(如Vim、SpaceMac)以使用docker容器,而无需在主机上安装工具

Bash 设置文本编辑器(如Vim、SpaceMac)以使用docker容器,而无需在主机上安装工具,bash,macos,vim,docker,spacemacs,Bash,Macos,Vim,Docker,Spacemacs,我试图用docker容器建立一个模块化的开发环境, 其中: 1) 没有在我的主机上安装SDK/dev工具/编译器(这些工具/编译器应仅位于特定容器中) 2) 在OSX上的GUI版本中使用我的文本编辑器(Vim、SpaceMac) 这里的主要问题是,大多数时候,文本编辑器特定的语言插件(如SpaceMac)需要这些工具才能正常工作 有什么帮助吗?最后,对我有用的是使用以下命令在我的.bash_配置文件中设置global alias.sh文件: grep -q -F 'source ~/.doc

我试图用docker容器建立一个模块化的开发环境, 其中:

1) 没有在我的主机上安装SDK/dev工具/编译器(这些工具/编译器应仅位于特定容器中)

2) 在OSX上的GUI版本中使用我的文本编辑器(Vim、SpaceMac)

这里的主要问题是,大多数时候,文本编辑器特定的语言插件(如SpaceMac)需要这些工具才能正常工作


有什么帮助吗?

最后,对我有用的是使用以下命令在我的.bash_配置文件中设置global alias.sh文件:

  grep -q -F 'source ~/.docker-shared/alias.sh' ~/.bash_profile \
    || echo 'source ~/.docker-shared/alias.sh' >> ~/.bash_profile

然后,对于每个开发环境,我可以使用docker compose创建包含容器中所有命令的alias.sh文件:

  alias elm-repl='docker-compose run web elm-repl'
当我的docker-compose.yml包含以下内容时:

 version: "2"
 services:
   web:
     build: .
     image: web
       ports: 
         - "8000:8000"
       volumes: 
         - .:/app
         - ~/.docker-shared:/shared
       entrypoint: ""
       command: bash -c "mkdir -p /shared && cp /app/alias.sh /shared"
运行

 docker-compose up web
将设置我的环境和别名。这些别名将在文本编辑器中使用

在我的例子中,我必须将vimrc和spacemacs设置为使用交互式shell才能工作,因此我在配置文件中添加了以下行:

.vimrc:

  set shellcmdflag=-ic
.spacemacs:

 (setq shell-command-switch "-ic")

这是我的

听起来你想要两个相互排斥的东西。虽然Romaill的答案似乎没有多大帮助,但他可能是对的,除非有办法让你的文本编辑器指向不同的docker容器,您将无法充分使用它们的功能文本编辑器可以使用docker run命令来运行特定的工具这里的问题是,将每个插件实现更改为使用docker run命令将非常困难
 (setq shell-command-switch "-ic")