質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
tmux

tmuxは、複数の画面を1つのターミナル端末で独立させて操作可能にする端末多重化ソフトウェア。複数のターミナルを開くことなくtmux上の擬似端末を切り替えて操作でき、画面分割して使用することもできます。

Vim

VimとはUnix / Linux 系のOSに標準搭載されているターミナル上で動くテキストエディタです。

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

zsh

zshは、UNIX系OSのシェルの1つです。 cshやksn系のコマンドライン編集機能も実装されたシェルです。

Q&A

解決済

2回答

905閲覧

tmuxのセッション中にMacVimが使えなくなってしまいます。

yuta.kamoi

総合スコア11

tmux

tmuxは、複数の画面を1つのターミナル端末で独立させて操作可能にする端末多重化ソフトウェア。複数のターミナルを開くことなくtmux上の擬似端末を切り替えて操作でき、画面分割して使用することもできます。

Vim

VimとはUnix / Linux 系のOSに標準搭載されているターミナル上で動くテキストエディタです。

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

zsh

zshは、UNIX系OSのシェルの1つです。 cshやksn系のコマンドライン編集機能も実装されたシェルです。

0グッド

0クリップ

投稿2021/12/04 01:44

閲覧ありがとうございます。
最近コマンドラインを勉強し始めたコマンドライン初学者です。
環境はM1 Mac Air, iTerm2, zsh, prezto(zshフレームワーク), homebrew, macvimです。
zshにhomebrew installを用いてmacvimとtmuxをインストールしました。
vim --versionを見るとHuge version with MacVim GUI.と表示されます。
しかし、tmuxコマンドでtmuxのセッションをしているとvim --versionを行うとNormal version without GUI.と表示され、macvimが使えていないようです。tmux kill-sessionでtmuxを終了するとまたmacvimが使えます。
normalのvimにはビルドしていないpython3を利用したvimプラグインを入れているため、tmuxセッション中にvimを使うとエラーだらけになり悩んでいます。
どういった原因が考えられるでしょうか。
なにか必要な情報が教えて頂けると助かります。どうかご回答よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hoshi-takanori

2021/12/04 02:57

MacVim は確か GUI プログラムだったと思うので、tmux の中で使う意味が分かりません。
yuta.kamoi

2021/12/04 03:37

ご回答ありがとうございます! macvimをGUIでは使っておらず、viコマンドでターミナル上で使っています。 tmux中はmacvimが認識されていなくて(?)、vim --versionをすると-python3となっておりエラーが多発します。 tmuxを使っていないときはvim --versionとするとmacvimが認識されており+python3と表示されエラーも出ません。 なにか解消方法はあるでしょうか。
hoshi-takanori

2021/12/04 04:16

今どきの macOS には最初からターミナルで動く vim が入ってるのに、わざわざ MacVim を入れる必要は…。
yuta.kamoi

2021/12/04 04:31

ご回答ありがとうございます! vim --versionとしたときに-clipboardとなっていたのを+clipboardにしたくて色々調べた結果別の種類のvimを入れることになりました。ヤンクした文字をGUIでも使用するためです。 別のvimを扱うとこういったエラーが起きやすいのでしょうか?
yuta.kamoi

2021/12/04 05:08

ご回答ありがとうございます! プラグインでpython3やluaも使用しているのですが、一つ一つnormalのvimにビルドしていくしかないでしょうか。 普段使っているMacVimをtmux上でも使えると解決すると思っているのですが方法はあるでしょうか。
guest

回答2

0

状況がよくわかりませんが、書かれている内容から推測されることは、
tmuxから起動されるシェルが普段使っているシェルと異なる(ZshとBashとか)とかで、環境変数PATHの内容が異なり、vimで起動されるコマンドが異なるのでしょうか。

通常使っているシェルは何ですか?
tmuxを起動する時点の$SHELLの値は何ですか?

対応方法は、
案1:同じシェルが動くようにする
案2:異なるシェルでも同じPATHになるようにする
案3:MacVimをフルパスで起動する
など。

投稿2021/12/04 12:09

otn

総合スコア84557

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yuta.kamoi

2021/12/04 12:22

ご回答ありがとうございます! 普段はzshを使っています。 tmux起動中もzshになっているようでした。 PATHの値はtmux起動中は異なっていましたが、起動していないときのPATHの値は全て含んでいました。 echo $SHELL 非tmux時 : /bin/zsh tmux時 : /bin/zsh echo $PATH 非tmux時 : /Users/ユーザー名/.anyenv/envs/pyenv/shims:/Users/ユーザー名/.anyenv/envs/pyenv/bin:/Users/ユーザー名/.anyenv/envs/nodenv/shims:/Users/ユーザー名/.anyenv/envs/nodenv/bin:/Users/ユーザー名/ghq/github.com/anyenv/anyenv/bin:/opt/homebrew/bin:/opt/homebrew/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin tmux時 : /Users/ユーザー名/.anyenv/envs/pyenv/shims:/Users/ユーザー名/.anyenv/envs/pyenv/bin:/Users/ユーザー名/.anyenv/envs/nodenv/shims:/Users/ユーザー名/.anyenv/envs/nodenv/bin:/Users/ユーザー名/ghq/github.com/anyenv/anyenv/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/ユーザー名/.anyenv/envs/pyenv/shims:/Users/ユーザー名/.anyenv/envs/pyenv/bin:/Users/ユーザー名/.anyenv/envs/nodenv/shims:/Users/ユーザー名/.anyenv/envs/nodenv/bin:/Users/ユーザー名/ghq/github.com/anyenv/anyenv/bin:/opt/homebrew/bin:/opt/homebrew/sbin シェルは同じようなので案2,3を試してみます! 案3はエイリアスでviやvimコマンドをmacvimのフルパスにする感じでしょうか。今後思わぬバグが発生しないか不安ですが試してみます! ご回答ありがとうございました。
otn

2021/12/04 13:12

どちらも同じZshですか。 そうすると、 .zprofile .zshrc .zlogin 等の中でPATHの設定時に何か変なことをしているかですね。 /usr/bin より /opt/homebrew/~ が前にあれば良いと思いますが。 案3はそうですね。aliasがいいと思います。案2で解決しない時ですが。
guest

0

自己解決

https://pastak.hatenablog.com/entry/2014/02/21/025836
こちらの記事がすごく参考になりました。

tmuxを起動中はPATHの値が違ってしまうことが原因でした。
tmux起動中もPATHの値を同一にするため、sudo vi /etc/zshenvコマンドで以下を記述したら無事tmuxでもPATHが同じになりVim含め他のプラグイン等も使えるようになりました。

zshenv

1# system-wide environment settings for zsh(1) 2if [ -x /usr/libexec/path_helper ]; then 3 PATH='' 4 eval `/usr/libexec/path_helper -s` 5fi

/etc/zshenvの中で呼んでるpath_helperっていうのが環境変数を設定してくれているようで、こいつがサブシェル起動時に、親シェルの環境変数を引き継いで設定をして、その後に~/.zshrcの中身が読まれるので、上手くいかないという話だった。

path_helperというのを有効にすることでPATHを同一にできるようでした。

投稿2021/12/05 02:52

編集2021/12/06 09:00
yuta.kamoi

総合スコア11

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問