У меня странная проблема: когда расширение, например quarto при рендеринге, или SQLTools при запуске, запускает команду в терминале, эта команда отправляется до запуска терминала:
Это приводит либо к сообщению об ошибке, которое мне нужно подтвердить (в случае SQLTools), либо к тому, что ничего не происходит в случае рендеринга в кварто.
Есть идеи, как я могу это исправить?
Вот нестандартные настройки встроенного терминала в настройках пользователя:
"terminal.integrated.defaultProfile.osx": "bash",
"terminal.integrated.tabs.defaultColor": "terminal.ansiRed",
"terminal.integrated.profiles.osx": {
"bash": {
"path": "bash",
"args": [
"-l"
],
"icon": "terminal-bash"
},
"zsh": {
"path": "zsh",
"args": [
"-l"
]
},
"fish": {
"path": "fish",
"args": [
"-l"
]
},
"tmux": {
"path": "tmux",
"icon": "terminal-tmux"
},
"pwsh": {
"path": "pwsh",
"icon": "terminal-powershell"
}
},
"terminal.integrated.copyOnSelection": true,
"terminal.integrated.env.osx": {
"FIG_NEW_SESSION": "1",
"CW_NEW_SESSION": "1"
},
==========
Добавлены последние строки вывода при запуске bash с опцией -x — дайте мне знать, когда вам понадобится дополнительная информация:
+++ CW_SHELL=/opt/homebrew/Cellar/bash/5.2.26/bin/bash
+++ CW_IS_LOGIN_SHELL=1
+++ exec -a 'bash (cwterm)' '/Users/rainerkrug/.local/bin/bash (cwterm)'
quarto preview /Users/rainerkrug/Documents_Local/git/WBF_2024/index.qmd --no-browser --no-watch-inputs
-- -- (main origin)
ieu0675-rkrug:WBF_2024 rainerkrug$ it/WBF_2024/index.qmd --no-browser --no-watch-inputs
bash: it/WBF_2024/index.qmd: No such file or directory
-- -- (main origin)
ieu0675-rkrug:WBF_2024 rainerkrug$
Уточним: команда отправлена, но no=t выполнена (т.е. не запускается). Итак окно терминала запускается, команда отправляется и поступает в окно терминала, и только после этого база запускается и работает. Я добавляю вывод с -x
к вопросу.
Я не вижу в конфигурации VSC места, где вы поместили -x
(я подозревал, что аргументы bash говорят, т. е. -lx
, а не только -x
), поэтому я чувствую, что нам чего-то не хватает. Также вы делаете exec
другой оболочки (bash (cwterm)
). Если предположить, что это просто другая сборка bash со странным названием, вам придется снова передать -x
этой оболочке, потому что иначе вы не увидите, что там происходит. Кроме того, для решения подобных проблем я рекомендую публиковать скриншот вывода, который вы получаете с помощью -x, а не вставлять его сюда как текст.
bash (cwterm)
Я тоже видел — это оболочка CodeWhisperer. Я попробую без него и сообщу.
@user1934428 user1934428 Спасибо, в этом была проблема.
ОК – я нашел проблему. Это был CodeWhisperer . Я прокомментировал все ссылки на него в файлах .bashrc
и .bash_profile
, и теперь он снова работает (спасибо @user1934428 !).
Но если кто-нибудь может указать мне, как я могу использовать его в терминале, не мешая терминалу VSCode, дайте мне знать.
На вашем скриншоте я не вижу, что команда была выполнена до запуска оболочки. В лучшем случае я могу заключить, что команда была выполнена до того, как оболочка впервые отобразила приглашение. Если вы думаете иначе, вам следует начать свою оболочку с
bash -x
, чтобы вы видели, что на самом деле происходит и когда.